Как установить OpenProject с помощью Docker Compose: пошаговый гайд
Что тебе понадобится
- Установленный Docker и Docker Compose.
- Базовые знания работы с терминалом.
- Файл
.envс переменными (я покажу, какие).
Шаг 1: Подготовь файл .env
Создай файл .env в корне проекта и добавь в него следующие переменные:
# OpenProject Configuration
OPENPROJECT_HOST_NAME=yourdomain.com
OPENPROJECT_HTTPS=true
OPENPROJECT_SECRET_KEY_BASE=your_secure_key
PORT=8080
# PostgreSQL Configuration
POSTGRES_PASSWORD=your_db_password
OPENPROJECT_HOST_NAME: Домен или IP твоего сервера.OPENPROJECT_HTTPS: Укажиtrue, если используешь HTTPS.OPENPROJECT_SECRET_KEY_BASE: Секретный ключ для безопасности (сгенерируй надёжный!).POSTGRES_PASSWORD: Пароль для базы данных PostgreSQL.
Шаг 2: Создай файл docker-compose.yml
Вот конфигурация для Docker Compose, которая развернёт OpenProject и PostgreSQL:
services:
db:
image: postgres:15
volumes:
- pgdata:/var/lib/postgresql/data
environment:
- POSTGRES_USER=openproject
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=openproject
healthcheck:
test: ["CMD-SHELL", "pg_isready -U openproject"]
interval: 10s
timeout: 5s
retries: 5
deploy:
resources:
limits:
cpus: "1.0"
memory: 1G
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
networks:
- openproject-network
web:
image: openproject/openproject:15
depends_on:
db:
condition: service_healthy
volumes:
- opdata:/var/openproject/assets
environment:
- OPENPROJECT_HOST__NAME=${OPENPROJECT_HOST_NAME}
- OPENPROJECT_HTTPS=${OPENPROJECT_HTTPS}
- OPENPROJECT_SECRET_KEY_BASE=${OPENPROJECT_SECRET_KEY_BASE:-your_secure_key}
- DATABASE_URL=postgres://openproject:${POSTGRES_PASSWORD}@db/openproject
- RAILS_ENV=production
- RAILS_MIN_THREADS=4
- RAILS_MAX_THREADS=16
- RAILS_CACHE_STORE=redis
- APACHE_SERVER_NAME=${OPENPROJECT_HOST_NAME}
- APACHE_PORT=80
ports:
- "${PORT}:80"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
deploy:
resources:
limits:
cpus: "3.0"
memory: 6G
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
networks:
- openproject-network
volumes:
pgdata:
name: openproject_pgdata
opdata:
name: openproject_opdata
networks:
openproject-network:
driver: bridge
Разберём, что тут происходит:
-
Сервис
db:- Использует образ PostgreSQL 15.
- Хранит данные в томе
pgdataдля сохранения базы. - Healthcheck проверяет готовность базы каждые 10 секунд.
- Ограничения: 1 CPU и 1 ГБ RAM.
-
Сервис
web:- Использует официальный образ OpenProject 15.
- Зависит от
dbи ждёт, пока база будет готова. - Хранит файлы в томе
opdata. - Порт
8080(или другой из.env) пробрасывается наружу. - Healthcheck проверяет доступность OpenProject через HTTP.
- Ограничения: 3 CPU и 6 ГБ RAM.
-
Тома и сети:
pgdataиopdata— для сохранения данных.openproject-network— изолированная сеть для контейнеров.
Шаг 3: Запусти Docker Compose
В терминале выполни:
docker-compose up -d
- Флаг
-dзапускает контейнеры в фоновом режиме. - Дождись, пока контейнеры запустятся (это может занять пару минут).
Шаг 4: Проверь доступность
Открой браузер и перейди по адресу:
- Если
OPENPROJECT_HTTPS=true, используйhttps://yourdomain.com:8080. - Если
false, тоhttp://yourdomain.com:8080.
Ты должен увидеть страницу входа в OpenProject. По умолчанию:
- Логин:
admin. - Пароль:
admin(поменяй его при первом входе!).
Советы по настройке
- HTTPS: Если используешь HTTPS, настрой реверс-прокси (например, через Nginx) и SSL-сертификат.
- Безопасность: Укажи сложный
OPENPROJECT_SECRET_KEY_BASEиPOSTGRES_PASSWORD. - Производительность: Если сервер мощный, увеличь
RAILS_MAX_THREADSдля ускорения работы. - Бэкапы: Регулярно сохраняй тома
pgdataиopdata.
Заключение
Теперь у тебя есть собственный OpenProject, развёрнутый через Docker Compose! Этот инструмент поможет управлять проектами, задачами и командами, а установка заняла всего 10–15 минут. Если что-то не работает, пиши в контакт — разберёмся вместе!
🚀 Explore more guides on our blog 👉 blog.1it.pro
📧 Contact us: admin@1it.pro for expert IT guidance.
🌐 Explore more: Visit 1it.pro for top-tier IT solutions.