Download Pico

Download the latest version of Pico or visit us on GitHub.


Install

Installing Pico is dead simple - and done in seconds! If you have access to a shell on your server (i.e. SSH access), we recommend using Composer. If not, use a pre-bundled release. If you don’t know what “SSH access” is, head over to the pre-bundled release. 😇

Pico requires PHP 5.3.6+ and the PHP extensions dom and mbstring to be enabled.

I want to use Composer

Starting with Pico 2.0 we recommend installing Pico using Composer whenever possible. Trust us, you won’t regret it when it comes to upgrading Pico! Anyway, if you don’t want to use Composer, or if you simply can’t use Composer because you don’t have access to a shell on your server, don’t despair, installing Pico using a pre-bundled release is still easier than everything you know!

Step 1

Open a shell and navigate to the httpdocs directory (e.g. /var/www/html) of your server. Download Composer and run it with the create-project option to install it to the desired directory (e.g. /var/www/html/pico):

$ curl -sSL https://getcomposer.org/installer | php
$ php composer.phar create-project picocms/pico-composer pico

Step 2

What second step? There’s no second step. That’s it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico’s sample contents will explain how to create your own contents. 😊

I want to use a pre-bundled release

Do you know the feeling: You want to install a new website, so you upload all files of your favorite CMS and run the setup script - just to find out that you forgot about creating the SQL database first? Later the setup script tells you that the file permissions are wrong. Heck, what does this even mean? Forget about it, Pico is different!

Step 1

Download the latest Pico release and upload all files to the desired install directory of Pico within the httpdocs directory (e.g. /var/www/html/pico) of your server.

Step 2

Okay, here’s the catch: There’s no catch. That’s it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico’s sample contents will explain how to create your own contents. 😊

I want to manage my website using a Git repository

Git is a very powerful distributed version-control system - and it can be used to establish a nice workflow around your Pico website. Using a Git repository for your website aids content creation and deployment, including collaborative editing and version control. If you want to manage your website in a Git repository, you use a Composer-based installation.

  1. Fork Pico’s Composer starter project using GitHub’s fork button. If you don’t want to use GitHub you aren’t required to, you can choose whatever Git server you want. Forking manually just requires some extra steps: First clone the Git repository locally, add your Git server as a remote and push the repository to this new remote.

  2. Clone your fork locally and add your contents and assets. You can edit Pico’s composer.json to include 3rd-party plugins and themes, or simply add your own plugins and themes to Pico’s plugins resp. themes directories. Don’t forget to commit your changes and push them to your Git server.

  3. Open a shell on your webserver and navigate to the httpdocs directory (e.g. /var/www/html). Download Composer, clone your Git repository to the desired directory (e.g. /var/www/html/pico) and install Pico’s dependencies using Composer’s install option:

     $ curl -sSL https://getcomposer.org/installer | php
     $ git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY> pico
     $ php composer.phar --working-dir=pico install
    
  4. If you update your website’s contents, simply commit your changes and push them to your Git server. Open a shell on your webserver and navigate to Pico’s install directory within the httpdocs directory (e.g. /var/www/html/pico) of your server. Pull all changes from your Git server and update Pico’s dependencies using Composer’s update option:

     $ git pull
     $ php composer.phar update
    

I’m a developer

So, you’re one of these amazing folks making all of this possible? We love you guys! As a developer we recommend you to clone Pico’s Git repository as well as the Git repositories of Pico’s default theme and the PicoDeprecated plugin. You can set up your workspace using Pico’s Composer starter project and include all of Pico’s components using local packages.

Using Pico’s Git repositories is different from using one of the installation methods elucidated above. It gives you the current development version of Pico, what is likely unstable and not ready for production use!

  1. Open a shell and navigate to the desired directory of Pico’s development workspace within the httpdocs directory (e.g. /var/www/html/pico) of your server. Download and extract Pico’s Composer starter project into the workspace directory:

     $ curl -sSL https://github.com/picocms/pico-composer/archive/master.tar.gz | tar xz
     $ mv pico-composer-master workspace
    
  2. Clone the Git repositories of all Pico components (Pico’s core, Pico’s default theme and the PicoDeprecated plugin) into the components directory:

     $ mkdir components
     $ git clone https://github.com/picocms/Pico.git components/pico
     $ git clone https://github.com/picocms/pico-theme.git components/pico-theme
     $ git clone https://github.com/picocms/pico-deprecated.git components/pico-deprecated
    
  3. Instruct Composer to use the local Git repositories as replacement for the picocms/pico (Pico’s core), picocms/pico-theme (Pico’s default theme) and picocms/pico-deprecated (the PicoDeprecated plugin) packages. Update the composer.json of your development workspace (i.e. workspace/composer.json) accordingly:

     {
         "repositories": [
             {
                 "type": "path",
                 "url": "../components/pico",
                 "options": { "symlink": true }
             },
             {
                 "type": "path",
                 "url": "../components/pico-theme",
                 "options": { "symlink": true }
             },
             {
                 "type": "path",
                 "url": "../components/pico-deprecated",
                 "options": { "symlink": true }
             }
         ],
         "require": {
             "picocms/pico": "dev-master",
             "picocms/pico-theme": "dev-master",
             "picocms/pico-deprecated": "dev-master",
             "picocms/composer-installer": "^1.0"
         }
     }
    
  4. Download Composer and run it with the install option:

     $ curl -sSL https://getcomposer.org/installer | php
     $ php composer.phar --working-dir=workspace install
    

You can now open your web browser and navigate to Pico’s development workspace. All changes you make to Pico’s components will automatically be reflected in the development workspace.

By the way, you can also find all of Pico’s components on Packagist.org: Pico’s core, Pico’s default theme, the PicoDeprecated plugin and Pico’s Composer starter project.


Upgrade Learn more…

Do you remember when you installed Pico? It was ingeniously simple, wasn’t it? Upgrading Pico is no difference! The upgrade process differs depending on whether you used Composer or a pre-bundled release to install Pico. Please note that you should always create a backup of your Pico installation before upgrading!

Pico follows Semantic Versioning 2.0 and uses version numbers like MAJOR.MINOR.PATCH. When we update the PATCH version (e.g. 2.0.0 to 2.0.1), we made backwards-compatible bug fixes. If we change the MINOR version (e.g. 2.0 to 2.1), we added functionality in a backwards-compatible manner. Upgrading Pico is dead simple in both cases. Simply head over to the appropriate Upgrade sections below.

But wait, we forgot to mention what happens when we update the MAJOR version (e.g. 2.0 to 3.0). In this case we made incompatible API changes. We will then provide a appropriate upgrade tutorial, so please head over to the “Upgrade” page.

I’ve used Composer to install Pico

Upgrading Pico is dead simple if you’ve used Composer to install Pico. Simply open a shell and navigate to Pico’s install directory within the httpdocs directory (e.g. /var/www/html/pico) of your server. You can now upgrade Pico using just a single command:

$ php composer.phar update

That’s it! Composer will automatically update Pico and all plugins and themes you’ve installed using Composer. Please make sure to manually update all plugins and themes you’ve installed manually.

I’ve used a pre-bundled release to install Pico

Okay, installing Pico was easy, but upgrading Pico is going to be hard, isn’t it? I’m affraid I have to disappoint you… It’s just as simple as installing Pico!

First you’ll have to delete the vendor directory of your Pico installation (e.g. if you’ve installed Pico to /var/www/html/pico, delete /var/www/html/pico/vendor). Then download the latest Pico release and upload all files to your existing Pico installation directory. You will be prompted whether you want to overwrite files like index.php, .htaccess, … - simply hit “Yes”.

That’s it! Now that Pico is up-to-date, you need to update all plugins and themes you’ve installed.

I’m a developer

As a developer you should know how to stay up-to-date… 😉 For the sake of completeness, if you want to upgrade Pico, simply open a shell and navigate to Pico’s development workspace (e.g. /var/www/html/pico). Then pull the latest commits from the Git repositories of Pico’s core, Pico’s default theme and the PicoDeprecated plugin. Let Composer update your dependencies and you’re ready to go.

$ git -C components/pico pull
$ git -C components/pico-theme pull
$ git -C components/pico-deprecated pull
$ php composer.phar --working-dir=workspace update

Changelog

See the full changelog.

Open this documentation on GitHub Found a typo? Something is wrong in this documentation? Just fork and edit it!

GitHub Pages - This page was generated from 9164cea2f254e611a1de2311775f6d0ee370c838 at 2022-08-10 21:26:48 +0000

Pico was made by Gilbert Pellegrom and is maintained by The Pico Community. Released under the MIT license.