Wiki source code of Software Stacks

Last modified by chrisby on 2024/08/29 14:47

Show last authors
1 ### Introduction
2
3 I love open source software, especially when it can be deployed seamlessly via Docker. However, individual projects often have unique nuances and configurations. So I've created this section to show you how to deploy the software I'm working with using very few instructions. To get a working deployment of a software stack, simply copy the `docker-compose.yml` from the article, replace any variables with the format `<some-variable>` with an actual value, and follow the instructions.
4
5 All the configurations described in the subsections use Traefik, which greatly simplifies the reverse proxying process and certificate generation. It's also possible to combine all the stacks on a single device behind a single Traefik container. Just merge the service configuration from one `docker-compose.yml` into another.
6
7 Traefik will automatically generate an appropriate LetsEncrypt certificate on startup. It's worth noting that there is currently a limit of 5 LetsEncrypt certificates per 24 hour period. However, there's an option in the Traefik settings in the `docker-compose.yml` to manually disable this and use dummy certificates instead. This comes in handy if you're in the experimental phase and are initiating multiple deployments per day. If you want to get rid of the dummy certificates or real certificates for new stacks, just shut down Traefik, delete its volume and restart it.
8
9 In each `docker-compose.yml`, unambiguous docker image tags are set. The reason for this is to keep the deployment stable. It's frustrating to encounter bugs during deployment due to outdated configurations or incompatible container versions, especially when you're just testing the software. If you intend to use the software in production, I recommend reading the documentation or experimenting with the latest version of containers to get a stable set. This will avoid unnecessary security vulnerabilities and give you the latest features.
10
11 ### Requirements
12
13 * A server
14 * with a public IP address
15 * where docker and docker-compose are installed
16 * A domain (e.g. "crispy-coding.org") and DNS records pointing from subdomains (e.g. xwiki.crispy-coding.org) to the public IP address of the Linux server.
17
18 ### Table of Contents
19
20 {{children/}}