Files

Homelab Docker Compose

This directory contains:

  • docker-compose.yml - This stores information about what containers are needed, how those containers are connected, and where data should be stored
  • builds - These are custom Dockerfiles that are utilized in the compose file
  • env - These contain environment files (used to set passwords and other sensitive information, I have redacted these)
  • data - Once all of the docker containers referenced in the compose file are started, persistent storage is created here

Service Overview

Within the docker-compose file, several services are started, namely:

Access to these services is mediated with HTTPS via Nginx Proxy and the Let's Encrypt Companion. With these, it is trivial to add new services; all you need to add a new service is declare these environment variables in the target container:

  • VIRTUAL_HOST - set this to domain name (sub.domain.example.com)
  • LETSENCRYPT_HOST - also set this to domain name (sub.domain.example.com)
  • LETSENCRYPT_EMAIL - email to be used in Let's Encrypt SSL request; this is kept on record by Let's Encrypt

Setup

For details on how to turn this into a working production environment, see setup.org.

Maintenance

For more details on maintaining this environment, see maintenance.org.