Self-hosting
Run Jackpoll on your own servers
Published container images, ready-made Docker Compose and Swarm stacks, and an MIT licence — the same application the hosted version runs, with nothing held back.
What you are actually deploying
Jackpoll is a Quarkus API on Java 21 and a Next.js web app, published as container images that continuous integration builds from the public source. The self-host stacks pull those images directly, so what runs on your infrastructure is the same build as everywhere else — not a stripped-down community edition.
Around the two applications sits a small set of well-known open-source services: PostgreSQL for data, MinIO for uploaded files, Keycloak for authentication, Redis for real-time fan-out between replicas, ClamAV to scan uploads, and Traefik in front. If you already run any of these, you know exactly what you are taking on.
Published images
Built by CI from the public source, on GHCR.
Compose and Swarm
Ready-made stacks in a dedicated repository.
Familiar components
PostgreSQL, MinIO, Keycloak, Redis, ClamAV, Traefik.
frontend
ghcr.io/jackpoll-org/frontend
Next.js web app
backend
ghcr.io/jackpoll-org/backend
Quarkus API · Java 21
Supporting services
- PostgreSQLSurveys, responses, drafts
- MinIOUploaded files
- KeycloakAccounts and sign-in
- RedisLive fan-out between replicas
- ClamAVScans every upload
- TraefikTLS and routing
Why organisations self-host
The usual reason is a rule rather than a preference. A school authority, a hospital, a works council agreement or an ethics approval says that personal data must stay on infrastructure the organisation controls, and no hosted service satisfies that however good its data processing agreement is.
The second reason is capacity. A lecture hall of six hundred people or a conference where everyone answers at once is a load you may want to own — self-hosting turns capacity into a question about your server rather than someone else's fair-use policy.
A rule, not a preference
A school authority, a hospital or an ethics approval says personal data stays on infrastructure you control.
Capacity you own
Six hundred people answering at once is a load you may want on your own server rather than someone's fair-use policy.
Operating it
Multi-replica deployments work out of the box: real-time features fan out through Redis, so collaborative editing and live results stay consistent whichever replica a visitor lands on. Database migrations run on startup, which keeps upgrades to pulling a new image tag.
Everything the hosted version does is available — retention rules, exports, webhooks, live quizzes, GDPR export and erasure. There is no licence key, no seat count and no telemetry to switch off.
Scales to replicas
Redis relays live features across instances.
Migrations on startup
Upgrading is pulling a newer image.
No licence key
MIT-licensed, no seats to count, no phone-home.
Frequently asked questions
- What licence is Jackpoll under?
- MIT. You can run, modify and deploy it, including inside a commercial organisation, without a fee.
- Do self-hosted instances lose any features?
- No. The self-hosted deployment runs the same images as the hosted version, with no feature gating and no licence key.
- What do I need to run it?
- A Docker host. The stacks bring PostgreSQL, MinIO, Keycloak, Redis, ClamAV and Traefik alongside the frontend and backend images.
- Can I migrate from the hosted version later?
- Responses export to CSV and Excel, and account data exports in a machine-readable form, so nothing is locked in either direction.
Keep reading
Related pages on the same topic.
Start building your survey today
Free, open source, and privacy-first. No credit card, no lock-in — create your first survey or quiz in minutes.