Introduce multi-server architecture documentation and reorganize README content. Top-level README now documents Core vs Remote server roles, links to local docs instead of wiki pages, and highlights Traefik/Sablier multi-server behavior. docker-compose/README.md was rewritten to be a template-style reference with single- and multi-server deployment guidance, Traefik label examples, and sablier usage; dockge README was moved into docker-compose/dockge/. docker-compose/core/README.md was updated to describe core responsibilities, shared CA artifacts, and startup order for multi-server deployments. Several obsolete/duplicated docs and action reports were removed and a new multi-server deployment doc was added to centralize on-demand/remote service guidance. Overall this cleans up legacy docs and documents the multi-server workflow and TLS/shared-CA requirements.
2.1 KiB
2.1 KiB
Manual Setup Guide
If you prefer manual control or the automated script fails, follow these steps for manual installation.
Prerequisites
- Fresh Debian/Ubuntu server or existing system
- Root/sudo access
- Internet connection
Step 1: Update System
sudo apt update && sudo apt upgrade -y
Step 2: Install Docker
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker your-username
# Log out and back in, or run: newgrp docker
Step 3: Clone Repository
cd ~
git clone https://github.com/kelinfoxy/EZ-Homelab.git
cd EZ-Homelab
Step 4: Generate Secrets
# Generate 3 Secrets for Authelia
# Generate hash for your password
docker run --rm authelia/authelia:4.37 authelia crypto hash generate argon2 --password 'YourSecurePassword'
Step 5: Configure Environment
cp .env.example .env
nano .env # Edit all required variables
Minimum Required variables:
- PUID
- PGID
- TZ
- SERVER_IP
- SERVER_HOSTNAME
- DUCKDNS_SUBDOMAINS
- DUCKDNS_TOKEN
- DOMAIN
- DEFAULT_USER
- DEFAULT_PASSWORD
- DEFAULT_EMAIL
If using VPN: - SURFSHARK_USERNAM
- SURFSHARK_PASSWORD
- VPN_SERVER_COUNTRIES
Step 6: Create Infrastructure
# Create directories
sudo mkdir -p /opt/stacks /opt/dockge
sudo chown -R $USER:$USER /opt/stacks
sudo chown -R $USER:$USER /opt/dockge
# Create networks
docker network create traefik-network
docker network create homelab-network
docker network create dockerproxy-network
docker network create media-network
Step 7: Copy folders
sudo cp ~/EZ-Homelab/docker-compose /opt/stacks
# Move the dockge stack outside the stacks folder so you can't accidently stop dockge from dockge's webui
sudo mv /opt/stacks/dockge /opt/dockge
Step 8: Configure Stacks
Some services require manualy editing the configuration files.
Each stack has a script deploy-stackname.sh which will replace variables in the config files and the traefik labels in the compose file.
See the Readme.md file in each stack folder for manual instructions for each stack.