CMless is a file based CMS intended for easy integration with version controlled, format agnostic content.
An example site might store each page as a Markdown file, with directories to
define categories, the entire site using git
for version and edit-access
control. CMless can serve that content as a website.
The content for http://subgeniuskitty.com can be found in such a repository.
CMless is kept extremely simple with the intention of being easy to comprehend and modify. See the source code for examples demonstrating how to add a new piece of functionality.
Functions as minimal CMS. Runs http://subgeniuskitty.com.
Tested on Debian Linux and FreeBSD.
Enable CGI scripts:
a2enmod cgid
Create and enable an Apache vhost.
vi /etc/apache2/sites-available/cmless.subgeniuskitty.com
<VirtualHost *:80>
DocumentRoot "/srv/apache_vhosts/cmless.subgeniuskitty.com"
ServerName cmless.subgeniuskitty.com
ServerAdmin webmaster@subgeniuskitty.com
ErrorLog /var/log/apache2/error_log.cmless.subgeniuskitty.com
CustomLog /var/log/apache2/access_log.cmless.subgeniuskitty.com combined
AddHandler cgi-script .py
<Directory "/srv/apache_vhosts/cmless.subgeniuskitty.com">
Options -ExecCGI -Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/srv/apache_vhosts/cmless.subgeniuskitty.com/bin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RewriteEngine On
RewriteRule (.*) /srv/apache_vhosts/cmless.subgeniuskitty.com/site/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /srv/apache_vhosts/cmless.subgeniuskitty.com/bin/cmless.py
</VirtualHost>
a2ensite cmless.subgeniuskitty.com
systemctl reload apache2
Clone the CMless git repository into the Apache vhost directory.
cd /mnt/data/apache_vhosts
git clone git://git.subgeniuskitty.com/cmless/.git cmless.subgeniuskitty.com
chown -R www-data:www-data ./cmless.subgeniuskitty.com
Clone your content into the site/
folder. If you wish to use a different
folder, edit the configuration options in bin/config.py
accordingly. If this
is your first CMless site, see the site_sample/
folder for an example site
using Markdown.
cd /srv/apache_vhosts/cmless.subgeniuskitty.com
git clone git://git.subgeniuskitty.com/website_subgeniuskitty.com/.git site
chown -R www-data:www-data ./site
Install an appropriate document processor for your content and set the
markup_processor
configuration option in bin/config.py
accordingly. Your
markup engine should accept text via stdin
and output HTML on stdout
.
apt-get install discount
Edit bin/config.py
and set all configuration options according to the steps
taken during installation. Each option is commented inside the file.