- Add traefik.docker.network=traefik-network label to homepage service - Prevent Traefik from using wrong IP from homelab-network - Resolve 504 Gateway Timeout issues after authentication - Update various docker-compose configurations and templates - Clean up unused configuration files
90 lines
2.3 KiB
Markdown
90 lines
2.3 KiB
Markdown
# Manual installation
|
|
|
|
```bash
|
|
sudo apt update && sudo apt upgrade -y && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
|
|
sudo curl -fsSL https://get.docker.com | sh
|
|
sudo usermod -aG docker $USER
|
|
sudo usermod -aG sudo $USER
|
|
|
|
# Log out and back in, or run: newgrp docker
|
|
|
|
cd ~
|
|
git clone https://github.com/kelinfoxy/AI-Homelab.git
|
|
cd AI-Homelab
|
|
cp .env.example .env
|
|
nano .env # Edit all required variables
|
|
|
|
sudo mkdir -p /opt/stacks /mnt/{media,database,downloads,backups}
|
|
sudo chown -R $USER:$USER /opt/stacks /mnt
|
|
docker network create traefik-network
|
|
docker network create homelab-network
|
|
docker network create dockerproxy-network
|
|
docker network create media-network
|
|
|
|
# Deploy
|
|
sudo mkdir -p /opt/stacks/core
|
|
sudo cp docker-compose/core/docker-compose.yml /opt/stacks/core/docker-compose.yml
|
|
sudo cp -r config-templates/traefik /opt/stacks/core/
|
|
sudo cp .env /opt/stacks/core/
|
|
sudo mkdir -p /opt/stacks/infrastructure
|
|
sudo cp docker-compose/infrastructure/docker-compose.yml /opt/stacks/infrastructure/docker-compose.yml
|
|
sudo cp .env /opt/stacks/infrastructure/
|
|
sudo mkdir -p /opt/stacks/dashboards
|
|
sudo cp docker-compose/dashboards/docker-compose.yml /opt/stacks/dashboards/docker-compose.yml
|
|
sudo cp -r config-templates/homepage /opt/stacks/dashboards/
|
|
sudo cp .env /opt/stacks/dashboards/
|
|
mkdir -p /opt/stacks/core/authelia
|
|
sudo cp config-templates/authelia/* /opt/stacks/core/authelia/
|
|
|
|
# Generate password hash (takes 30-60 seconds)
|
|
docker run --rm authelia/authelia:4.37 authelia crypto hash generate argon2 --password 'YourSecurePassword'
|
|
|
|
|
|
# Edit users_database.yml
|
|
nano /opt/stacks/core/authelia/users_database.yml
|
|
|
|
# Replace password hash and email in the users section:
|
|
users:
|
|
admin:
|
|
displayname: "Admin User"
|
|
password: "$argon2id$v=19$m=65536,t=3,p=4$..." # Your hash here
|
|
email: your.email@example.com
|
|
groups:
|
|
- admins
|
|
- users
|
|
|
|
# Update Traefik email
|
|
sed -i "s/admin@example.com/$ACME_EMAIL/" /opt/stacks/core/traefik/traefik.yml
|
|
|
|
# Replace Homepage domain variables
|
|
find /opt/stacks/dashboards/homepage -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i "s/{{HOMEPAGE_VAR_DOMAIN}}/$DOMAIN/g" {} \;
|
|
|
|
cd /opt/stacks/core
|
|
docker compose up -d
|
|
|
|
cd /opt/stacks/infrastructure
|
|
docker compose up -d
|
|
|
|
cd /opt/stacks/dashboards
|
|
docker compose up -d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|