Этот проект содержит настроенную Docker-конфигурацию для запуска CookieCMS с базой данных PostgreSQL, админкой PgAdmin и фронтендом.
- Образ:
ghcr.io/cookie-cms/cookiecms-js:1.8.0 - Порт: 8000 (внутренний)
- Назначение: Основное API приложения CookieCMS
- Образ:
postgres:15 - Порт: 5432
- База данных: cookiecms
- Пользователь: cookiecms
- Пароль: cookiecms
- Образ:
dpage/pgadmin4 - Порт: 8080 (внутренний)
- Email: admin@cookiecms.com
- Пароль: cookiecms
- Образ:
ghcr.io/cookie-cms/cookiecms-frontend:1.8.0-beta - Порт: 3000 (внутренний)
- Назначение: Веб-интерфейс CookieCMS
- Образ:
nginx:alpine - Порты: 80, 443
- Назначение: Reverse proxy, SSL терминация, статические файлы
- Образ:
certbot/certbot - Назначение: Автоматическое получение и обновление SSL сертификатов
Убедитесь, что у вас установлены:
chmod +x setup.sh dev-setup.sh
./setup.sh
./dev-setup.shchmod +x setup.sh setup-ssl.sh
./setup.sh
./setup-ssl.shСкопируйте файл с переменными окружения:
copy .env.example .envОтредактируйте файл .env под ваши нужды:
NAME_SITE- название вашего сайтаSECURE_CODE- секретный код для безопасностиSERVICE_API_TOKEN- токен для APIDOMAIN- домен вашего сайта- Настройки SMTP для отправки почты
- Настройки Discord (если нужны)
Запустите все сервисы:
docker-compose up -dПосле запуска будут доступны:
- CookieCMS: http://localhost (через nginx)
- CookieCMS API: http://localhost/api (через nginx)
- PgAdmin: http://localhost/pgadmin (через nginx)
- CookieCMS Frontend: http://localhost:3000
- CookieCMS API: http://localhost:8000
- PgAdmin: http://localhost:8080
- CookieCMS: https://yourdomain.com
- CookieCMS API: https://yourdomain.com/api
- PgAdmin: https://yourdomain.com/pgadmin
Проект включает готовые скрипты для быстрой настройки:
setup.sh- Интерактивная настройка переменных окруженияdev-setup.sh- Запуск в режиме локальной разработки (без SSL)setup-ssl.sh- Настройка SSL сертификатов для продакшн
Использует nginx/conf.d/localhost.conf для проксирования запросов:
- Frontend доступен на
http://localhost - API доступно на
http://localhost/api - PgAdmin доступен на
http://localhost/pgadmin
Использует nginx/conf.d/ssl.conf с настройками:
- Автоматический редирект HTTP → HTTPS
- SSL сертификаты от Let's Encrypt
- Security headers (HSTS, X-Frame-Options, etc.)
- Rate limiting для API и фронтенда
- Кеширование статических файлов
./setup-ssl.sh- Убедитесь, что домен указывает на ваш сервер
- Запустите получение сертификата:
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- Обновите nginx конфигурацию с вашим доменом
- Перезапустите nginx:
docker-compose restart nginx
Certbot автоматически обновляет сертификаты каждые 12 часов через docker-compose.
- Rate Limiting: API (10 req/s), Frontend (30 req/s)
- CORS: Автоматическая настройка для API
- Gzip: Сжатие статических файлов
- Security Headers: Защита от XSS, clickjacking
- Static Cache: Кеширование на 1 год для статики
docker-compose up -ddocker-compose down# Все сервисы
docker-compose logs
# Конкретный сервис
docker-compose logs cookiecms
docker-compose logs postgres
docker-compose logs pgadmin
docker-compose logs frontenddocker-compose restart cookiecms- Откройте http://localhost:8080
- Войдите с учетными данными:
- Email:
admin@cookiecms.com - Пароль:
cookiecms
- Email:
- Добавьте новый сервер:
- Host:
postgres - Port:
5432 - Database:
cookiecms - Username:
cookiecms - Password:
cookiecms
- Host:
NAME_SITE- название сайтаDOMAIN- домен сайта (например, http://localhost:3000)ENV- окружение (development/production/testing/demo)
Настройки для PostgreSQL уже настроены и соответствуют docker-compose.yml:
DB_TYPE=postgresDB_HOST=postgresDB_USERNAME=cookiecmsDB_PASSWORD=cookiecmsDB_NAME=cookiecmsDB_PORT=5432
Для отправки email-уведомлений:
SMTP_HOST=your.smtp.server
SMTP_USERNAME=your_email@domain.com
SMTP_PASSWORD=your_password (ПОМЕНЯТЬ)
SMTP_SECURE=true
SMTP_PORT=587Для авторизации через 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- Убедитесь, что PostgreSQL запущен:
docker-compose ps - Проверьте настройки в
.env - Проверьте логи PostgreSQL:
docker-compose logs postgres
Если порты уже используются, измените их в docker-compose.yml:
ports:
- "8001:8000" # Вместо 8000:8000Для обновления до новой версии:
# Остановить сервисы
docker-compose down
# Обновить образы
docker-compose pull
# Запустить с новыми образами
docker-compose up -ddocker exec postgres pg_dump -U cookiecms cookiecms > backup.sqldocker exec -i postgres psql -U cookiecms cookiecms < backup.sqlЭтот проект распространяется под лицензией MIT.