A curated collection of Docker Compose configurations for running personal media, web services, and supporting utilities.
Quick links
- Compose manifests:
compose-media/,compose-web/,compose-util/ - Configs:
config-media/,config-web/
This stack is designed to be cloned to home/user/docker and be run from there. This is adjustable in the .env and setup.sh file.
Additionally, mounts at /mnt/media and /mnt/cloud are expected to be available, for media storage and cloud storage respectively. These can also be changed in the .env file.
Getting started
- Clone the repo to your preferred location (examples assume
/home/user/docker):
git clone --recurse-submodules https://github.com/Furglitch/docker-stack.git /home/user/docker
cd /home/user/docker./setup.sh [action] [compose]
action: --start | --restart | --stop | --clear
compose: media | web | all--start: runsdocker compose up -dfor the chosen compose file(s).--restart: runsdocker compose restart.--stop: runsdocker compose stop.--clear: runsdocker compose down.
Compose selection:
media— runscompose-media/docker-compose.yamland copiesconfig-media/into the target config folder.web— runscompose-web/docker-compose.yamland copiesconfig-web/into the target config folder.all— runs both compose files and copies bothconfig-media/andconfig-web/.compose-util/docker-compose.yamlis always used by the script for utility containers.
Examples:
./setup.sh --start web # Starts web stack only
./setup.sh --restart all # Restarts all containers
./setup.sh --stop media # Stops media stack only
./setup.sh --clear web # Removes web stack./scripts/update.shThis script pulls from the git repository without overwriting local changes in files that do not appear in those commits. (i.e. it will not overwrite .env unless there is a change on the remote repository.)
Files you may need to edit after running update.sh:
| App | Path | Notes |
|---|---|---|
.env |
.env | Update local IP and public domain, SQL DB credentials, and Gluetun credentials |
Web docker-compose.yaml |
compose-web/docker-compose.yaml | Re-enable MediaWiki LocalSettings.php |
| Recyclarr | config-media/recyclarr/recyclarr.yml | Update URLs and API keys |
Homepage services.yaml |
config-web/homepage/services.yaml | Update URLs and API keys |
Kometa config.yml |
config-media/kometa/config.yml | Update URLs and API keys |