# freaCMS

mostly filebased Content Presentation System

this software evolves as it is being used. There might go some time before new features are added or bugs are fixed. If you find a bug or trouble getting things working, don't hestitate to get in contact or file a bug report (Issues tab).

## installation

these instructions are tested on GNU/Linux operating system, but should be general enough to work on any UNIX-like computer on a bash terminal. Linux and Mac users should be fine, I have never tried out a installation workflow on Windows. It most certainly works. If you try, let me know how it goes.


### download 

get the source code

    git clone https://git.freakaria.com/dom/freaCMS.git
    cd freaCMS
    
If you don't have git installed, just download the archive as zip archive, unzip and chang into directory. Or simply get git, than you have version control :)


install dependencies

    composer install

composer is a packagemanager for PHP. freaCMS uses the microframework FatFreeFramework for some basic app-logic and parsedown-extra as Markdown parser.

install example content

    tar zxf rsc/example_content.tar.gz
    
have a look inside the newly created content folder to see how content is stored.
    
    
### configure

create and edit main.cfg and deploy:

    for i in {deploy,main.cfg}; do cp $i.sample $i; done;


main.cgf:

    SITE_URL = public URL where website is reachable (used in links, etc...)
    title = give your site a title
    

deploy:
    
    USER = ssh user on server
    SERVER = server address for ssh login
    LIVE_DIR = relative path (from ssh login) to live site
    DEV_DIR = relative path to development site (so you can try out without breaking stuff)


the deploy script automates synchronisation between your local copy and a directory on the server using *rsync*. You need to have *ssh* installed for this to work. It is very basic and might be adapted to your particular needs if you know what you are doing.

If SSH is foreign to you, just ignore it and use your preferred way to transfer files to a server, like e.g. FTP.


### test

if you have PHP installed locally, you can test whether all i working as it should by launching the builtin webserver:

    php -S localhost:12345

point browser to localhost:12345

### upload

using the deploy shell script

    ./deploy dev go
    ./deploy dev content up go



## Template variables

LANG
default_lang
RESOURCES
hideFromSearchEngines
title
bodyClass