4.1 KiB
4.1 KiB
Предварительные требования
Системные требования
- Ubuntu/Debian сервер с минимум 2GB RAM
- Docker и Docker Compose установлены
- Открыты порты: 80, 443, 2222, 8080
- Настроены DNS записи для поддоменов
Подготовка DNS
Создайте A-записи для всех поддоменов:
traefik.aepif.ru IN A YOUR_SERVER_IP
auth.aepif.ru IN A YOUR_SERVER_IP
notes.aepif.ru IN A YOUR_SERVER_IP
git.aepif.ru IN A YOUR_SERVER_IP
webhook.aepif.ru IN A YOUR_SERVER_IP
Порядок развертывания
⚠️ Важно: Инфраструктурные сервисы должны быть развернуты первыми, так как все остальные приложения зависят от них.
Последовательность установки:
- Traefik Reverse Proxy (сначала)
- Authelia Authentication (после Traefik)
- Second Mind (после обеих частей инфраструктуры)
1. Развертывание Traefik
Подготовка директорий
# Создание директории проекта
mkdir -p /DOCKER/reverse-proxy
cd /DOCKER/reverse-proxy
# Создание volume для данных Traefik
docker volume create traefik_data
Создание .env файла
cat > .env << 'EOF'
DOMAIN=aepif.ru
ADMIN_EMAIL=epifantsev1aa@gmail.com
EOF
Создание docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
traefik:
image: traefik:v3.0
container_name: traefik
command:
- --api.dashboard=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --providers.docker.network=proxy
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --entrypoints.ssh.address=:2222
- --certificatesresolvers.letsencrypt.acme.email=epifantsev1aa@gmail.com
- --certificatesresolvers.letsencrypt.acme.storage=/data/acme.json
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
- --providers.docker.exposedByDefault=false
- --api.insecure=true
ports:
- "80:80"
- "443:443"
- "8080:8080"
- "2222:2222"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_data:/data
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.traefik.rule=Host(`traefik.aepif.ru`)
- traefik.http.routers.traefik.tls.certresolver=letsencrypt
- traefik.http.routers.traefik.service=api@internal
- traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)
- traefik.http.routers.http-catchall.entrypoints=web
- traefik.http.routers.http-catchall.middlewares=redirect-to-https
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
restart: unless-stopped
volumes:
traefik_data:
networks:
proxy:
name: proxy
driver: bridge
EOF
Создание сети и запуск
# Создание внешней сети proxy
docker network create proxy
# Запуск Traefik
docker-compose up -d
# Проверка статуса
docker-compose ps
docker-compose logs -f
Проверка работы Traefik
# Проверка HTTP → HTTPS редиректа
curl -I http://traefik.aepif.ru
# Проверка HTTPS
curl -I https://traefik.aepif.ru
# Проверка dashboard (должен быть доступен)
curl -I https://traefik.aepif.ru/dashboard/
2. Развертывание Authelia
Подготовка директорий
# Создание директории проекта
mkdir -p /DOCKER/auth/authelia
cd /DOCKER/auth
Генерация секретов
# Генерация всех необходимых секретов
JWT_SECRET=$(openssl rand -base64 48)
SESSION_SECRET=$(openssl rand -base64 48)
STORAGE_KEY=$(openssl rand -base64 24)
REDIS_PASSWORD=$(