A zero-friction, open-source Planning Poker tool for agile teams.
- 🚀 No accounts, no logins
- 🔗 Join via a single shared link
- 👥 Real-time voting (SignalR)
- 🏠 Self-hosted & privacy-friendly
- 🐳 Docker-ready
Perfect for Scrum teams, consultants, and companies that want a simple and private estimation tool.
Commercial support is available : https://planningpoker.ninja/commercialsupport
- Create a planning poker room instantly
- Share a single URL with your team
- Real-time voting & reveal
- Duplicate names handled automatically (
John,John_1, etc.) - Works great for remote and hybrid teams
- Open source
A free hosted version is available here:
This version is intended for:
- quick demos
- public usage
- trying out the tool
For private or company usage, see self-hosting below.
Planning Poker is designed to run on one shared server (VPS, cloud VM, or on-prem server).
All team members access it via a browser using the server’s URL.
❗ This is not installed on each team member’s computer.
- Docker
- Docker Compose (optional but recommended)
That's it.
-
Clone this repository
git clone <repository-url> cd planning-poker/PlanningPoker/PlanningPoker
-
Create
.envfile (optional - only if you want GIF reactions)GIPHY_API_BASE_URL=https://api.giphy.com/v1/gifs/search?api_key=YOUR_API_KEY GIPHY_API_QUERY=limit=5&offset=0&rating=g&lang=en&bundle=low_bandwidthNote: Get a free API key from GIPHY Developers. The app works fine without it.
-
Start the application
docker-compose up -d
-
Access the application
- Open your browser:
http://localhost:8080 - Or use your server's IP/domain:
http://your-server-ip:8080
- Open your browser:
-
Stop the application
docker-compose down
If you prefer using the pre-built image instead of building from source:
docker run -d \
--name planning-poker \
-p 8080:8080 \
-v $(pwd)/database:/app/Database \
-v $(pwd)/logs:/app/Logs \
--restart unless-stopped \
ghcr.io/rezahoque/planning-poker:latestNote: For Windows PowerShell, use backticks (`) instead of backslashes () for line continuation.
- Use a reverse proxy (nginx, Caddy) for SSL/TLS
- Backup the
./databasedirectory regularly - Change the port by modifying
8080:8080in docker-compose.yml - Update the app:
docker-compose pull && docker-compose up -d
For detailed instructions, see README-DOCKER.md.