⚠️ END OF LIFE NOTICE: Pico CMS is no longer maintained. The latest stable release was v2.1.4 (August 29, 2020). For new projects, consider actively maintained alternatives like Grav CMS, Typemill, HTMLy, or Automad.
This guide installs Pico CMS on a self-hosted Linux server.
Pico CMS can be installed via:
Install a LAMP (Linux, Apache, MySQL, PHP) or LEMP (Linux, Nginx, MySQL, PHP) stack:
Ubuntu/Debian (LAMP):
sudo apt update
sudo apt install apache2 php php-xml php-mbstring git
RHEL/CentOS:
sudo dnf install httpd php php-xml php-mbstring git
cd /var/www
composer create-project picocms/pico picocms
cd picocms
cd /var/www
git clone https://github.com/picocms/Pico.git picocms
cd picocms
cd /tmp
wget https://github.com/picocms/Pico/archive/refs/tags/v2.1.4.zip
unzip v2.1.4.zip
sudo mv Pico-2.1.4 /var/www/picocms
Ensure the content and cache directories are writable by the web server:
# Set ownership (adjust for your web server user)
sudo chown -R www-data:www-data /var/www/picocms
# Set directory permissions to 755
find /var/www/picocms -type d -exec chmod 755 {} \;
# Set file permissions to 644
find /var/www/picocms -type f -exec chmod 644 {} \;
Apache: Create a virtual host pointing to /var/www/picocms
Nginx: Configure server block with PHP-FPM, root pointing to /var/www/picocms
Pico has no admin UI. Create content by editing Markdown files:
# Create a new page
nano /var/www/picocms/content/index.md
Example content (content/index.md):
---
Title: Welcome
---
Welcome to my Pico CMS site!
Open http://YOUR-SERVER/picocms in your browser.
Your site will display the content from your Markdown files.
See Pico CMS Configuration for configuration guidance.
See Pico CMS Security for hardening guidance.
Prefer automation? See these Ansible setup options:
Prefer containers? See Pico CMS Docker Setup.
Setting up Picocms can be complex. We offer consulting services for:
Contact us at office@linux-server-admin.com or visit our contact page.