{"id":43013809,"url":"https://github.com/axeleroy/self-host-planning-poker","last_synced_at":"2026-01-31T05:40:19.158Z","repository":{"id":62962903,"uuid":"525913259","full_name":"axeleroy/self-host-planning-poker","owner":"axeleroy","description":"A hassle-free Planning Poker application to deploy on your NAS.","archived":false,"fork":false,"pushed_at":"2025-10-06T08:03:21.000Z","size":2174,"stargazers_count":117,"open_issues_count":25,"forks_count":44,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-10T03:49:10.172Z","etag":null,"topics":["contributions-welcome","docker","planning-poker","self-hosted","self-hosting"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axeleroy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-17T18:37:33.000Z","updated_at":"2025-10-09T03:54:27.000Z","dependencies_parsed_at":"2023-02-18T09:31:29.851Z","dependency_job_id":"3c9e653c-a0ee-4a28-a079-2cc79ca3c05c","html_url":"https://github.com/axeleroy/self-host-planning-poker","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/axeleroy/self-host-planning-poker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axeleroy%2Fself-host-planning-poker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axeleroy%2Fself-host-planning-poker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axeleroy%2Fself-host-planning-poker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axeleroy%2Fself-host-planning-poker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axeleroy","download_url":"https://codeload.github.com/axeleroy/self-host-planning-poker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axeleroy%2Fself-host-planning-poker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28930593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contributions-welcome","docker","planning-poker","self-hosted","self-hosting"],"created_at":"2026-01-31T05:40:17.284Z","updated_at":"2026-01-31T05:40:19.151Z","avatar_url":"https://github.com/axeleroy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Self-host Planning Poker\n\nA hassle-free Planning Poker application to deploy on your NAS.\n\n[![Docker Hub](https://img.shields.io/docker/v/axeleroy/self-host-planning-poker?sort=semver\u0026logo=docker)](https://hub.docker.com/r/axeleroy/self-host-planning-poker/tags)\n[![Docker Hub](https://img.shields.io/docker/pulls/axeleroy/self-host-planning-poker?logo=docker)](https://hub.docker.com/r/axeleroy/self-host-planning-poker/tags)\n[![GitHub release](https://img.shields.io/github/v/release/axeleroy/self-host-planning-poker?logo=github\u0026logoColor=959DA5)](https://github.com/axeleroy/self-host-planning-poker/pkgs/container/self-host-planning-poker)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/axeleroy/self-host-planning-poker?logo=github\u0026logoColor=959DA5)](https://github.com/axeleroy/self-host-planning-poker/commits/main)\n[![License](https://img.shields.io/github/license/axeleroy/self-host-planning-poker?logo=github\u0026logoColor=959DA5)](https://github.com/axeleroy/self-host-planning-poker/blob/main/LICENSE)\n[![Tests](https://github.com/axeleroy/self-host-planning-poker/actions/workflows/tests.yml/badge.svg)](https://github.com/axeleroy/self-host-planning-poker/actions/workflows/tests.yml)\n[![Docker build](https://github.com/axeleroy/self-host-planning-poker/actions/workflows/publish.yml/badge.svg)](https://github.com/axeleroy/self-host-planning-poker/actions/workflows/publish.yml)\n[![Crowdin](https://badges.crowdin.net/self-host-planning-poker/localized.svg)](https://crowdin.com/project/self-host-planning-poker)\n\n## What is it?\n\nThis application is intended as a simplified and self-hostable alternative to\n[Planning Poker Online](https://planningpokeronline.com/).\n\nIt features:\n\n  * Multiple deck types: Fibonacci, modified Fibonacci, T-Shirt sizes, powers of 2 and trust vote (0 to 5)\n  * Spectator mode\n  * Responsive layout\n  * Vote summary\n  * Translations _(English, French, German, Italian and Polish. [Contributions welcome!](#im-a-user-and-want-to-contribute-translations))_\n \nIt does not have fancy features like issues management, Jira integration or timers.\n\n## Screenshots\n\u003ca href=\"https://github.com/axeleroy/self-host-planning-poker/blob/main/assets/screenshot.png\"\u003e\u003cimg alt=\"Application screenshot with cards face down\" src=\"https://github.com/axeleroy/self-host-planning-poker/blob/main/assets/screenshot.png\" width=\"412px\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/axeleroy/self-host-planning-poker/blob/main/assets/screenshot.png\"\u003e\u003cimg alt=\"Application screenshot with cards revealed\" src=\"https://github.com/axeleroy/self-host-planning-poker/blob/main/assets/screenshot-revealed.png\" width=\"412px\"\u003e\u003c/a\u003e\n\n## Deployment\n\nDeploying the application is easy as it's self-contained in a single container.\nAll you need is to create a volume to persist the games settings (ID, name and deck).\n\n### Docker\n```bash\ndocker run \\\n  -v planning-poker-data:/data \\\n  -p 8000:8000 \\\n  axeleroy/self-host-planning-poker:latest\n```\n\n### docker-compose\n```yml\nversion: \"3\"\nservices:\n  planning-poker:\n    image: axeleroy/self-host-planning-poker:latest\n    ports:\n      - 8000:8000\n    volumes:\n      - planning-poker-data:/data\nvolumes:\n  planning-poker-data: {}\n```\n\n### Environment variables\n\n| Variable              | Meaning                                                                                                                                                                                                                                          | Example            |\n|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|\n| `APP_ROOT` (optional) | Allows you to deploy to another path than `/`.\u003cbr\u003eSee [Configuration examples for deploying on sub‐paths](https://github.com/axeleroy/self-host-planning-poker/wiki/Configuration-examples-for-deploying-on-sub%E2%80%90paths) for more details. | `APP_ROOT=/poker/` |\n\n### Running behind a reverse-proxy\n\nRefer to [Socket.IO's documentation](https://socket.io/docs/v4/reverse-proxy/)  for setting up your reverse-proxy to work correctly with Socket.IO.\n\n### Customization\n\nSee [Customizing the application's style and icon](https://github.com/axeleroy/self-host-planning-poker/wiki/Customizing-the-application's-style-and-icon).\n\n## Getting involved\n\n### I'm a developer and I want to help\n\nYou are welcome to open Pull Requests resolving issues in the [Project](https://github.com/users/axeleroy/projects/1/views/1) or \ntagged [pr-welcome](https://github.com/axeleroy/self-host-planning-poker/issues?q=is%3Aissue+is%3Aopen+label%3Apr-welcome).\nDon't forget to mention the issue you want to close 😉\n\n### I'm a user and I need help / I encountered a bug / I have a feature request\n\n[Open an issue](https://github.com/axeleroy/self-host-planning-poker/issues/new) and I'll take a look at it.\n\n### I'm a user and want to contribute translations\n\nThere is a [Crowdin project](https://crowdin.com/project/self-host-planning-poker) that lets you add translations for\nyour language. If your language is not available, feel free to contact me over Crowdin.\n\n## Development\n\nThe app consists of two parts:\n\n* a [back-end](flask/) written in Python with [Flask](https://flask.palletsprojects.com/), [Flask-SocketIO](https://flask-socketio.readthedocs.io/en/latest/index.html) and [peewee](http://docs.peewee-orm.com/en/latest/).\n* a [front-end](angular/) written with [Angular](https://angular.io) and [Socket.IO](https://socket.io/).\n\n### Back-end development\n\nYou must first initialise a virtual environment and install the dependencies\n\n```sh\n# Run the following commands in the flask/ folder\npython3 -m venv env\nsource env/bin/activate\npip3 install -r requirements.txt\n```\n\nThen launching the development server is as easy as that:\n```bash\nFLASK_DEBUG=1 python app.py\n```\n\n#### Run unit tests\n\nAfter initializing the virtual environment, run this command in the `flask/` directory:\n```sh\npython -m unittest\n```\n\n### Front-end development\n\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003e\n\u003e \u003cb\u003eNote:\u003c/b\u003e You might want to test the front-end against a back-end. You can either follow the instructions in the\n\u003e previous section to install and run it locally or use the following command to run it in a Docker container:\n\u003e \u003c/summary\u003e\n\u003e\n\u003e ```bash\n\u003e docker run --rm -it \\\n\u003e   -v $(pwd)/flask:/app \\\n\u003e   -p 5000:5000 \\\n\u003e   python:3.11-slim \\\n\u003e   bash -c \"cd /app; pip install -r requirements.txt; FLASK_DEBUG=1 gunicorn --worker-class eventlet -w 1 app:app --bind 0.0.0.0:5000\"\n\u003e ```\n\u003e \u003c/details\u003e\n\nFirst make sure that [Node.js](https://nodejs.org/en/) (preferably LTS) is installed.\nThen, install dependencies and launch the development server\n\n```sh\n# Run the following commands in the angular/ folder\nnpm install\nnpm start\n```\n\n### Building Docker image\n\n```sh\n# After checking out the project\ndocker build . -t axeleroy/self-host-planning-poker:custom\n# Alternatively, if you don't want to checkout the project\ndocker build https://github.com/axeleroy/self-host-planning-poker -t axeleroy/self-host-planning-poker:custom\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxeleroy%2Fself-host-planning-poker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxeleroy%2Fself-host-planning-poker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxeleroy%2Fself-host-planning-poker/lists"}