From f09576445ea1dd11310f11bf93a54ac85b1a8595 Mon Sep 17 00:00:00 2001 From: Siddhartha Date: Sat, 10 Sep 2022 00:31:25 +0530 Subject: [PATCH] add Taiga (project management tool with kanban + scrum support) --- taiga/docker-compose-inits.yml | 32 +++++++ taiga/docker-compose.yml | 164 +++++++++++++++++++++++++++++++++ taiga/taiga.env | 4 + 3 files changed, 200 insertions(+) create mode 100644 taiga/docker-compose-inits.yml create mode 100644 taiga/docker-compose.yml create mode 100644 taiga/taiga.env diff --git a/taiga/docker-compose-inits.yml b/taiga/docker-compose-inits.yml new file mode 100644 index 0000000..aab4387 --- /dev/null +++ b/taiga/docker-compose-inits.yml @@ -0,0 +1,32 @@ +version: "3.5" + +x-environment: + &default-back-environment + POSTGRES_DB: taiga + POSTGRES_USER: taiga + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_HOST: taiga-db + TAIGA_SECRET_KEY: ${TAIGA_SECRET_KEY} + # these rabbitmq settings should be the same as + # in taiga-rabbitmq and taiga-events services + RABBITMQ_USER: taiga + RABBITMQ_PASS: ${RABBITMQ_PASS} + CELERY_ENABLED: "False" + +x-volumes: + &default-back-volumes + - taiga-static-data:/taiga-back/static + - taiga-media-data:/taiga-back/media + # - ./config.py:/taiga-back/settings/config.py + +services: + taiga-manage: + image: taigaio/taiga-back:latest + container_name: taiga-manage + environment: *default-back-environment + depends_on: + - taiga-db + entrypoint: "python manage.py" + volumes: *default-back-volumes + networks: + - taiga diff --git a/taiga/docker-compose.yml b/taiga/docker-compose.yml new file mode 100644 index 0000000..744726f --- /dev/null +++ b/taiga/docker-compose.yml @@ -0,0 +1,164 @@ +version: "3.5" + +x-environment: + &default-back-environment + # Database settings + POSTGRES_DB: taiga + POSTGRES_USER: taiga + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_HOST: taiga-db + # Taiga settings + TAIGA_SECRET_KEY: ${TAIGA_SECRET_KEY} + TAIGA_SITES_SCHEME: "https" + TAIGA_SITES_DOMAIN: "taiga.mydomain.com:443" + TAIGA_SSL_BY_REVERSE_PROXY: "True" + TAIGA_SUBPATH: "" # "" or "/subpath" + # Email settings. Uncomment following lines and configure your SMTP server + EMAIL_BACKEND: "django.core.mail.backends.smtp.EmailBackend" + DEFAULT_FROM_EMAIL: "username@email.com" + EMAIL_USE_TLS: "True" + EMAIL_USE_SSL: "True" + + # Use following settings if you want to use Office365 to send emails + EMAIL_HOST: "smtp.office365.com" + EMAIL_PORT: 587 + EMAIL_HOST_USER: "username@email.com" + EMAIL_HOST_PASSWORD: "changeme" + # Rabbitmq settings + # Should be the same as in taiga-async-rabbitmq and taiga-events-rabbitmq + RABBITMQ_USER: taiga + RABBITMQ_PASS: ${RABBITMQ_PASS} + # Telemetry settings + ENABLE_TELEMETRY: "False" + +x-volumes: + &default-back-volumes + - taiga-static-data:/taiga-back/static + - taiga-media-data:/taiga-back/media + # - ./config.py:/taiga-back/settings/config.py + + +services: + taiga-db: + image: postgres:12.3 + container_name: taiga-db + environment: + POSTGRES_DB: taiga + POSTGRES_USER: taiga + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - taiga-db-data:/var/lib/postgresql/data + networks: + - taiga + + taiga-back: + image: taigaio/taiga-back:latest + container_name: taiga-backend + environment: *default-back-environment + volumes: *default-back-volumes + networks: + - taiga + depends_on: + - taiga-db + - taiga-events-rabbitmq + - taiga-async-rabbitmq + + taiga-async: + image: taigaio/taiga-back:latest + container_name: taiga-async + entrypoint: ["/taiga-back/docker/async_entrypoint.sh"] + environment: *default-back-environment + volumes: *default-back-volumes + networks: + - taiga + depends_on: + - taiga-db + - taiga-back + - taiga-async-rabbitmq + + taiga-async-rabbitmq: + image: rabbitmq:3.8-management-alpine + container_name: taiga-async-rabbitmq + environment: + RABBITMQ_ERLANG_COOKIE: secret-erlang-cookie + RABBITMQ_DEFAULT_USER: taiga + RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS} + RABBITMQ_DEFAULT_VHOST: taiga + volumes: + - taiga-async-rabbitmq-data:/var/lib/rabbitmq + networks: + - taiga + + taiga-front: + image: taigaio/taiga-front:latest + container_name: taiga-frontend + environment: + TAIGA_URL: "https://taiga.mydomain.com:443" + TAIGA_WEBSOCKETS_URL: "wss://taiga.mydomain.com:443" + TAIGA_SSL_BY_REVERSE_PROXY: "True" + TAIGA_SUBPATH: "" # "" or "/subpath" + networks: + - taiga + # volumes: + # - ./conf.json:/usr/share/nginx/html/conf.json + + taiga-events: + image: taigaio/taiga-events:latest + container_name: taiga-events + environment: + RABBITMQ_USER: taiga + RABBITMQ_PASS: ${RABBITMQ_PASS} + TAIGA_SECRET_KEY: ${TAIGA_SECRET_KEY} + networks: + - taiga + depends_on: + - taiga-events-rabbitmq + + taiga-events-rabbitmq: + image: rabbitmq:3.8-management-alpine + container_name: taiga-events-rabbitmq + environment: + RABBITMQ_ERLANG_COOKIE: secret-erlang-cookie + RABBITMQ_DEFAULT_USER: taiga + RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS} + RABBITMQ_DEFAULT_VHOST: taiga + volumes: + - taiga-events-rabbitmq-data:/var/lib/rabbitmq + networks: + - taiga + + taiga-protected: + image: taigaio/taiga-protected:latest + container_name: taiga-protected + environment: + MAX_AGE: 360 + SECRET_KEY: ${TAIGA_SECRET_KEY} + networks: + - taiga + + taiga-gateway: + image: nginx:1.19-alpine + container_name: taiga-gateway + volumes: + - ./taiga-gateway/taiga.conf:/etc/nginx/conf.d/default.conf + - taiga-static-data:/taiga/static + - taiga-media-data:/taiga/media + networks: + - taiga + - reverseproxy-nw + depends_on: + - taiga-front + - taiga-back + - taiga-events + +volumes: + taiga-static-data: + taiga-media-data: + taiga-db-data: + taiga-async-rabbitmq-data: + taiga-events-rabbitmq-data: + +networks: + taiga: + reverseproxy-nw: + external: true diff --git a/taiga/taiga.env b/taiga/taiga.env new file mode 100644 index 0000000..f53f9ec --- /dev/null +++ b/taiga/taiga.env @@ -0,0 +1,4 @@ +POSTGRES_PASSWORD=changeme +RABBITMQ_PASS=changeme +RABBITMQ_DEFAULT_PASS=changeme +TAIGA_SECRET_KEY=changeme