diff --git a/manuscript/images/ghost.png b/manuscript/images/ghost.png new file mode 100644 index 0000000..420b199 Binary files /dev/null and b/manuscript/images/ghost.png differ diff --git a/manuscript/images/kanboard.png b/manuscript/images/kanboard.png new file mode 100644 index 0000000..4109def Binary files /dev/null and b/manuscript/images/kanboard.png differ diff --git a/manuscript/recipies/ghost.md b/manuscript/recipies/ghost.md new file mode 100644 index 0000000..d0396f6 --- /dev/null +++ b/manuscript/recipies/ghost.md @@ -0,0 +1,66 @@ +# Ghost + +[Ghost](https://ghost.org) is "a fully open source, hackable platform for building and running a modern online publication." + +![](/images/ghost.png) + +## Ingredients + +1. [Docker swarm cluster](/ha-docker-swarm/) with [persistent shared storage](/ha-docker-swarm/shared-storage-ceph.md) +2. [Traefik](/ha-docker-swarm/traefik) configured per design + +## Preparation + +### Setup data locations + +Create the location for the bind-mount of the application data, so that it's persistent: + +``` +mkdir -p /var/data/ghost +``` + + +### Setup Docker Swarm + +Create a docker swarm config file in docker-compose syntax (v3), something like this: + +``` +version: '3' + +services: + ghost: + image: ghost:1-alpine + volumes: + - /etc/localtime:/etc/localtime:ro + - /var/data/ghost/:/var/lib/ghost/content + networks: + - traefik + deploy: + labels: + - traefik.frontend.rule=Host:ghost.example.com + - traefik.docker.network=traefik + - traefik.port=2368 + +networks: + traefik: + external: true +``` + + +## Serving + +### Launch Ghost stack + +Launch the Ghost stack by running ```docker stack deploy ghost -c ``` + +Create your first administrative account at https://**YOUR-FQDN**/admin/ + +## Chef's Notes + +1. If I wasn't committed to a [static-site-generated blog](https://www.funkypenguin.co.nz/blog/), Ghost is the platform I'd use for my blog. +2. A default using the SQlite database takes 548k of space: +``` +[root@ds1 ghost]# du -sh /var/data/ghost/ +548K /var/data/ghost/ +[root@ds1 ghost]# +``` diff --git a/manuscript/recipies/kanboard.md b/manuscript/recipies/kanboard.md new file mode 100644 index 0000000..062186a --- /dev/null +++ b/manuscript/recipies/kanboard.md @@ -0,0 +1,74 @@ +# Kanboard + +Kanboard is a Kanban tool, developed by [Frédéric Guillot](https://github.com/fguillot). (Who also happens to be the developer of my favorite RSS reader, [Miniflux](/recipies/miniflux/)) + +Features include: + +* Visualize your work +* Limit your work in progress to be more efficient +* Customize your boards according to your business activities +* Multiple projects with the ability to drag and drop tasks +* Reports and analytics +* Fast and simple to use +* Access from anywhere with a modern browser +* Plugins and integrations with external services +* Free, open source and self-hosted +* Super simple installation + +![](/images/kanboard.png) + +## Ingredients + +1. [Docker swarm cluster](/ha-docker-swarm/) with [persistent shared storage](/ha-docker-swarm/shared-storage-ceph.md) +2. [Traefik](/ha-docker-swarm/traefik) configured per design + +## Preparation + +### Setup data locations + +Create the location for the bind-mount of the application data, so that it's persistent: + +``` +mkdir -p /var/data/kanboard +``` + + +### Setup Docker Swarm + +Create a docker swarm config file in docker-compose syntax (v3), something like this: + +``` +version: '3' + +services: + kanboard: + image: kanboard/kanboard + volumes: + - /var/data/kanboard/data:/var/www/app/data + - /var/data/kanboard/plugins:/var/www/app/plugins + networks: + - traefik + deploy: + labels: + - traefik.frontend.rule=Host:kanboard.example.com + - traefik.docker.network=traefik + - traefik.port=80 + +networks: + traefik: + external: true +``` + + +## Serving + +### Launch Kanboard stack + +Launch the Kanboard stack by running ```docker stack deploy kanboard -c ``` + +Log into your new instance at https://**YOUR-FQDN**. Default credentials are admin/admin, after which you can change (under 'profile') and add more users. + +## Chef's Notes + +1. The default theme can be significantly improved by applying the [ThemePlus](https://github.com/phsteffen/kanboard-themeplus) plugin. +2. Kanboard becomes more useful when you integrate in/outbound email with [MailGun](https://github.com/kanboard/plugin-mailgun), [SendGrid](https://github.com/kanboard/plugin-sendgrid), or [Postmark](https://github.com/kanboard/plugin-postmark). diff --git a/manuscript/recipies/miniflux.md b/manuscript/recipies/miniflux.md index e445883..0950460 100644 --- a/manuscript/recipies/miniflux.md +++ b/manuscript/recipies/miniflux.md @@ -57,7 +57,7 @@ networks: ### Launch Miniflux stack -Launch the Huginn stack by running ```docker stack deploy miniflux -c ``` +Launch the Miniflux stack by running ```docker stack deploy miniflux -c ``` Log into your new instance at https://**YOUR-FQDN**. Default credentials are admin/admin, after which you can change (under 'profile') and add more users. diff --git a/mkdocs.yml b/mkdocs.yml index c68925f..8e0c991 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,16 +33,18 @@ pages: - Keepalived: ha-docker-swarm/keepalived.md - Traefik: ha-docker-swarm/traefik.md - Docker Swarm Mode: ha-docker-swarm/docker-swarm-mode.md - - Mail Server: recipies/mail.md + - Mail Server: recipies/mail.md - Chef's Favorites: - - Wekan: recipies/wekan.md - Huginn: recipies/huginn.md + - Kanboard: recipies/kanboard.md - Miniflux: recipies/miniflux.md - Menu: - - Tiny Tiny RSS: recipies/tiny-tiny-rss.md + - Ghost: recipies/ghost.md - GitLab: recipies/gitlab.md - GitLab Runner: recipies/gitlab-runner.md - Piwik: recipies/piwik.md + - Wekan: recipies/wekan.md + - Tiny Tiny RSS: recipies/tiny-tiny-rss.md - Reference: - OAuth Proxy: reference/oauth_proxy.md - Networks: reference/networks.md