docker.recipes

Taiga

advanced

Agile project management platform.

Overview

Taiga is an open-source agile project management platform developed by Kaleidos that provides comprehensive tools for Scrum and Kanban methodologies. Built with Django REST framework for the backend and Angular for the frontend, Taiga offers features like user story management, sprint planning, burndown charts, swimlane boards, and team collaboration tools. It was created to bridge the gap between complex enterprise project management solutions and simple task tracking tools, providing agile teams with a powerful yet intuitive platform for managing their projects. This deployment consists of four specialized services: taiga-back handles the Django-based REST API and business logic, taiga-front serves the Angular-based user interface, a PostgreSQL database for persistent data storage, and RabbitMQ for message queuing and real-time notifications. The configuration separates frontend and backend concerns, enabling independent scaling and maintenance while providing a complete agile project management solution accessible through a web browser. This stack is ideal for development teams, startups, and organizations looking to implement agile methodologies with a self-hosted solution. The separation of frontend and backend services makes it suitable for teams that need to customize either component independently, while the inclusion of PostgreSQL ensures robust data integrity for project artifacts, user stories, and historical sprint data.

Key Features

  • Complete Scrum implementation with epics, user stories, tasks, sprints, and burndown charts
  • Kanban boards with swimlanes, WIP limits, and cumulative flow diagrams
  • Real-time collaboration through RabbitMQ-powered WebSocket notifications
  • Flexible role-based permissions with customizable project roles and member access
  • Import capabilities from Trello, Jira, GitHub, and Asana for project migration
  • Custom fields and attributes for tailoring workflow to specific team needs
  • Multi-project support with individual configurations per project
  • REST API for integration with external tools and custom development

Common Use Cases

  • 1Software development teams implementing Scrum methodology with sprint planning and tracking
  • 2Product teams managing feature backlogs and roadmaps with epic hierarchies
  • 3Marketing and creative teams using Kanban boards for campaign and content workflows
  • 4Consultancies managing multiple client projects with separate workspaces and permissions
  • 5Organizations migrating from proprietary tools like Jira while maintaining project history
  • 6Remote teams requiring real-time collaboration and progress visibility
  • 7Companies needing custom agile workflows beyond standard Scrum or Kanban practices

Prerequisites

  • Docker and Docker Compose installed with at least 2GB available RAM for all services
  • Port 9000 available for the Taiga frontend interface
  • Environment variables configured for DB_PASSWORD and SECRET_KEY
  • Basic understanding of agile methodologies (Scrum/Kanban) for effective usage
  • PostgreSQL knowledge helpful for database maintenance and backup procedures
  • Domain name or reverse proxy configuration for production deployments beyond localhost

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 taiga-back:
3 image: taigaio/taiga-back:latest
4 container_name: taiga-back
5 restart: unless-stopped
6 environment:
7 POSTGRES_HOST: db
8 POSTGRES_DB: taiga
9 POSTGRES_USER: taiga
10 POSTGRES_PASSWORD: ${DB_PASSWORD}
11 TAIGA_SECRET_KEY: ${SECRET_KEY}
12 TAIGA_SITES_DOMAIN: "localhost:9000"
13 TAIGA_SITES_SCHEME: "http"
14 volumes:
15 - taiga_static:/taiga-back/static
16 - taiga_media:/taiga-back/media
17 depends_on:
18 - db
19 - rabbitmq
20
21 taiga-front:
22 image: taigaio/taiga-front:latest
23 container_name: taiga-front
24 restart: unless-stopped
25 environment:
26 TAIGA_URL: "http://localhost:9000"
27 TAIGA_WEBSOCKETS_URL: "ws://localhost:9000"
28 ports:
29 - "9000:80"
30 depends_on:
31 - taiga-back
32
33 db:
34 image: postgres:15-alpine
35 container_name: taiga-db
36 restart: unless-stopped
37 environment:
38 POSTGRES_USER: taiga
39 POSTGRES_PASSWORD: ${DB_PASSWORD}
40 POSTGRES_DB: taiga
41 volumes:
42 - taiga_db:/var/lib/postgresql/data
43
44 rabbitmq:
45 image: rabbitmq:3-management-alpine
46 container_name: taiga-rabbitmq
47
48volumes:
49 taiga_static:
50 taiga_media:
51 taiga_db:

.env Template

.env
1DB_PASSWORD=changeme
2SECRET_KEY=generate-long-random-key

Usage Notes

  1. 1Docs: https://docs.taiga.io/
  2. 2Access at http://localhost:9000 - register first user as admin
  3. 3Scrum: epics, user stories, sprints, burndown charts
  4. 4Kanban: swimlanes, WIP limits, cumulative flow
  5. 5Import from Trello, Jira, GitHub, Asana
  6. 6Customizable attributes, roles, and permissions

Individual Services(4 services)

Copy individual services to mix and match with your existing compose files.

taiga-back
taiga-back:
  image: taigaio/taiga-back:latest
  container_name: taiga-back
  restart: unless-stopped
  environment:
    POSTGRES_HOST: db
    POSTGRES_DB: taiga
    POSTGRES_USER: taiga
    POSTGRES_PASSWORD: ${DB_PASSWORD}
    TAIGA_SECRET_KEY: ${SECRET_KEY}
    TAIGA_SITES_DOMAIN: localhost:9000
    TAIGA_SITES_SCHEME: http
  volumes:
    - taiga_static:/taiga-back/static
    - taiga_media:/taiga-back/media
  depends_on:
    - db
    - rabbitmq
taiga-front
taiga-front:
  image: taigaio/taiga-front:latest
  container_name: taiga-front
  restart: unless-stopped
  environment:
    TAIGA_URL: http://localhost:9000
    TAIGA_WEBSOCKETS_URL: ws://localhost:9000
  ports:
    - "9000:80"
  depends_on:
    - taiga-back
db
db:
  image: postgres:15-alpine
  container_name: taiga-db
  restart: unless-stopped
  environment:
    POSTGRES_USER: taiga
    POSTGRES_PASSWORD: ${DB_PASSWORD}
    POSTGRES_DB: taiga
  volumes:
    - taiga_db:/var/lib/postgresql/data
rabbitmq
rabbitmq:
  image: rabbitmq:3-management-alpine
  container_name: taiga-rabbitmq

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 taiga-back:
5 image: taigaio/taiga-back:latest
6 container_name: taiga-back
7 restart: unless-stopped
8 environment:
9 POSTGRES_HOST: db
10 POSTGRES_DB: taiga
11 POSTGRES_USER: taiga
12 POSTGRES_PASSWORD: ${DB_PASSWORD}
13 TAIGA_SECRET_KEY: ${SECRET_KEY}
14 TAIGA_SITES_DOMAIN: "localhost:9000"
15 TAIGA_SITES_SCHEME: "http"
16 volumes:
17 - taiga_static:/taiga-back/static
18 - taiga_media:/taiga-back/media
19 depends_on:
20 - db
21 - rabbitmq
22
23 taiga-front:
24 image: taigaio/taiga-front:latest
25 container_name: taiga-front
26 restart: unless-stopped
27 environment:
28 TAIGA_URL: "http://localhost:9000"
29 TAIGA_WEBSOCKETS_URL: "ws://localhost:9000"
30 ports:
31 - "9000:80"
32 depends_on:
33 - taiga-back
34
35 db:
36 image: postgres:15-alpine
37 container_name: taiga-db
38 restart: unless-stopped
39 environment:
40 POSTGRES_USER: taiga
41 POSTGRES_PASSWORD: ${DB_PASSWORD}
42 POSTGRES_DB: taiga
43 volumes:
44 - taiga_db:/var/lib/postgresql/data
45
46 rabbitmq:
47 image: rabbitmq:3-management-alpine
48 container_name: taiga-rabbitmq
49
50volumes:
51 taiga_static:
52 taiga_media:
53 taiga_db:
54EOF
55
56# 2. Create the .env file
57cat > .env << 'EOF'
58DB_PASSWORD=changeme
59SECRET_KEY=generate-long-random-key
60EOF
61
62# 3. Start the services
63docker compose up -d
64
65# 4. View logs
66docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/taiga/run | bash

Troubleshooting

  • taiga-front shows connection errors: Verify TAIGA_URL and TAIGA_WEBSOCKETS_URL match your actual domain and protocol
  • taiga-back fails to start with database connection errors: Check that DB_PASSWORD environment variable matches between taiga-back and db services
  • Real-time notifications not working: Ensure rabbitmq container is running and taiga-back can connect to it
  • Static files not loading properly: Verify taiga_static volume is properly mounted and taiga-back has write permissions
  • First user registration fails: Confirm SECRET_KEY environment variable is set and consistent across restarts
  • Import from external tools fails: Check that taiga-back has sufficient memory allocated and TAIGA_SITES_DOMAIN is correctly configured

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space