28 lines
1.7 KiB
Org Mode
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]].
|