Personal project to move all tools on my home server to Docker. Alpine Linux is used as host OS (due to minimal footprint and security focus). Docker compose is used to manage my local infrastructure in a single file. I use a Linux Container in Proxmox, but it can also run on a Raspberry Pi
- Wildcard Let's Encrypt certificates
- Automated certificate renewal
- Redirect HTTP to HTTPS for all services
- IP whitelist protection for admin pages
- Automated redirect of Synology mailstation and webstation
- Bind mounts for persistent data (easy backups)
- Sensitive Vaultwarden configuration in docker secrets
- Firefly III with PostgreSQL database and data importer
- Docker
- Docker Compose
- curl
Copy this repository, e.g. by downloading the zip-file and extract it.
# apk add zip
wget https://github.com/dannybouwers/homecontroller/archive/refs/heads/master.zip
unzip ./master.zip
cd ./homecontroller-masterThis directory is further referred to as 'working directory'.
Rename .env.example to .env (or create a new file) and replace the contents with your personal details.
mv ./.env.example .envCreate the following text files in your working directory an fill them with the corresponding secret values:
echo "your-cloudflare-api-token" > ./secrets/cloudflare_api_token
echo "your-google-smpt-password" > ./secrets/google_smtp_pass
echo "a-password-for-the-vaultwarden-admin-page" > ./secrets/vaultwarden_admin_tokenRun the file setup.sh to create directories and files mounted by docker compose:
. ./setup.shStart the containers using docker compose:
docker compose up -d --remove-orphansTest if everything is running using:
. ./test.shTo proxy services hosted by other instances (e.g. non-docker), add dynamic Traefik configuration to the folder ./user/traefik/file_provider which is created by the setup script. Some examples can be found in traefik.
If DNS is set up correctly, a dashbaord with all your servives can be found at dashboard.${PROXY_DOMAIN}.
- Traefik
- Unifi Controller
- AdGuard Home
- Synology Disk Station
- Synology Photo Station
- fail2ban
- vaultwarden
- Plex
- SnappyMail
- Firefly III
- semi-automated updates
- automated test