Установка Taiga в Docker на Synology

Всем привет!!!

В этом материале я расскажу как установить Taiga в контейнер Docker на Synology.

Я только покажу как установить Taiga в контейнер Docker на Synology, а настройка и конфигурация в данную статью не входят.

Введение

Taiga.io — это платформа для управления проектами, ориентированная на гибкие методологии разработки, такие как Agile и Scrum. Она предоставляет инструменты для планирования, отслеживания задач и управления проектами, что позволяет командам эффективно организовывать свою работу.

Основные функции Taiga включают:

1. Управление задачами: Создание и отслеживание задач, установка приоритетов и сроков выполнения.

2. Доски Kanban: Визуальное представление статуса задач, что помогает командам видеть прогресс работы.

3. Спринты: Поддержка спринтов для Agile-команд, что позволяет планировать и выполнять работу в рамках определённых временных интервалов.

4. Отчёты и аналитика: Инструменты для анализа производительности команды и мониторинга прогресса проекта.

5. Интеграции: Возможность интеграции с другими инструментами, такими как GitHub, GitLab и другими.

6. Русская локализация

Taiga.io подходит для команд любого размера и может использоваться как для разработки программного обеспечения, так и для управления другими типами проектов.

Системные требования

Для установки Taiga на Synology нужно учитывать следующее

  • DSM 7.2 с Container Manager
  • Минимум 1 ГБ RAM (рекомендуется больше для работы с несколькими контейнерами).

Мне не удалось настроить уведомление по почте. В интернете и на форумах проекта много тем и статей, но как понял я разработчики до конца не понимают как работает почта в docker и после каждого обновления данный функционал в Taiga перестает работать.

Обратный прокси

Можно сделать доступ к Taiga по доменному имени через обратный прокси в Synology. Откройте панель управления в DSM, портал для входа, дополнительно и обратный прокси. Создайте новое правило. Придумайте название правила. В источнике укажите https, имя домена, например taiga.XXX.synology.me и 443 порт. В месте назначения укажите http, localhost и порт 9000.

Не забудьте привязать нужный SSL сертификат в Панель управления – Безопасность – Сертификаты

Подготовка места

Откройте Synology DSM и File Station. В каталоге docker или там где вам больше нравиться создайте папку taiga, а в ней еще каталоги:

  • static
  • media
  • db
  • async-rabbitmq
  • events-rabbitmq
  • taiga-gateway

Затем в папку taiga-gateway нужно положить файл taiga.conf следующего содержания:

А есть сайты, которые за этот файл просят денег. Взял я этот файл с githab проекта. Если у вас есть возможности и желание, то в статье можно найти ссылку на донат. Спасибо!!!

server {
    listen 80 default_server;

    client_max_body_size 100M;
    charset utf-8;

    # Frontend
    location / {
        proxy_pass http://taiga-front/;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
    }

    # API
    location /api/ {
        proxy_pass http://taiga-back:8000/api/;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
    }

    # Admin
    location /admin/ {
        proxy_pass http://taiga-back:8000/admin/;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
    }

    # Static
    location /static/ {
        alias /taiga/static/;
    }

    # Media
    location /_protected/ {
        internal;
        alias /taiga/media/;
        add_header Content-disposition "attachment";
    }

    # Unprotected section
    location /media/exports/ {
        alias /taiga/media/exports/;
        add_header Content-disposition "attachment";
    }

    location /media/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://taiga-protected:8003/;
        proxy_redirect off;
    }

    # Events
    location /events {
        proxy_pass http://taiga-events:8888/events;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
    }
}

Установка Taiga в Docker

Откройте Container Manager в DSM и перейдите на вкладку проекты. Создайте новый проект, придумайте ему имя, укажите путь до папки taiga и либо вставьте файл docker-compose либо его текст

Этот конфиг docker-compose для запуска taiga в контейнере docker на Synology. Предварительно замените в двух местах https://taiga.XXX.synology.me на ваше значение.

version: "3.5"

services:
  taiga-db:
    image: postgres:12.3
    hostname: taiga-db
    security_opt:
      - no-new-privileges:true
    environment:
      POSTGRES_DB: taiga
      POSTGRES_USER: taigauser
      POSTGRES_PASSWORD: taigapass
      TZ: Asia/Omsk
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "taiga", "-U", "taigauser"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 3s
    volumes:
      - ./db:/var/lib/postgresql/data

  taiga-back:
    image: taigaio/taiga-back:latest
    hostname: taiga-back
    environment:
      PUBLIC_REGISTER_ENABLED: true
      SESSION_COOKIE_SECURE: true
      CSRF_COOKIE_SECURE: true
      TAIGA_SECRET_KEY: "roiZcfvJkvZduSYzrzc0FtM2yfHEeyBq9TAW5pK5O9DqAWhY18XupmtlZk0ULRmj"
      RABBITMQ_USER: "taigauser"
      RABBITMQ_PASS: "taigapass"
      POSTGRES_USER: "taigauser"
      POSTGRES_PASSWORD: "taigapass"
      POSTGRES_HOST: "taiga-db"
    volumes:
      - ./static:/taiga-back/static
      - ./media:/taiga-back/media
    depends_on:
      taiga-db:
        condition: service_healthy
      taiga-events-rabbitmq:
        condition: service_started
      taiga-async-rabbitmq:
        condition: service_started

  taiga-async:
    image: taigaio/taiga-back:latest
    hostname: taiga-async
    entrypoint: ["/taiga-back/docker/async_entrypoint.sh"]
    environment:
      PUBLIC_REGISTER_ENABLED: true
      SESSION_COOKIE_SECURE: true
      CSRF_COOKIE_SECURE: true
      SECRET_KEY: "roiZcfvJkvZduSYzrzc0FtM2yfHEeyBq9TAW5pK5O9DqAWhY18XupmtlZk0ULRmj"
      TAIGA_SECRET_KEY: "roiZcfvJkvZduSYzrzc0FtM2yfHEeyBq9TAW5pK5O9DqAWhY18XupmtlZk0ULRmj"
      RABBITMQ_USER: "taigauser"
      RABBITMQ_PASS: "taigapass"
      RABBITMQ_ERLANG_COOKIE: "secret-erlang-cookie"
    volumes:
      - ./static:/taiga-back/static
      - ./media:/taiga-back/media
    depends_on:
      taiga-db:
        condition: service_healthy
      taiga-events-rabbitmq:
        condition: service_started
      taiga-async-rabbitmq:
        condition: service_started

  taiga-async-rabbitmq:
    image: rabbitmq:3.8-management-alpine
    hostname: taiga-async-rabbitmq
    environment:
      RABBITMQ_ERLANG_COOKIE: "secret-erlang-cookie"
      RABBITMQ_DEFAULT_USER: "taigauser"
      RABBITMQ_DEFAULT_PASS: "taigapass"
      RABBITMQ_DEFAULT_VHOST: "taiga"
    user: 1026:100
    volumes:
      - ./async-rabbitmq:/var/lib/rabbitmq

  taiga-front:
    image: taigaio/taiga-front:latest
    hostname: taiga-front
    security_opt:
      - no-new-privileges:true
    environment:
      TAIGA_URL: "https://taiga.XXX.synology.me"
      TAIGA_WEBSOCKETS_URL: "wss://taiga.XXX.synology.me"
      TAIGA_SUBPATH: ""
      #PUBLIC_REGISTER_ENABLED: true # не работает https://docs.taiga.io/setup-faqs.html
      SESSION_COOKIE_SECURE: true
      CSRF_COOKIE_SECURE: true
      # ...your customizations go here
    # volumes:
    #   - ./conf.json:/usr/share/nginx/html/conf.json

  taiga-events:
    image: taigaio/taiga-events:latest
    hostname: taiga-event
    environment:
      RABBITMQ_USER: "taigauser"
      RABBITMQ_PASS: "taigapass"
      TAIGA_SECRET_KEY: "roiZcfvJkvZduSYzrzc0FtM2yfHEeyBq9TAW5pK5O9DqAWhY18XupmtlZk0ULRmj"
    depends_on:
      taiga-events-rabbitmq:
        condition: service_started

  taiga-events-rabbitmq:
    image: rabbitmq:3.8-management-alpine
    hostname: taiga-events-rabbitmq
    environment:
      RABBITMQ_ERLANG_COOKIE: "secret-erlang-cookie"
      RABBITMQ_DEFAULT_USER: "taigauser"
      RABBITMQ_DEFAULT_PASS: "taigapass"
      RABBITMQ_DEFAULT_VHOST: "taiga"
    user: 1026:100
    volumes:
      - ./events-rabbitmq:/var/lib/rabbitmq

  taiga-protected:
    image: taigaio/taiga-protected:latest
    hostname: taiga-protected
    security_opt:
      - no-new-privileges:true
    environment:
      MAX_AGE: "360"
      SECRET_KEY: "roiZcfvJkvZduSYzrzc0FtM2yfHEeyBq9TAW5pK5O9DqAWhY18XupmtlZk0ULRmj"

  taiga-gateway:
    image: nginx:1.19-alpine
    hostname: taiga-gateway
    ports:
      - "9000:80"
    volumes:
      - ./taiga-gateway/taiga.conf:/etc/nginx/conf.d/default.conf
      - ./static:/taiga/static
      - ./media:/taiga/media
    depends_on:
      - taiga-front
      - taiga-back
      - taiga-events

volumes:
  static:
  media:
  db:
  async-rabbitmq:
  events-rabbitmq:
  taiga-gateway:

В теории, если вставить переменные ниже в taiga-back то должны заработать уведомления почты, но как я и говорил, это не сработало у меня

      # Email settings.
      EMAIL_BACKEND: "smtp"
      DEFAULT_FROM_EMAIL: "changeme@example.com"
      EMAIL_USE_TLS: "True"
      EMAIL_USE_SSL: "False"
      EMAIL_HOST: "smtp.host.example.com"
      EMAIL_PORT: "587"
      EMAIL_HOST_USER: "user"
      EMAIL_HOST_PASSWORD: "password"

После создания проекта, если все сделали правильно, выйдет код 0, который означает что проект успешно создан.

Внутри проекта будет много контейнеров. Первые минуты они будут погружаться, а потом успокоятся.

Если у вас включен фаервол на Synology, то нужно дополнительно разрешить сеть проекта, что бы все работало корректно. Напомню, что 16 маска это 255.255.0.0

Создание пользователя

Первого и всех последующих пользователей нужно создавать через терминал контейнера. Для этого откройте контейнер taiga-back, затем действия и открыть терминал

В открывшемся окне создайте новый терминал bash и перейдите на него. В терминале введите команду

python manage.py createsuperuser

Придумайте имя пользователя, почту и пароль

Теперь пользователь создан и можно использовать его в проектах taiga. Если нужны еще пользователи, то создайте их по аналогии.

Вход в веб интерфейс

Для подключения к веб интерфейсу введите в браузере https://taiga.XXX.synology.me, который вы настраивали ранее

Теперь вы знаете как установить Taiga в Docker на Synology

Подписаться
Уведомить о
guest
14 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии