Как установить 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 (поменяй его при первом входе!).

Советы по настройке

  1. HTTPS: Если используешь HTTPS, настрой реверс-прокси (например, через Nginx) и SSL-сертификат.
  2. Безопасность: Укажи сложный OPENPROJECT_SECRET_KEY_BASE и POSTGRES_PASSWORD.
  3. Производительность: Если сервер мощный, увеличь RAILS_MAX_THREADS для ускорения работы.
  4. Бэкапы: Регулярно сохраняй тома pgdata и opdata.

Заключение

Теперь у тебя есть собственный OpenProject, развёрнутый через Docker Compose! Этот инструмент поможет управлять проектами, задачами и командами, а установка заняла всего 10–15 минут. Если что-то не работает, пиши в контакт — разберёмся вместе!

🇺🇦 Stop Russian Aggression!
See what you can do →

Выберите мессенджер

Telegram Email Forms