Files
selfhosted-templates/homelab/README.org
2023-07-11 20:24:39 -05:00

28 lines
1.7 KiB
Org Mode

#+title: Homelab Docker Compose
#+author: Emmet
This directory contains:
- [[./docker-compose.yml][docker-compose.yml]] - This stores information about what containers are needed, how those containers are connected, and where data should be stored
- [[./builds][builds]] - These are custom Dockerfiles that are utilized in the compose file
- [[./env][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.yml][docker-compose file]], several services are started, namely:
- [[https://nextcloud.com/][Nextcloud]] (Cloud Storage + Collaboration Suite)
- [[https://syncthing.net/][Syncthing]] (P2P File Synchronization)
- [[https://about.gitea.com/][Gitea]] (Git Server)
- [[https://freshrss.org/][FreshRSS]] (RSS Aggregator)
- [[https://heimdall.site/][Heimdall]] (Personal Dashboard)
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][setup.org]].
** Maintenance
For more details on maintaining this environment, see [[./maintenance.org][maintenance.org]].