Taiga
Agile project management platform.
[i]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
- [1]Software development teams implementing Scrum methodology with sprint planning and tracking
- [2]Product teams managing feature backlogs and roadmaps with epic hierarchies
- [3]Marketing and creative teams using Kanban boards for campaign and content workflows
- [4]Consultancies managing multiple client projects with separate workspaces and permissions
- [5]Organizations migrating from proprietary tools like Jira while maintaining project history
- [6]Remote teams requiring real-time collaboration and progress visibility
- [7]Companies 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
[!]
WARNING: 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:latest4 container_name: taiga-back5 restart: unless-stopped6 environment: 7 POSTGRES_HOST: db8 POSTGRES_DB: taiga9 POSTGRES_USER: taiga10 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/static16 - taiga_media:/taiga-back/media17 depends_on: 18 - db19 - rabbitmq2021 taiga-front: 22 image: taigaio/taiga-front:latest23 container_name: taiga-front24 restart: unless-stopped25 environment: 26 TAIGA_URL: "http://localhost:9000"27 TAIGA_WEBSOCKETS_URL: "ws://localhost:9000"28 ports: 29 - "9000:80"30 depends_on: 31 - taiga-back3233 db: 34 image: postgres:15-alpine35 container_name: taiga-db36 restart: unless-stopped37 environment: 38 POSTGRES_USER: taiga39 POSTGRES_PASSWORD: ${DB_PASSWORD}40 POSTGRES_DB: taiga41 volumes: 42 - taiga_db:/var/lib/postgresql/data4344 rabbitmq: 45 image: rabbitmq:3-management-alpine46 container_name: taiga-rabbitmq4748volumes: 49 taiga_static: 50 taiga_media: 51 taiga_db: [$].env Template
[.env]
1DB_PASSWORD=changeme2SECRET_KEY=generate-long-random-key[i]Usage Notes
- [1]Docs: https://docs.taiga.io/
- [2]Access at http://localhost:9000 - register first user as admin
- [3]Scrum: epics, user stories, sprints, burndown charts
- [4]Kanban: swimlanes, WIP limits, cumulative flow
- [5]Import from Trello, Jira, GitHub, Asana
- [6]Customizable 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 file2cat > docker-compose.yml << 'EOF'3services:4 taiga-back:5 image: taigaio/taiga-back:latest6 container_name: taiga-back7 restart: unless-stopped8 environment:9 POSTGRES_HOST: db10 POSTGRES_DB: taiga11 POSTGRES_USER: taiga12 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/static18 - taiga_media:/taiga-back/media19 depends_on:20 - db21 - rabbitmq2223 taiga-front:24 image: taigaio/taiga-front:latest25 container_name: taiga-front26 restart: unless-stopped27 environment:28 TAIGA_URL: "http://localhost:9000"29 TAIGA_WEBSOCKETS_URL: "ws://localhost:9000"30 ports:31 - "9000:80"32 depends_on:33 - taiga-back3435 db:36 image: postgres:15-alpine37 container_name: taiga-db38 restart: unless-stopped39 environment:40 POSTGRES_USER: taiga41 POSTGRES_PASSWORD: ${DB_PASSWORD}42 POSTGRES_DB: taiga43 volumes:44 - taiga_db:/var/lib/postgresql/data4546 rabbitmq:47 image: rabbitmq:3-management-alpine48 container_name: taiga-rabbitmq4950volumes:51 taiga_static:52 taiga_media:53 taiga_db:54EOF5556# 2. Create the .env file57cat > .env << 'EOF'58DB_PASSWORD=changeme59SECRET_KEY=generate-long-random-key60EOF6162# 3. Start the services63docker compose up -d6465# 4. View logs66docker 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
## Components
taiga-backtaiga-frontpostgresrabbitmq
## Tags
#taiga#agile#scrum#kanban
## Category
Productivity & CollaborationShortcuts: C CopyF FavoriteD Download