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.

83 lines
2.8 KiB

1 month ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1 month ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1 month ago
  1. # Beaker Blog
  2. ![beaker-blog-logo](beaker_blog.png)
  3. This is a simple blog based on Pythons Flask framework.
  4. The basic design is based on LukeSmithXYZs blog.
  5. However I dislike using a script for adding entries and just want to add entries
  6. via plain text files.
  7. ## Features/To-Dos
  8. - [x] Plain text support for blog entries
  9. - [x] HTML files (.html)
  10. - [x] Markdown Files (.md)
  11. - [x] Infinite-scroll blog page
  12. - [x] Archive page
  13. - [x] Months as headings
  14. - [x] Links to scrolling blog page
  15. - [x] Links to standalone article
  16. - [x] Standalone article page
  17. - [x] Links to scrolling blog page
  18. - [x] RSS feed
  19. - [x] Navigation
  20. - [x] Header
  21. - [x] Footer
  22. - [x] Switchable CSS
  23. - [x] CSS dark-theme
  24. - [x] CSS light-theme
  25. - [x] Config file
  26. - [x] Docker installation
  27. - [x] Logo
  28. ## Usage
  29. ### Create entries
  30. Blog entries are managed by plain html files in the `templates/entry/` directory.
  31. The first line of each document is reserved as the title of the document.
  32. You have to specify the filetype by extension.
  33. ## Deployment
  34. ### PIP/Python
  35. - `git clone https://github.com/tiyn/beaker-blog`
  36. - `cd tiyny-blog/src`
  37. - edit the `config.py` file according to your needs
  38. - `pip3install -r requirements.txt` - install depenencies
  39. - run `python app.py`
  40. - blog is available on port 5000
  41. ### Docker
  42. Make sure you copy an example `config.py` and edit it before running the container.
  43. The `config.py` can be found in the `src` folder.
  44. #### Volumes
  45. Set the following volumes with the -v tag.
  46. | Volume-Name | Container mount | Description |
  47. | ------------- | --------------------------- | ------------------------------------------------------------ |
  48. | `config-file` | `/blog/src/config.py` | Config file |
  49. | `entries` | `/blog/src/templates/entry` | Directory for blog entries |
  50. | `css` | `/blog/src/static/css` | (optional) Directory for css files |
  51. | `html` | `/blog/src/templates` | (optional) Directory for templates (entry-volume not needed) |
  52. #### Ports
  53. Set the following ports with the -p tag.
  54. | Container-Port | Recommended outside port | Protocol | Description |
  55. | -------------- | ------------------------ | -------- | ----------- |
  56. | `5000` | `80` | TCP | HTTP port |
  57. #### Example run-command
  58. Either use the docker image `tiynger/beaker-blog` or run
  59. `docker build . -t beaker-blog` in the top directory of this repository.
  60. If so you need to change the command below apropiately
  61. (`tiynger/beaker-blog` to `beaker-blog`).
  62. `docker run --name blog --restart unless-stopped -v ./config.py:/blog/src/config.py -v entries:/blog/src/templates/entry -p 80:5000 -d tiynger/beaker-blog`