Installing taiga in portainer & Nginx Proxy Manager

Thanks for quick answer, its works after adding the nginx conf file and use the service name with -.

here the updated yml that works on portainer:

version: "3.9"

volumes:
  taiga_db_volume:
  taiga_back_static_volume:
  taiga_back_media_volume:
  taiga_async_rabbitmq_volume:
  taiga_events_rabbitmq_volume:

x-backend-variables: &backend-variables
  environment:
    - TAIGA_SITES_SCHEME=https
    - TAIGA_SITES_DOMAIN=xxxxxxxxxxxxx
    - SUBPATH=""
    - WEBSOCKETS_SCHEME=ws
    - TAIGA_SECRET_KEY=xxxxxxxxxxxxx
    - POSTGRES_USER=xxxxxxxxxxxxx      
    - POSTGRES_PASSWORD=xxxxxxxxxxxxx
    - POSTGRES_HOST=taiga-db      
    - EMAIL_BACKEND=smtp
    - EMAIL_HOST=xxxxxxxxxxxxx
    - EMAIL_PORT=587
    - EMAIL_HOST_USER=xxxxxxxxxxxxx
    - EMAIL_HOST_PASSWORD=xxxxxxxxxxxxx
    - EMAIL_DEFAULT_FROM=xxxxxxxxxxxxx
    - EMAIL_USE_TLS=True
    - EMAIL_USE_SSL=False
    - RABBITMQ_USER=xxxxxxxxxxxxx
    - RABBITMQ_PASS=xxxxxxxxxxxxx
    - RABBITMQ_VHOST=taiga
    - RABBITMQ_ERLANG_COOKIE=xxxxxxxxxxxxx
    - ATTACHMENTS_MAX_AGE=360
    - ENABLE_TELEMETRY=False
    - PUBLIC_REGISTER_ENABLED=false
    - SESSION_COOKIE_SECURE=true
    - CSRF_COOKIE_SECURE=true

x-rabbitmq-variables: &rabbitmq-variables
  environment:
    - RABBITMQ_ERLANG_COOKIE=xxxxxxxxxxxxx
    - RABBITMQ_DEFAULT_USER=xxxxxxxxxxxxx
    - RABBITMQ_DEFAULT_PASS=xxxxxxxxxxxxx
    - RABBITMQ_DEFAULT_VHOST=taiga
      
networks:
  taiga_network:

services:
  taiga-db:
    image: postgres:12.3
    volumes:
      - taiga_db_volume:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: taiga
      POSTGRES_USER: xxxxxxxxxxxxx
      POSTGRES_PASSWORD: xxxxxxxxxxxxx
    networks:
      - taiga_network
 
  taiga-back:
    image: taigaio/taiga-back:latest
    <<: *backend-variables
    volumes:
      - taiga_back_static_volume:/taiga-back/static
      - taiga_back_media_volume:/taiga-back/media
    networks:
      - taiga_network

  taiga-async:
    image: taigaio/taiga-back:latest
    entrypoint:
      - /taiga-back/docker/async_entrypoint.sh
    <<: *backend-variables     
    volumes:
      - taiga_back_static_volume:/taiga-back/static
      - taiga_back_media_volume:/taiga-back/media
    networks:
      - taiga_network

  taiga-front:
    image: taigaio/taiga-front:latest
    environment:
      TAIGA_URL: https://xxxxxxxxxxxxx
      TAIGA_WEBSOCKETS_URL: wss://xxxxxxxxxxxxx
      TAIGA_SUBPATH: ""
      PUBLIC_REGISTER_ENABLED: "false"
    networks:
      - taiga_network

  taiga-protected:
    image: taigaio/taiga-protected:latest
    environment:
      ATTACHMENTS_MAX_AGE: 360
      SECRET_KEY: xxxxxxxxxxxxx
    networks:
      - taiga_network
      
  taiga-events:
    image: taigaio/taiga-events:latest
    environment:
      RABBITMQ_USER: xxxxxxxxxxxxx
      RABBITMQ_PASS: xxxxxxxxxxxxx
      SECRET_KEY: xxxxxxxxxxxxx
    networks:
      - taiga_network
      
  taiga-async-rabbitmq:
    image: rabbitmq:3.8-management-alpine
    volumes:
      - taiga_async_rabbitmq_volume:/var/lib/rabbitmq
    <<: *rabbitmq-variables
    networks:
      - taiga_network
      
  taiga-events-rabbitmq:
    image: rabbitmq:3.8-management-alpine
    volumes:
      - taiga_events_rabbitmq_volume:/var/lib/rabbitmq
    <<: *rabbitmq-variables
    networks:
      - taiga_network

  taiga-gateway:
    image: nginx:1.19-alpine
    ports:
      - 8083:80
    volumes:
      - /root/taiga.conf:/etc/nginx/conf.d/default.conf
      - taiga_back_static_volume:/taiga-back/static
      - taiga_back_media_volume:/taiga-back/media
    networks:
      - taiga_network
      

Edit: I have an issue on loading images, but its resolved now, this is my conf for reference after changing the alais name to taiga-back

server {
    server_name xxxxxxxxxxxxxxx;
    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-back/static/;
    }

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

    # Unprotected section
    location /media/exports/ {
        alias /taiga-back/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;
    }
}

Everything is works now

Thanks

1 Like