Skip to content

Deploying a Wekan App

Introduction

Wekan is an open-source Kanban board built with Meteor. This guide shows how to containerize Wekan, connect it to MongoDB, persist uploads, and deploy it to Klutch.sh over HTTP.

Prerequisites

  • GitHub repository containing your Dockerfile.
  • MongoDB database (managed or deployed separately).
  • Klutch.sh project ready in klutch.sh/app.

Project structure

.
└── Dockerfile

Sample Dockerfile

FROM wekanteam/wekan:latest
# Default Wekan port
ENV PORT=8080
EXPOSE 8080

Required environment variables

  • MONGO_URL – Mongo connection string, e.g., mongodb://USER:PASSWORD@HOST:27017/wekan?authSource=admin
  • ROOT_URL – public URL, e.g., https://example-app.klutch.sh
  • PORT=8080

Optional environment variables

  • WRITABLE_PATH=/data – local storage path for attachments
  • MAIL_URL – SMTP URL for notifications
  • WITH_API=true – enable the REST API
  • RICHER_CARD_COMMENT_EDITOR=true – enable rich text comments

Persistence

If you store attachments locally, attach a volume:

  • Mount path: /data
  • Size: based on expected attachment volume

Networking

  • Protocol: HTTP
  • Internal port: 8080
  • Users reach https://example-app.klutch.sh while Klutch.sh routes to port 8080 inside the container.
Terminal window
curl -I http://localhost:8080

Deployment on Klutch.sh

  1. Push your Dockerfile to GitHub.
  2. In klutch.sh/app, create a new app and select GitHub as the source.
  3. Klutch.sh automatically detects the Dockerfile in the repository root.
  4. Select HTTP traffic and set the internal port to 8080.
  5. Add environment variables for MONGO_URL, ROOT_URL, and any feature toggles. Mark secrets as sensitive.
  6. Attach a persistent volume at /data if storing attachments locally.
  7. Deploy. After the app starts, create your first board and invite collaborators.

Verification

  • UI: open https://example-app.klutch.sh and confirm the Wekan board loads.

  • Quick check:

    Terminal window
    curl -I https://example-app.klutch.sh

Next steps

  • Configure SMTP via MAIL_URL for notifications.
  • Enable API access with WITH_API=true and add tokens as needed.
  • Schedule backups for MongoDB and the /data volume if attachments are stored locally.