Skip to content
This repository was archived by the owner on Aug 23, 2025. It is now read-only.

Cookie-cms/cookiecms-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CookieCMS Docker

Этот проект содержит настроенную Docker-конфигурацию для запуска CookieCMS с базой данных PostgreSQL, админкой PgAdmin и фронтендом.

Описание сервисов

CookieCMS

  • Образ: ghcr.io/cookie-cms/cookiecms-js:1.8.0
  • Порт: 8000 (внутренний)
  • Назначение: Основное API приложения CookieCMS

PostgreSQL

  • Образ: postgres:15
  • Порт: 5432
  • База данных: cookiecms
  • Пользователь: cookiecms
  • Пароль: cookiecms

PgAdmin

  • Образ: dpage/pgadmin4
  • Порт: 8080 (внутренний)
  • Email: admin@cookiecms.com
  • Пароль: cookiecms

Frontend

  • Образ: ghcr.io/cookie-cms/cookiecms-frontend:1.8.0-beta
  • Порт: 3000 (внутренний)
  • Назначение: Веб-интерфейс CookieCMS

Nginx

  • Образ: nginx:alpine
  • Порты: 80, 443
  • Назначение: Reverse proxy, SSL терминация, статические файлы

Certbot

  • Образ: certbot/certbot
  • Назначение: Автоматическое получение и обновление SSL сертификатов

Быстрый старт

1. Подготовка

Убедитесь, что у вас установлены:

2. Автоматическая настройка (рекомендуется)

Для локальной разработки:

chmod +x setup.sh dev-setup.sh
./setup.sh
./dev-setup.sh

Для продакшн сервера с SSL:

chmod +x setup.sh setup-ssl.sh
./setup.sh
./setup-ssl.sh

3. Ручная настройка

Скопируйте файл с переменными окружения:

copy .env.example .env

Отредактируйте файл .env под ваши нужды:

  • NAME_SITE - название вашего сайта
  • SECURE_CODE - секретный код для безопасности
  • SERVICE_API_TOKEN - токен для API
  • DOMAIN - домен вашего сайта
  • Настройки SMTP для отправки почты
  • Настройки Discord (если нужны)

3. Запуск

Запустите все сервисы:

docker-compose up -d

4. Проверка

После запуска будут доступны:

Локальная разработка:

Прямой доступ к сервисам:

Продакшн с SSL:

Nginx и SSL настройка

Автоматические скрипты

Проект включает готовые скрипты для быстрой настройки:

  • setup.sh - Интерактивная настройка переменных окружения
  • dev-setup.sh - Запуск в режиме локальной разработки (без SSL)
  • setup-ssl.sh - Настройка SSL сертификатов для продакшн

Конфигурация Nginx

Локальная разработка

Использует nginx/conf.d/localhost.conf для проксирования запросов:

  • Frontend доступен на http://localhost
  • API доступно на http://localhost/api
  • PgAdmin доступен на http://localhost/pgadmin

Продакшн с SSL

Использует nginx/conf.d/ssl.conf с настройками:

  • Автоматический редирект HTTP → HTTPS
  • SSL сертификаты от Let's Encrypt
  • Security headers (HSTS, X-Frame-Options, etc.)
  • Rate limiting для API и фронтенда
  • Кеширование статических файлов

SSL сертификаты

Автоматическая настройка

./setup-ssl.sh

Ручная настройка SSL

  1. Убедитесь, что домен указывает на ваш сервер
  2. Запустите получение сертификата:
docker-compose run --rm certbot certonly \
    --webroot \
    --webroot-path=/var/www/certbot \
    --email your-email@domain.com \
    --agree-tos \
    --no-eff-email \
    -d yourdomain.com
  1. Обновите nginx конфигурацию с вашим доменом
  2. Перезапустите nginx: docker-compose restart nginx

Автоматическое обновление сертификатов

Certbot автоматически обновляет сертификаты каждые 12 часов через docker-compose.

Nginx функции

  • Rate Limiting: API (10 req/s), Frontend (30 req/s)
  • CORS: Автоматическая настройка для API
  • Gzip: Сжатие статических файлов
  • Security Headers: Защита от XSS, clickjacking
  • Static Cache: Кеширование на 1 год для статики

Управление

Запуск

docker-compose up -d

Остановка

docker-compose down

Просмотр логов

# Все сервисы
docker-compose logs

# Конкретный сервис
docker-compose logs cookiecms
docker-compose logs postgres
docker-compose logs pgadmin
docker-compose logs frontend

Перезапуск сервиса

docker-compose restart cookiecms

Подключение к базе данных через PgAdmin

  1. Откройте http://localhost:8080
  2. Войдите с учетными данными:
    • Email: admin@cookiecms.com
    • Пароль: cookiecms
  3. Добавьте новый сервер:
    • Host: postgres
    • Port: 5432
    • Database: cookiecms
    • Username: cookiecms
    • Password: cookiecms

Настройка переменных окружения

Основные настройки

  • NAME_SITE - название сайта
  • DOMAIN - домен сайта (например, http://localhost:3000)
  • ENV - окружение (development/production/testing/demo)

База данных

Настройки для PostgreSQL уже настроены и соответствуют docker-compose.yml:

  • DB_TYPE=postgres
  • DB_HOST=postgres
  • DB_USERNAME=cookiecms
  • DB_PASSWORD=cookiecms
  • DB_NAME=cookiecms
  • DB_PORT=5432

SMTP (опционально)

Для отправки email-уведомлений:

SMTP_HOST=your.smtp.server
SMTP_USERNAME=your_email@domain.com
SMTP_PASSWORD=your_password (ПОМЕНЯТЬ)
SMTP_SECURE=true
SMTP_PORT=587

Discord интеграция (опционально)

Для авторизации через Discord:

DISCORD_ENABLED=true
DISCORD_CLIENT_ID=your_client_id
DISCORD_SECRET_ID=your_secret_id
DISCORD_SCOPES=identify,email
DISCORD_REDIRECT_URL=http://localhost:3000/auth/discord/callback
DISCORD_GUILD_ID=your_guild_id
DISCORD_ROLE=your_role_name

Устранение неполадок

Сервис не запускается

# Проверьте логи
docker-compose logs [service_name]

# Пересоберите образы
docker-compose build --no-cache

# Очистите volumes (ВНИМАНИЕ: удалит данные БД)
docker-compose down -v

База данных не подключается

  1. Убедитесь, что PostgreSQL запущен: docker-compose ps
  2. Проверьте настройки в .env
  3. Проверьте логи PostgreSQL: docker-compose logs postgres

Порты заняты

Если порты уже используются, измените их в docker-compose.yml:

ports:
  - "8001:8000"  # Вместо 8000:8000

Обновление

Для обновления до новой версии:

# Остановить сервисы
docker-compose down

# Обновить образы
docker-compose pull

# Запустить с новыми образами
docker-compose up -d

Резервное копирование

Создание бэкапа базы данных

docker exec postgres pg_dump -U cookiecms cookiecms > backup.sql

Восстановление из бэкапа

docker exec -i postgres psql -U cookiecms cookiecms < backup.sql

Поддержка

Лицензия

Этот проект распространяется под лицензией MIT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages