- Notifications
You must be signed in to change notification settings - Fork615
Pico is a stupidly simple, blazing fast, flat file CMS.
License
picocms/Pico
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
❗ ❗END OF LIFE NOTICE ❗ ❗
Development of Pico has stopped a very long time ago.We strongly advise against using Pico for new websites. You can keep using Pico for existing websites though, it hasno known security issues. However, please note that you will ultimately run into issues, because Pico wasn't designed for modern PHP versions. You can try the last
v3.0.0-alpha.2
release, or use thepico-3.0
branch. They are as stable as the last "stable" releases, but just didn't make it through the release process before development was abandoned.If you're about to create a new website and want to use a flat file CMS, check out some of Pico's amazing alternatives, likeGrav CMS,HTMLy,Automad, orTypemill.
If you're interested in taking over Pico's development, please don't hesitate to contact us by creating anew Issue here on GitHub. Please provide somebrief information about the extent of your commitment, your motivation, and your experience with Pico, PHP programming, and Open Source Software development in general. We're happy to help you take over the baton, but unfortunately are no longer able to maintain this project.
❗ ❗END OF LIFE NOTICE ❗ ❗
Pico is a stupidly simple, blazing fast, flat file CMS.
Visit us athttp://picocms.org/ and seehttp://picocms.org/about/ for more info.
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 usingComposer. 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 extensionsdom
andmbstring
to be enabled.
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!
Open a shell and navigate to thehttpdocs
directory (e.g./var/www/html
) of your server. Download Composer and run it with thecreate-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
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. 😊
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!
Download the latest Pico release and upload all files to the desired install directory of Pico within thehttpdocs
directory (e.g./var/www/html/pico
) of your server.
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. 😊
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.
ForkPico's Composer starter project usingGitHub'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.
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'splugins
resp.themes
directories. Don't forget to commit your changes and push them to your Git server.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'sinstall
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
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'supdate
option:$ git pull$ php composer.phar update
So, you're one of these amazing people making all of this possible? We love you folks! As a developer we recommend you to clonePico's Git repository as well as the Git repositories ofPico's default theme and thePicoDeprecated
plugin. You can set up your workspace usingPico'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 likelyunstable andnot ready for production use!
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 theworkspace
directory:$ curl -sSL https://github.com/picocms/pico-composer/archive/master.tar.gz| tar xz$ mv pico-composer-master workspace
Clone the Git repositories of all Pico components (Pico's core, Pico's default theme and the
PicoDeprecated
plugin) into thecomponents
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
Instruct Composer to use the local Git repositories as replacement for the
picocms/pico
(Pico's core),picocms/pico-theme
(Pico's default theme) andpicocms/pico-deprecated
(thePicoDeprecated
plugin) packages. Update thecomposer.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" }}
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 onPackagist.org:Pico's core,Pico's default theme, thePicoDeprecated
plugin andPico's Composer starter project.
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 usedComposer or a pre-bundled release to install Pico. Please note that you shouldalways create a backup of your Pico installation before upgrading!
Pico followsSemantic Versioning 2.0 and uses version numbers likeMAJOR
.MINOR
.PATCH
. When we update thePATCH
version (e.g.2.0.0
to2.0.1
), we made backwards-compatible bug fixes. If we change theMINOR
version (e.g.2.0
to2.1
), we added functionality in a backwards-compatible manner. Upgrading Pico is dead simple in both cases. Simply head over to the appropiate Upgrade sections below.
But wait, we forgot to mention what happens when we update theMAJOR
version (e.g.2.0
to3.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 on our website.
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 thehttpdocs
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.
Okay, installing Pico was easy, but upgrading Pico is going to be hard, isn't it? I'm afraid I have to disappoint you. It's just as simple as installing Pico!
First you'll have to delete thevendor
directory of your Pico installation (e.g. if you've installed Pico to/var/www/html/pico
, delete/var/www/html/pico/vendor
). Thendownload the latest Pico release and upload all files to your existing Pico installation directory. You will be prompted whether you want to overwrite files likeindex.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.
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 ofPico's core,Pico's default theme and thePicoDeprecated
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
If you want to get started using Pico, please refer to ouruser docs. Please read theupgrade notes if you want to upgrade from Pico 1.0 to Pico 2.0. You can find officially supportedplugins andthemes on our website. A greater choice of third-party plugins and themes can be found in ourWiki on theplugins orthemes pages respectively. If you want to create your own plugin or theme, please refer to the "Getting Help as a developer" section below.
If you're a developer, please refer to the "Contributing" section below and ourcontribution guidelines. To get you started with creating a plugin or theme, please read thedeveloper docs on our website.
When the docs can't answer your question, you can get help by joining us on#picocms on Libera.Chat (logs). When you're experiencing problems with Pico, please don't hesitate to create a newIssue 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 usingGitHubs search engine. Please describe your issue as clear as possible and always include thePico version you're using. Provided that you're usingplugins, include a list of them too. We need information about theactual and expected behavior, thesteps to reproduce the problem, and what steps you have taken to resolve the problem by yourself (i.e.your own troubleshooting).
You want to contribute to Pico? We really appreciate that! You can help make Pico better bycontributing code orreporting issues, but please take note of ourcontribution guidelines. In general you can contribute in three different areas:
Plugins & Themes: You're a plugin developer or theme designer? We love you folks! You can find tons of information about how to develop plugins and themes athttp://picocms.org/development/. If you have created a plugin or theme, please add it to ourWiki, either on theplugins orthemes page. You may alsoSubmit it to our website, where it'll be displayed on the officialplugin ortheme pages!
Documentation: We always appreciate people improving our documentation. You can either improve theinline user docs or the more extensiveuser docs on our website. You can also improve thedocs for plugin and theme developers. Simply fork our website's Git repository fromhttps://github.com/picocms/picocms.github.io, change the Markdown files and open apull request.
Pico's Core: The supreme discipline is to work on Pico's Core. Your contribution should helpevery Pico user to have a better experience with Pico. If this is the case, fork Pico fromhttps://github.com/picocms/Pico and open apull request. We look forward to your contribution!
By contributing to Pico, you accept and agree to theDeveloper Certificate of Origin for your present and future contributions submitted to Pico. Please refer to the"Developer Certificate of Origin" section in ourCONTRIBUTING.md
.
About
Pico is a stupidly simple, blazing fast, flat file CMS.