Pico CMS for Nextcloud v1.0.0 is out now

Finally it’s time to give word about some new developments - in its true sense. In the last couple of months I was working on Pico CMS for Nextcloud v1.0.0 - something between a total refactoring and a partial rewrite from scratch. Anyways, we finally reached to the app’s first stable release! :partying_face: :confetti_ball: :tada:

Pico CMS for Nextcloud v1.0.0 solves all known (at least to me) major issues with the cms_pico app. From now on it will be officially supported by Pico (Hi everyone, I’m Pico’s lead developer :v:). @Cult did an amazing job with cms_pico - but priorities change, so it’s about time to help him out… :slightly_smiling_face:

Pico CMS for Nextcloud is open source and released under the terms of the AGPL-3.0. You can find its sourcecode on GitHub.

Pico CMS for Nextcloud utilizes Pico 2.1

Pico CMS for Nextcloud v1.0.0 utilizes the brand-new stable Pico v2.1.0. Even though Pico 2.1 is just a minor release, its changes are pretty heavy compared to Pico 2.0. But all these changes pale in comparison with the fact that cms_pico v0.9.8 utilized Pico 1.0 before - so this is no minor update for Pico CMS for Nextcloud!

Are you running cms_pico v0.9.8 right now? This update yields massive, potentially backwards-incompatible changes if you’re using custom plugins or themes (you very likely do)! Check out both Pico 2.0’s upgrade page as well as Pico 2.1’s upgrade page before upgrading Pico CMS for Nextcloud. If you didn’t try the betas (beta thread), we highly recommend you to test the new release before pushing the update to production - you’ll definitely need to change a few bits :exclamation:

What’s next?

Since the changes are pretty heavy for Pico CMS for Nextcloud it might take some time until you see the app in your language again. Right now we support German and English localization only. We’ll release new versions of Pico CMS for Nextcloud as soon as there are considerable l10n updates. You want to contribute a translation? Head over to Transifex. A big thank you to all translators out there! :heart:

As you know Pico CMS for Nextcloud v1.0.0 is basically a rewrite from scratch. If you’re a developer and want to check out the code changes, simply compare v0.9.8 with v1.0.0 - it’s a massive changeset, the pull request itself consists of 238 commits with 14,801 added, 5,669 removed and 20,470 lines of code in 179 files. This is huge! :heart_eyes:

Even though the first stable version of Pico CMS for Nextcloud is finally here, we’re still looking forward to your feedback and reviews! Thank you! :+1:

Getting help :question:

Something went wrong? You need help? No worries, we will help!

If you want to get started using Pico, please refer to Pico’s user docs. You can find officially supported plugins and themes on Pico’s website. A greater choice of third-party plugins and themes can be found in Pico’s wiki on the plugins or themes pages respectively. If you want to create your own plugin or theme, please refer to the “Getting Help as a developer” section of Pico’s docs.

When the docs can’t answer your question, you can get help by either joining us on #picocms on Freenode IRC (logs), or by creating a new thread on Nextcloud Help. When you’re experiencing problems with Pico CMS for Nextcloud, please don’t hesitate to create a new Issue on GitHub. Concerning problems with plugins or themes, please refer to the website of the developer of this plugin or theme.

Before creating a new Issue, please make sure the problem wasn’t reported yet using GitHubs search engine and the search of Nextcloud Help. Please describe your issue as clear as possible and always include the version of Pico CMS for Nextcloud you’re using. Provided that you’re using custom plugins and/or themes, include a list of them too. We need information about the actual and expected behavior , the steps to reproduce the problem, and what steps you have taken to resolve the problem by yourself (i.e. your own troubleshooting).


Installation and Upgrading

Pico CMS for Nextcloud v1.0.0 is out now in Nextcloud’s app store! It requires Nextcloud 15, 16 or 17 and also supports the current development releases of Nextcloud 18. You don’t have to consider anything special, installing and upgrading the app is as easy as always :+1:

If you tried the beta releases of Pico CMS for Nextcloud before, please refer to the announcement for beta testers instead: [Beta] [Needs Testing] Pico CMS for Nextcloud v1.0.0

If you’re currently running cms_pico v0.9.8, you can upgrade to Pico CMS for Nextcloud v1.0.0 at any time. Nextcloud’s web-based updater will do the job and won’t delete any of your websites… :relieved: Please note that you’ll have to update your webserver configuration appropriately after upgrading. Just refer to the “Webserver config” section of the app’s admin settings page after upgrade. However, I hope you didn’t just skip to this section and learned, that the upgrade yields massive, potentially backwards-incompatible changes. Check out the “Pico CMS for Nextcloud utilizes Pico 2.1” above to learn more before starting the upgrade - you might break your existing websites otherwise… :wink:

Just follow these steps to install or upgrade Pico CMS for Nextcloud via Nextcloud’s App Store:

  1. Installing the app using the app store is super easy: Simply navigate to the Apps management page of your Nextcloud and either search for “Pico CMS” or check the “Tools” section to find Pico CMS for Nextcloud. Hit the “Download and enable” button and you’re ready to go!

  2. What second step? There’s no second step! :smile:

    Navigate to Nextcloud’s settings page. As an admin you’ll find two “Pico CMS” sections in your Nextcloud settings - one below “Personal”, another below “Administration”. The latter allows you to add custom themes, plugins and templates to Pico, as well as tweaking some advanced settings. The “Pico CMS” section below “Personal” exists for all Nextcloud users and allows one to create personal websites.

Manual installation

Naturally you can still install Pico CMS for Nextcloud manually. Simply follow the installation instructions in the announcement of the first beta. Download Pico CMS for Nextcloud’s latest release archive from here: cms_pico-1.0.0.tar.gz

If you rather want to install the app’s development version, follow the installation instructions as shown in the app’s README.md.


But how does all of this look like? Simply click on the sections below to view some screenshots of Pico CMS for Nextcloud v1.0.0:

Example website

Example website

List websites

List websites

Create website

Create website

Custom plugins

Custom plugins

Custom themes

Custom themes

Custom templates

Custom templates

Advanced settings

Advanced settings

Webserver config

Webserver config

About Pico CMS for Nextcloud

Pico CMS for Nextcloud combines the power of Pico and Nextcloud to create simple, secure, shareable and amazingly powerful websites with just a few clicks. Pico is a stupidly simple, blazing fast, flat file CMS - making the web easy!

  • :notebook: Start a blog
  • :rocket: Share your resume with the world
  • :smiling_imp: Create a plan for world domination and only share with the right friends
  • :face_with_monocle: Build a knowledge base and let the smart ones among your colleagues help out

Installing Pico CMS for Nextcloud allows your users to create and manage their own websites. Creating a new page with Pico is no more than creating a simple text file in a users’ Nextcloud files. No config is required, no utterly complex management interfaces - just files. It’s the perfect match with Nextcloud. Secure Sharing, Collaboration, Access Control - not just for your files, but also your websites, all made possible by Pico CMS for Nextcloud! Breaking the boundaries between your Mobile & Desktop devices and your Server.

Websites will be accessible through URLs like https://cloud.example.com/sites/my_site/ and consist of just a bunch of .md text files in a user’s Nextcloud files. .md stands for Markdown - a super simple and intuitive markup to create headings, paragraphs, text formatting, lists, images and links. But don’t despair - you don’t have to learn yet another language if you don’t want to. Consider enabling Nextcloud’s Text or Markdown Editor apps to make easy things stupidly simple. But what about meta data like a page’s title or release date? Guess right, it’s all in one place. At the top of your Markdown files you can place a block with such meta data - called the YAML Front Matter. Creating websites can’t be easier…

But that wasn’t everything… Pico CMS for Nextcloud is highly customizable. You can change Pico’s appearance by using custom themes and add new functionality by using custom plugins. For security reasons users can neither add custom themes nor plugins on their own - but as an admin you can. Plugins and themes aren’t just new “skins” or “widgets”, the underlying technologies are powerful frameworks you can leverage to make your users’ websites truly unique. However, with great power comes great responsibility. Pico CMS for Nextcloud does its best to prevent users from including scripts into websites, since this might bear security risks (so called “Cross Scripting”). Since this risk doesn’t apply to Pico itself, 3rd-party developers of plugins and themes might not be aware of this issue - so be careful when installing custom plugins and themes.

You want to learn more about Pico CMS for Nextcloud? Easy! Just download and enable the app from Nextcloud’s App Store and create your first personal website using the “sample_pico” template. Pico’s sample contents will explain all you need to know… :wave:

1 Like

I was using beta1 and proceeded with replacing the cms_pico folder with the beta2 version. When I now try to start the app, I get the following error message:

[PHP] Error: Cannot declare class PicoDeprecated, because the name is already in use at /var/www/nextcloud/apps/cms_pico/appdata_public/plugins/SEdfdOANTz/PicoDeprecated/PicoDeprecated.php#383

Any ideas?

@smeijer: Can you please join me on #picocms on Freenode IRC? Some other people had this issue too and I wasn’t able to reproduce it yet. However, I must reproduce it to find out what the underlying issue is, otherwise I can’t fix it.

The upgrade from 0.9.8 died on me. I’m going to try to reproduce it to see what went wrong. But I had to run off upgrade and the turn off maintenance to get the system back. So not so some upgrade :wink:

A completely new install however worked as a charm.

I have the same problem. I removed every hint of cms_pico from my database and filesystem. There is something that is causing it. The sad part is 0.9.8 was so bad i disabled and uninstalled it over a year ago.

I was finally able to reproduce the issue, big thanks to @smeijer for all his effort providing all necessary information, sql dumps and file copies! :+1: What a nasty bug… The issue is caused by Nextcloud running the app’s AppDataRepairStep twice. This only happens if you upgrade and enable the app at the same time (i.e. updating the app while it’s not enabled).

This issue will be fixed with Pico CMS for Nextcloud v1.0.1 (will be released this weekend). In the meantime it’s very easy to fix this issue: Restore your previous version of cms_pico so that no update will be executed, enable your old version of the app and then update the app.


@SmallOne @geiseri Since you didn’t provide any information about your issue I can’t really know what your actual issue is, so if the provided solution above doesn’t solve your issue, please provide more info, like the version you’re currently running, the version you’re trying to upgrade to, what error message you’re facing and whether there’s something in your Nextcloud log related to this issue.

It looks like the solution you have is the right one for my problem. It was on an upgrade from the old one to the 1.0.0

I did the upgrade and enable at once the first time. I think I just didn’t know enough about the guts to “clean” the old one out. It seems nextcloud doesn’t do a good job cleaning things up when you remove an app from what I saw in the db. I will test with the update here.

I had the same problem but didn’t find time to debug it. The update solved those problems. Thanks a lot!