Each docker-compose will have its own section below to help with getting started as needed.
- In general you'll need to add your environment variables either in the shell or in your
/etc/environmentfile and source it or restart your box. Otherwise you can always hardcode them in the docker-compose files.
Sample /etc/environement
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
# user added variables
export TZ='America/Chicago'
export DUCKDNS_URL='shariq-dev.duckdns.org'
export DUCKDNS_TOKEN='{enter your token here}'
export ELASTICSEARCH_USERNAME='elastic'
export ELASTICSEARCH_PASSWORD='MagicPassword'
Sourcing from an updated file
source /etc/environment
- Now you can clone down the repository with HTTPS or SSH if you've set up your key
Cloning with SSH
git clone https://github.com/shariqh/home-server-docker-compose.git
- Navigate to your newly cloned repo and run
docker-compose up -dto run the file namesdocker-compose.yml. You'll need to specify the filename otherwise
Running a specific docker-compose file
docker-compose -f media-compose.yml up -d
P.S. use the containerupdater.sh to automatically keep your images up to date. Schedule a cronjob for ease of use
This is the base infrastructure using SWAG, DuckDNS, and Duplicati
A combination of Nginx, Certbot, PHP, and Fail2Ban. Check out the SWAG starter guide. P.S. it used to be called letsencrypt. Here's the SWAG Docker image documentation.
Reverse proxy
Free, auto-renewing SSL
Hosting webpages
Intrustion prevention, since you're exposed... to the internet
Since my WiFi router does not support Dynamic DNS, I use DuckDNS to bind my public IP to a DuckDNS DNS and then use the DuckDNS Docker image to update my public DNS to DuckDNS every five minutes.
Coming soon, maybe... 2FA with https://github.com/authelia/authelia
Coming Soon
Plex Here's the documentation: https://hub.docker.com/r/linuxserver/plex This is important: https://docs.docker.com/network/host/
[Transmission + OpenVPN]https://github.com/haugene/docker-transmission-openvpn) And docs: https://haugene.github.io/docker-transmission-openvpn/run-container/
Used to set up 1Password Secrets Automation. First, you'll need to follow this guide and manually copy the 1password-credentials.json over. More detailed instuctions can be found on the official github repo.