5.9 KiB
5.9 KiB
Инструкция по развертыванию Global-IT24 на Ubuntu с Traefik
Предварительные требования
- Ubuntu Server (20.04 или новее)
- Docker и Docker Compose установлены
- Traefik настроен как reverse proxy
- Домен направлен на ваш сервер
Шаг 1: Настройка Traefik
Если Traefik еще не настроен, создайте базовую конфигурацию:
# Создайте сеть для Traefik
docker network create traefik-public
# Создайте директорию для Traefik
mkdir -p ~/traefik
cd ~/traefik
Создайте docker-compose.yml для Traefik:
version: '3.8'
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- traefik-public
ports:
- "80:80"
- "443:443"
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./acme.json:/acme.json
- ./config.yml:/config.yml:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=web"
networks:
traefik-public:
external: true
Создайте traefik.yml:
api:
dashboard: true
insecure: false
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
http:
tls:
certResolver: letsencrypt
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: traefik-public
file:
filename: /config.yml
certificatesResolvers:
letsencrypt:
acme:
email: your-email@example.com
storage: acme.json
httpChallenge:
entryPoint: web
Создайте файл для SSL сертификатов:
touch acme.json
chmod 600 acme.json
Запустите Traefik:
docker-compose up -d
Шаг 2: Развертывание Global-IT24
- Клонируйте или скопируйте проект на сервер:
cd /home/your-user
# Скопируйте папку global_it24_landing на сервер
- Создайте .env файл:
cd global_it24_landing
cp .env.example .env
nano .env
Отредактируйте .env:
DOMAIN=ваш-домен.ru
NEXT_PUBLIC_SITE_URL=https://ваш-домен.ru
NODE_ENV=production
- Соберите и запустите контейнер:
# Сборка образа
docker-compose build
# Запуск контейнера
docker-compose up -d
# Проверка логов
docker-compose logs -f
Шаг 3: Проверка работы
- Откройте браузер и перейдите на ваш домен
- Проверьте, что HTTPS работает корректно
- Проверьте мобильную версию сайта
Команды для управления
# Перезапуск контейнера
docker-compose restart
# Остановка контейнера
docker-compose down
# Просмотр логов
docker-compose logs -f
# Обновление после изменений
docker-compose down
docker-compose build
docker-compose up -d
# Проверка статуса
docker-compose ps
Оптимизация производительности
- Включите кэширование в Traefik (добавьте в labels):
- "traefik.http.middlewares.cache-control.headers.customResponseHeaders.Cache-Control=public, max-age=31536000"
- Настройте компрессию (добавьте в labels):
- "traefik.http.middlewares.compress.compress=true"
- "traefik.http.routers.global-it24-secure.middlewares=compress@docker"
- Ограничьте ресурсы контейнера (добавьте в docker-compose.yml):
deploy:
resources:
limits:
cpus: '1'
memory: 512M
reservations:
cpus: '0.5'
memory: 256M
Резервное копирование
# Создайте скрипт для бэкапа
cat > backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/backup/global-it24"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
docker-compose exec global-it24-web tar czf - /app > $BACKUP_DIR/backup_$DATE.tar.gz
EOF
chmod +x backup.sh
Мониторинг
# Проверка использования ресурсов
docker stats global-it24-landing
# Проверка здоровья контейнера
docker inspect --format='{{.State.Health.Status}}' global-it24-landing
Устранение неполадок
Контейнер не запускается:
docker-compose logs global-it24-web
Проблемы с SSL:
docker logs traefik
# Проверьте acme.json
Сайт недоступен:
# Проверьте, что контейнер работает
docker ps | grep global-it24
# Проверьте сеть
docker network inspect traefik-public
# Проверьте порты
netstat -tulpn | grep -E '80|443'
Безопасность
- Регулярно обновляйте Docker образы
- Используйте файрвол (ufw):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
- Настройте автоматические обновления безопасности:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Контакты для поддержки
При возникновении проблем проверьте логи и документацию Traefik: https://doc.traefik.io/traefik/