Deploy Fider
Canny Alternative. Open platform to collect and prioritize feedback
mailpit
Just deployed
/data
Just deployed
Just deployed
/var/lib/postgresql/data
fider-storage
Bucket
Just deployed
Deploy and Host Fider on Railway
Fider is an open-source customer feedback board: users post ideas, vote on the ones they want and discuss them in comments, while your team replies with a status that becomes a public roadmap. It is the self-hosted answer to Canny, UserVoice and Nolt — no per-tracked-user bill, and every vote, email address and comment stays in your own database.
Self-host Fider on Railway and four pieces arrive wired together. The fider service runs the official getfider/fider:stable image on port 3000 behind a managed TLS domain, applying database migrations on every boot. PostgreSQL holds posts, votes, comments and users; a managed object storage bucket keeps avatars, logos and attachments off the container filesystem so they survive redeploys. The fourth service is Mailpit: Fider has no passwords at all, so sign-in and the first administrator both depend on email working from minute one.

Getting Started with Fider on Railway
Open the Fider URL once the deploy is green and you land on a signup form, not a login page, because no board exists yet. Enter your name, your email address and a name for the board and submit — Fider creates the board in a pending state and emails an activation link. Open the Mailpit URL from the same project and sign in with the MP_UI_AUTH credentials on the mailpit service's variables; the username is admin. The message titled "Your new Fider site" is waiting there, and its confirmation link activates the board and signs you in as its administrator. Under Site Settings → General, set the board title, welcome message and privacy mode — and note that new boards ship with "prevent indexing" on, so Fider sends X-Robots-Tag: noindex until you clear it, which matters for a searchable public board. Then post your first few ideas, vote on one, and give another a status such as Planned with a staff response — statuses populate the public roadmap. If the activation email arrived and a comment attachment uploads, all four services are healthy.

About Hosting Fider
Canny and UserVoice price by tracked user, so the month your board takes off is the month the invoice does too. Fider has no seat count. Self-hosting is also the only option when the feedback is sensitive: healthcare, finance and public-sector teams often cannot put customer names and unreleased plans into SaaS.
- Voting boards with discussion — posts, upvotes, comments, tags, duplicate merging and search.
- Statuses that publish a roadmap — mark a post Planned, Started, Completed or Declined with a staff response, and every voter is notified.
- Passwordless sign-in — a one-time email link, or Google, GitHub and Facebook OAuth.
- Public or private boards, a localised UI, and custom CSS.
Fider has no worker tier: email and webhooks run as goroutines inside the web process, so these four services are the whole production shape.
Why Deploy Fider on Railway
Everything Fider needs is provisioned and connected before first boot:
- PostgreSQL, an object storage bucket and a mail service, wired to the app.
- A TLS domain and health checks out of the box.
- The database stays private, unreachable from the internet.
BASE_URL, S3 credentials and SMTP settings filled in as service references.- Scaling is a slider, and the Go binary idles cheaply.
Common Use Cases
- A public feature-request board for a SaaS product — customers vote, and the roadmap answers "are you building this?" without a support reply.
- An internal ideas board, kept private so only signed-in staff can read and vote.
- A community roadmap for an open-source project, where vote counts pick the next release.
- A beta feedback channel, with attachments so testers paste screenshots in.
Dependencies for Fider
- Fider —
getfider/fider:stableon port 3000. Docker Hub has nolatesttag;stableis the release channel. - PostgreSQL 12 or newer — every post, vote, comment and setting. Fider runs
./fider migrateat boot and creates thepg_trgmextension for search. - Object storage bucket — S3-compatible storage selected with
BLOB_STORAGE=s3, holding avatars, logos and attachments that would otherwise vanish on redeploy. - Mailpit —
axllent/mailpit:latest, an SMTP listener on 1025 and a protected web inbox on 8025, archived on a volume.
Environment Variables Reference
| Variable | Purpose |
|---|---|
BASE_URL | Public URL written into sign-in emails |
JWT_SECRET | Signs sign-in tokens; changing it drops sessions |
EMAIL | Delivery driver — smtp, mailgun or awsses |
EMAIL_SMTP_HOST / _PORT | SMTP endpoint; required to start |
BLOB_STORAGE | s3 for the bucket, fs for disk, sql for the database |
SIGNUP_DISABLED | Blocks /signup; leave false until the first admin exists |
LOG_SQL | Fider defaults it to true; keep it false |
MP_UI_AUTH | user:password protecting the Mailpit inbox |
Deployment Dependencies
- Project: getfider/fider — Go and React, AGPL-3.0
- Images:
getfider/fider,axllent/mailpit - Docs: docs.fider.io
Hardware Requirements for Self-Hosting Fider
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 0.5 vCPU | 1–2 vCPU |
| RAM | 256 MB | 512 MB – 1 GB |
| Storage | None on the app | 1 GB+ Postgres; bucket grows with uploads |
| Runtime | Linux container | Linux container |
Fider is a single compiled Go binary serving a pre-built React front end, so a board with a few thousand voters sits in half a gigabyte.
Self-Hosting Fider with Docker
Fider will not start unless EMAIL_SMTP_HOST and EMAIL_SMTP_PORT are set. A minimal run against an existing Postgres:
docker run -p 3000:3000 \
-e BASE_URL=http://localhost:3000 -e EMAIL_NOREPLY=noreply@example.com \
-e DATABASE_URL=postgres://fider:pw@db:5432/fider?sslmode=disable \
-e JWT_SECRET=$(openssl rand -hex 32) \
-e EMAIL_SMTP_HOST=mailpit -e EMAIL_SMTP_PORT=1025 getfider/fider:stable
The same stack as Compose:
services:
db:
image: postgres:17
environment: { POSTGRES_USER: fider, POSTGRES_PASSWORD: pw }
mailpit:
image: axllent/mailpit:latest
ports: ["8025:8025"]
app:
image: getfider/fider:stable
ports: ["3000:3000"]
environment:
BASE_URL: http://localhost:3000
DATABASE_URL: postgres://fider:pw@db:5432/fider?sslmode=disable
JWT_SECRET: use-a-long-random-string
EMAIL_NOREPLY: noreply@example.com
EMAIL_SMTP_HOST: mailpit
EMAIL_SMTP_PORT: 1025
Sending Real Email from Self-Hosted Fider
Because Fider signs people in with one-time links, email is the login system. This template delivers to Mailpit, ideal for creating the first administrator, but that mail never leaves your project. The smallest production change turns Mailpit into a relay: set MP_SMTP_RELAY_HOST, _PORT, _USERNAME, _PASSWORD and _STARTTLS for SendGrid, Postmark, Amazon SES or Mailgun, then add MP_SMTP_RELAY_ALL=true so every message is forwarded and a searchable copy stays behind. Alternatively point EMAIL_SMTP_* at your provider, or switch drivers with EMAIL=mailgun or EMAIL=awsses. Leave SIGNUP_DISABLED unset until your administrator exists: it 404s /signup.
How Much Does Fider Cost to Self-Host?
Fider is free and open source under AGPL-3.0 — no seat limits, no tracked-user meter, no roadmap feature behind a paid tier. Self-hosting costs only infrastructure: the container, a PostgreSQL database, a small mail service and object storage billed on usage.
FAQ
What is Fider? An open-source feedback portal where customers post ideas, vote and discuss them while the team replies with statuses that build a public roadmap. Written in Go and React, licensed AGPL-3.0, it is the best-known self-hosted alternative to Canny, UserVoice and Nolt.
What does this Railway template deploy?
The Fider app from getfider/fider:stable on a public TLS domain, a managed PostgreSQL database, an object storage bucket for uploads, and Mailpit as the mail service with a protected web inbox.
How do I create the first admin user in self-hosted Fider? Fill in the signup form on the deployed URL, then click the activation link in the "Your new Fider site" email waiting in the Mailpit inbox. Fider ships no default credentials.
Why does this template include a database and object storage?
PostgreSQL stores every post, vote, comment and account, and Fider migrates it at boot. Object storage matters on ephemeral containers: with BLOB_STORAGE=s3, uploads survive every redeploy.
How do I enable Google or GitHub sign-in in self-hosted Fider?
Set OAUTH_GOOGLE_CLIENTID and OAUTH_GOOGLE_SECRET, or the GitHub and Facebook equivalents, and those buttons appear next to the email link.
Which Fider image tag should I pin?
Use stable — Docker Hub publishes no latest tag for getfider/fider, so a Compose file asking for latest fails to pull.
Template Content
mailpit
axllent/mailpit:latestfider-storage
Bucket
