vault backup: 2025-08-04 12:49:10

This commit is contained in:
Andrey Epifancev
2025-08-04 12:49:10 +04:00
parent 2073fb73ad
commit 9753a97c28
5 changed files with 660 additions and 4 deletions

View File

@@ -0,0 +1,148 @@
## Предварительные требования
### Системные требования
- Ubuntu/Debian сервер с минимум 2GB RAM
- Docker и Docker Compose установлены
- Открыты порты: 80, 443, 2222, 8080
- Настроены DNS записи для поддоменов
### Подготовка DNS
Создайте A-записи для всех поддоменов:
```dns
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
```
## Порядок развертывания
⚠️ **Важно**: Инфраструктурные сервисы должны быть развернуты **первыми**, так как все остальные приложения зависят от них.
### Последовательность установки:
1. **Traefik Reverse Proxy** (сначала)
2. **Authelia Authentication** (после Traefik)
3. **Second Mind** (после обеих частей инфраструктуры)
## 1. Развертывание Traefik
### Подготовка директорий
```bash
# Создание директории проекта
mkdir -p /DOCKER/reverse-proxy
cd /DOCKER/reverse-proxy
# Создание volume для данных Traefik
docker volume create traefik_data
```
### Создание .env файла
```bash
cat > .env << 'EOF'
DOMAIN=aepif.ru
ADMIN_EMAIL=epifantsev1aa@gmail.com
EOF
```
### Создание docker-compose.yml
```bash
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
```
### Создание сети и запуск
```bash
# Создание внешней сети proxy
docker network create proxy
# Запуск Traefik
docker-compose up -d
# Проверка статуса
docker-compose ps
docker-compose logs -f
```
### Проверка работы Traefik
```bash
# Проверка 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
### Подготовка директорий
```bash
# Создание директории проекта
mkdir -p /DOCKER/auth/authelia
cd /DOCKER/auth
```
### Генерация секретов
```bash
# Генерация всех необходимых секретов
JWT_SECRET=$(openssl rand -base64 48)
SESSION_SECRET=$(openssl rand -base64 48)
STORAGE_KEY=$(openssl rand -base64 24)
REDIS_PASSWORD=$(