lightweight pseudo-dynamic (aka. static) blog software
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



    In Norse mythology, Geri and Freki (Old Norse, both meaning "the ravenous"
    or "greedy one") are two wolves which are said to accompany the god Odin.

About freki

freki is a small but yet pretty powerful tool to create
pseudo-dynamic (aka. static) website content. It aims to 
be a replacement for bazinga, which i wrote 4-5 years ago.

freki has the same approach as bazinga, but has less
dependencies since it has less features. I kicked these
lesser used features out and rewrote the whole thing.

In addition, freki now has a simpler interface and is
altogether smaller. A major improvement is the design
of the content files, which are very simple to edit now.

    - easy configuration (~/.freki/freki.conf)
    - easy to maintain and backup (~/.freki/freki.dat)
    - Pseudo-Markdown (my own interpretation of it)
    - Yearly/Monthly article overviews
    - ... more to come


As already mentioned, freki is much smaller than bazinga.
Therefor it has NO PREREQUISITES except Perl. 

You don't even need a webserver if you just want it to
act as kind of diary on your local harddrive. If you want
to publish your thoughts, just upload the ~/.freki/html 
directory to your webserver and you are fine. Nothing else
is needed.


All needed files should come with this bundle. Customisation
is done by editing either the freki.template (~/.freki/freki.template)
or the css file (~/.freki/html/css/style.css).

If you start freki for the first time, it will create some directories
in your home directory (~/.freki, ~/.freki/html and ~/.freki/html/css).

In the examples/ directory, which should be available if you cloned
this repository, you can find example files of this template and other

This files are needed in the following places for freki to work properly:

    style.css       -> ~/.freki/html/css/style.css
    freki.template  -> ~/.freki/freki.template
    freki.conf      -> ~/.freki/freki.conf

freki.template should not be edited unless you know what you are doing.
Same applies to style.css, but that doesn't mean it can't be done. 
Simple adaptions to color/fonts/basic design can be done easily...
... (if you know CSS/HTML) ;)


Like bazinga, freki is completely commandline driven. This was one of my
major goals while writing it. You never have to leave your terminal. In case
you use w3m, lynx or similar commanline browsers, you REALLY never leave it ;).

In the examples/ directory, there are template files for articles and pages.
Basically, every article consists of 2 needed tags (FREKI_CATEGORY and
FREKI_TOPIC) and the text between START_TEXT and END_TEXT. After writing your
article or page, you can add it like this:

    $ freki add my_new_article.txt

If everything is ok, you will be notified that the article was added and you
can go on to the next step:
    $ freki update

which will update the local html structure in ~/.freki/html. You can put the
contents of this directory directly onto your webserver.

If you made a mistake and want to delete an article, you can do this by

    $ freki delete ID

where ID is the identifier of the article/page. To get a list of all pages and
articles, you type:

    $ freki list

If you want to replace a article, because you made a mistake, you can also
replace an article or page like this:

    $ freki replace ID corrected_article.txt

which will delete ID and add corrected_article.txt.

In case you forget how everything works, try

    $ freki help

Backup and Restore

A feature you might miss if you already know bazinga is the lacking
git history. I opted this feature out because I don't see the need
for it. A simple freki backup which could be one daily/weekly/whatever
cronjob, could look like this:

    cp ~/.freki/freki.dat /path/to/your/safe_place/freki.dat.$(date -I'date')

which would save your dat-file appended with a timestamp to your 
backup directory.