Инструкция по развертыванию Global-IT24 на Ubuntu с Traefik

Предварительные требования

  1. Ubuntu Server (20.04 или новее)
  2. Docker и Docker Compose установлены
  3. Traefik настроен как reverse proxy
  4. Домен направлен на ваш сервер

Шаг 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

  1. Клонируйте или скопируйте проект на сервер:
cd /home/your-user
# Скопируйте папку global_it24_landing на сервер
  1. Создайте .env файл:
cd global_it24_landing
cp .env.example .env
nano .env

Отредактируйте .env:

DOMAIN=ваш-домен.ru
NEXT_PUBLIC_SITE_URL=https://ваш-домен.ru
NODE_ENV=production
  1. Соберите и запустите контейнер:
# Сборка образа
docker-compose build

# Запуск контейнера
docker-compose up -d

# Проверка логов
docker-compose logs -f

Шаг 3: Проверка работы

  1. Откройте браузер и перейдите на ваш домен
  2. Проверьте, что HTTPS работает корректно
  3. Проверьте мобильную версию сайта

Команды для управления

# Перезапуск контейнера
docker-compose restart

# Остановка контейнера
docker-compose down

# Просмотр логов
docker-compose logs -f

# Обновление после изменений
docker-compose down
docker-compose build
docker-compose up -d

# Проверка статуса
docker-compose ps

Оптимизация производительности

  1. Включите кэширование в Traefik (добавьте в labels):
- "traefik.http.middlewares.cache-control.headers.customResponseHeaders.Cache-Control=public, max-age=31536000"
  1. Настройте компрессию (добавьте в labels):
- "traefik.http.middlewares.compress.compress=true"
- "traefik.http.routers.global-it24-secure.middlewares=compress@docker"
  1. Ограничьте ресурсы контейнера (добавьте в 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'

Безопасность

  1. Регулярно обновляйте Docker образы
  2. Используйте файрвол (ufw):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  1. Настройте автоматические обновления безопасности:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Контакты для поддержки

При возникновении проблем проверьте логи и документацию Traefik: https://doc.traefik.io/traefik/

Description
Landing page for Global-IT24 video surveillance installation service
Readme 8.6 MiB
Languages
TypeScript 86.5%
Shell 10.3%
Dockerfile 1.5%
JavaScript 0.8%
CSS 0.8%