A blog system based on plain-files.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
tiyn a936fd5ee6
fixed minor error with short title
3 days ago
src fixed minor error with short title 3 days ago
Dockerfile added language support for german 5 days ago
LICENSE adding license 4 years ago
README.md added language support for german 5 days ago
beaker_blog_alt.png readme: updated logo 3 years ago
rebuild.sh minor style changes, added graphics volume 5 days ago


Beaker Blog


This is a simple blog based on Pythons Flask framework. The basic design is based on LukeSmithXYZs blog. However I dislike using a script for adding entries and just want to add entries via plain text files.


  • Plain text support for blog entries
    • HTML files (.html)
    • Markdown Files (.md)
  • Infinite-scroll blog page
  • Archive page
    • Months as headings
    • Links to scrolling blog page
    • Links to standalone article
  • Standalone article page
    • Links to scrolling blog page
  • RSS feed
  • Navigation
    • Header
    • Footer
  • Switchable CSS
    • CSS dark-theme
    • CSS light-theme
  • Language Support
    • English
    • German
  • Config file
  • Docker installation
  • Logo


Create entries

Blog entries are managed by plain html files in the templates/entry/ directory. The first line of each document is reserved as the title of the document. You have to specify the filetype by extension.



  • git clone https://github.com/tiyn/beaker-blog
  • cd beaker-blog/src
  • edit the config.py file according to your needs
  • pip3install -r requirements.txt - install depenencies
  • run python app.py
  • blog is available on port 5000


Make sure you copy an example config.py and edit it before running the container. The config.py can be found in the src folder.


Set the following volumes with the -v tag.

Volume-Name Container mount Description
config-file /blog/config.py Config file
entries /blog/templates/entry Directory for blog entries
graphics /blog/static/graphics Directory for images needed for entries
css /blog/static/css (optional) Directory for css files
html /blog/templates (optional) Directory for templates (entry-volume not needed)


Set the following ports with the -p tag.

Container-Port Recommended outside port Protocol Description
5000 80 TCP HTTP port

Example run-command

An example run command is shown in rebuild.sh.