A self-hosted Trello alternative: Planka with S3 storage on Railway
Run Planka, an open-source kanban board, on Railway with Postgres and a MinIO bucket for attachments. The settings to change first, and when to pick it.By chin · Nov 7, 2026 · 6 min read
Trello is the board most small teams start on, and the one they outgrow once the free workspace limits bite or the board holds things you would rather not keep on someone else's servers. The usual answer is another subscription.
Planka is the other answer: an open-source kanban board you run yourself. This guide explains what the Planka + S3 template deploys, how to get to your first board, and the handful of settings you must change before you invite anyone.
What Planka is
Planka is a Trello-style board with projects, boards, lists and cards. The template's README lists what you get: card members, time tracking, due dates, attachments and comments, Markdown in descriptions and comments, filters by member and label, custom project backgrounds, real-time updates, internal notifications and multiple interface languages. Boards update live for everyone looking at them, so there is no refresh button to hunt for.
Upstream now ships two editions. The Community edition is free to self-host and covers boards, Markdown, attachments, custom fields, due dates, notifications through 100+ providers, webhooks, a documented REST API and two-factor authentication. A paid Pro edition adds phone and tablet layouts, calendar and timeline views, templates, guest roles, PDF export and SSO via OpenID Connect. The template's README lists OpenID Connect sign-on, which was a Community feature in the 1.x line, so what you get depends on the image version your deploy pulls. Check About inside the app after the first start.
Planka is fair-code software under its own Fair Use licence. The source is always visible and you can host it anywhere; commercial licences cover the Pro features and support.
What the template deploys
Four services, three of them with volumes:
- planka, the app itself, running the
plankanban/plankaimage on port1337, with a volume mounted at/app/private/attachments. - Postgres, Railway's
postgres-ssl:16image with a volume at/var/lib/postgresql/data. Planka'sDATABASE_URLis wired to it automatically. - Bucket, a MinIO server with a volume at
/data. This is the "S3" in the template name: an S3-compatible object store for file uploads. - Console, MinIO's web console, so you can browse the bucket in a browser.
The app's S3 variables are pre-wired to the bucket:
S3_ENDPOINT points at the bucket's private Railway endpoint, S3_ACCESS_KEY_ID and S3_SECRET_ACCESS_KEY reuse the MinIO root credentials, S3_BUCKET takes the bucket name, and S3_FORCE_PATH_STYLE is true, which MinIO needs. Traffic between Planka and the bucket stays on Railway's private network.BASE_URL defaults to https://${{RAILWAY_PUBLIC_DOMAIN}}, so the app knows its own address as soon as you generate a domain.First-run setup
- Deploy the Planka + S3 template. The one required variable is
S3_REGION. MinIO is not tied to an AWS region, so a conventional value likeus-east-1is fine. - Before you deploy, set
SECRET_KEYon the planka service to a fresh value. See the next section for why this matters. - Change
DEFAULT_ADMIN_EMAIL,DEFAULT_ADMIN_PASSWORD,DEFAULT_ADMIN_NAMEandDEFAULT_ADMIN_USERNAMEto your own. These create the first administrator when the database is initialised. - Generate a public domain for the planka service under Settings → Networking if the template has not already done so. The service listens on
1337. - Open the URL and sign in with the admin email and password you set.
- Create a project, then a board, and add your first lists and cards. Open a card and attach a file to confirm uploads reach the bucket. You can check in the Console service, which signs in with the MinIO root user and password.
- Moving from Trello? Export the board as JSON from Trello, create an empty board in Planka, click Import and choose Trello. Users and attachments do not come across, and Trello's default export stops at 1,000 actions, so check the file is complete.
Settings worth knowing
SECRET_KEYsigns every access token. Planka's docs put it plainly: anyone who knows it can sign in as any user. The template ships a fixed example value that every other deploy of this template also has, so generate your own withopenssl rand -hex 64and paste it in before the first start.DEFAULT_ADMIN_*are read when the database is initialised. You can remove them after the first successful start. If you leaveDEFAULT_ADMIN_EMAILin place, that admin cannot be edited or deleted by other users, which is a reasonable safety net.MINIO_ROOT_USERandMINIO_ROOT_PASSWORDon the Bucket service are also fixed example values rather than generated secrets. Change them, and the app's S3 keys and the Console login follow, because they reference these variables.TRUST_PROXYdefaults tofalse. Railway sits in front of your service as a proxy, so set it totrueso Planka sees real client addresses. That matters for the sign-in rate limits, which are per IP by default.TOKEN_EXPIRES_INis the lifetime of access tokens in days, 365 by default. Shorten it if people sign in on shared machines.MAX_UPLOAD_FILE_SIZE,STORAGE_LIMITandACTIVE_USERS_LIMITcap uploads, total storage and the number of active users. Useful on a shared instance.SMTP_*turns on email notifications. If you set these variables they override and disable the email settings in the UI.DEFAULT_LANGUAGEis the fallback interface language,en-USby default, and is also used for per-board notifications.
When to use it
Planka fits when you want:
- A Trello board without the per-user bill. Invite as many people as the instance can hold.
- Boards that stay on your infrastructure. Postgres holds the cards, the bucket holds the files, and both are volumes you control and can back up.
- Live updates and Markdown for a small team that mostly needs lists, cards, due dates and comments.
- An API and webhooks to wire the board into scripts or notification channels.
It is a weaker fit if you need calendar or timeline views, templates, guest access or a phone app. Those are Pro features upstream, and Jira-style workflows with custom issue types are not what Planka is for. New to Railway templates? Start with the Railway template deploy guide.
Cost and security checklist
- Replace
SECRET_KEYbefore the first deploy. A shared key means a shared login. - Replace the MinIO root credentials and the default admin password.
- Decide whether the Console service needs a public domain at all. If you only open it for occasional checks, remove its domain when you are done.
- Set
TRUST_PROXY=trueso the sign-in limits apply to real client addresses. - Planka's docs recommend adding internal hostnames, including your S3 endpoint, to
OUTGOING_BLOCKED_HOSTSso webhooks and notifications cannot be pointed at them. - Back up the Postgres volume and the bucket volume. Together they are the whole board.
- Set a usage limit on the Railway project. Four services with three volumes cost more than a single-container app.
Frequently asked questions
Does Planka import from Trello?
Yes, one board at a time from Trello's JSON export, through the Import button on a new board. User accounts and attachments are not imported, and large boards need an export built with the Trello REST API because the default export is limited to 1,000 actions.
Why does the template include MinIO instead of a plain volume?
Attachments go to an S3-compatible bucket, which is easier to browse, back up and move than files inside a container volume. The Console service gives you a web view of what is stored.
Can I use a real S3 bucket instead?
Yes. Point
S3_ENDPOINT, S3_REGION, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY and S3_BUCKET at your provider and remove the Bucket and Console services.Is Planka open source?
The source is public and the Community edition is free to self-host under Planka's Fair Use licence. Earlier 1.x releases were AGPL-3.0. Pro features need a commercial licence.
Templates in this guide

Planka + S3
Includes Bucket + PostgresTrello alternative. Kanban-style project maangement
20 deploys
DeployMore guides
- Chat with your documents or the live web: Verba vs Extract ChatAsk questions of your own files with Verba and Weaviate, or of live web pages with Extract Chat and Firecrawl. What each deploys and which to pick.
- Self-host bolt.diy: an open-source AI app builder on RailwayRun bolt.diy, the open-source Bolt.new, on Railway. Bring your own model keys, build web apps by chatting, and keep the keys safe.
- Build a self-hosted Perplexity alternative with Morphic, SearXNG and FirecrawlSelf-host an AI answer engine with cited sources. Compare Morphic, Open DeepResearch and Fireplexity, and add private search with SearXNG or Whoogle.