Files
global_it24_landing/README.deployment.md
2025-10-25 08:47:39 +00:00

266 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Инструкция по развертыванию Global-IT24 на Ubuntu с Traefik
## Предварительные требования
1. Ubuntu Server (20.04 или новее)
2. Docker и Docker Compose установлены
3. Traefik настроен как reverse proxy
4. Домен направлен на ваш сервер
## Шаг 1: Настройка Traefik
Если Traefik еще не настроен, создайте базовую конфигурацию:
```bash
# Создайте сеть для Traefik
docker network create traefik-public
# Создайте директорию для Traefik
mkdir -p ~/traefik
cd ~/traefik
```
Создайте `docker-compose.yml` для Traefik:
```yaml
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`:
```yaml
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 сертификатов:
```bash
touch acme.json
chmod 600 acme.json
```
Запустите Traefik:
```bash
docker-compose up -d
```
## Шаг 2: Развертывание Global-IT24
1. **Клонируйте или скопируйте проект на сервер:**
```bash
cd /home/your-user
# Скопируйте папку global_it24_landing на сервер
```
2. **Создайте .env файл:**
```bash
cd global_it24_landing
cp .env.example .env
nano .env
```
Отредактируйте `.env`:
```env
DOMAIN=ваш-домен.ru
NEXT_PUBLIC_SITE_URL=https://ваш-домен.ru
NODE_ENV=production
```
3. **Соберите и запустите контейнер:**
```bash
# Сборка образа
docker-compose build
# Запуск контейнера
docker-compose up -d
# Проверка логов
docker-compose logs -f
```
## Шаг 3: Проверка работы
1. Откройте браузер и перейдите на ваш домен
2. Проверьте, что HTTPS работает корректно
3. Проверьте мобильную версию сайта
## Команды для управления
```bash
# Перезапуск контейнера
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):
```yaml
- "traefik.http.middlewares.cache-control.headers.customResponseHeaders.Cache-Control=public, max-age=31536000"
```
2. **Настройте компрессию** (добавьте в labels):
```yaml
- "traefik.http.middlewares.compress.compress=true"
- "traefik.http.routers.global-it24-secure.middlewares=compress@docker"
```
3. **Ограничьте ресурсы контейнера** (добавьте в docker-compose.yml):
```yaml
deploy:
resources:
limits:
cpus: '1'
memory: 512M
reservations:
cpus: '0.5'
memory: 256M
```
## Резервное копирование
```bash
# Создайте скрипт для бэкапа
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
```
## Мониторинг
```bash
# Проверка использования ресурсов
docker stats global-it24-landing
# Проверка здоровья контейнера
docker inspect --format='{{.State.Health.Status}}' global-it24-landing
```
## Устранение неполадок
### Контейнер не запускается:
```bash
docker-compose logs global-it24-web
```
### Проблемы с SSL:
```bash
docker logs traefik
# Проверьте acme.json
```
### Сайт недоступен:
```bash
# Проверьте, что контейнер работает
docker ps | grep global-it24
# Проверьте сеть
docker network inspect traefik-public
# Проверьте порты
netstat -tulpn | grep -E '80|443'
```
## Безопасность
1. Регулярно обновляйте Docker образы
2. Используйте файрвол (ufw):
```bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
```
3. Настройте автоматические обновления безопасности:
```bash
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
```
## Контакты для поддержки
При возникновении проблем проверьте логи и документацию Traefik: https://doc.traefik.io/traefik/