A lightweight webhook receiver for Planka that collects events and sends email digest notifications.
- Receives webhooks from Planka
- Configurable event filters (choose which events trigger notifications)
- Email digest (collects events and sends periodic summary emails)
- Admin panel for configuration
- SQLite database (no external DB required)
- Docker/Podman ready
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/planka-webhook-receiver.git
cd planka-webhook-receiver- Create environment file:
cp .env.example .env
# Edit .env and set JWT_SECRET to a random string- Start the container:
# With Podman
podman-compose up -d
# With Docker
docker-compose up -d-
Access the admin panel at http://localhost:3000
- Default password:
admin123(change this in settings!)
- Default password:
-
Configure SMTP settings in the admin panel
-
Add the webhook URL to Planka:
- Go to Planka Settings
- Add webhook URL:
http://YOUR_HOST:3000/api/webhook
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 3000 |
JWT_SECRET |
Secret for JWT tokens | Required |
ADMIN_INITIAL_PASSWORD |
Initial admin password | admin123 |
DATABASE_PATH |
SQLite database path | ./data/database.sqlite |
WEBHOOK_SECRET |
Optional webhook secret | None |
For additional security, you can set a webhook secret:
- Set
WEBHOOK_SECRETin your.envfile - Configure the same secret in Planka's webhook settings
- The receiver will validate incoming webhooks against this secret
- Node.js 20+
- npm
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install# Terminal 1: Start backend
cd backend
npm run dev
# Terminal 2: Start frontend
cd frontend
npm run devFrontend will be available at http://localhost:5173 with hot reload.
# Build frontend
cd frontend
npm run build
# Start backend (serves built frontend)
cd ../backend
npm startPOST /api/webhook- Webhook endpoint for Planka
POST /api/auth/login- LoginGET /api/auth/check- Check authenticationGET/PUT /api/settings/smtp- SMTP configurationGET/PUT /api/settings/digest- Digest settingsGET/POST/DELETE /api/settings/recipients- Email recipientsGET/PUT /api/settings/filters- Event filtersGET /api/events- Event log
cardCreate- Card createdcardUpdate- Card updatedcardDelete- Card deletedcommentCreate- Comment addedcardMembershipCreate- Member added to cardcardMembershipDelete- Member removed from cardattachmentCreate- Attachment addedlistCreate- List createdlistUpdate- List updatedlistDelete- List deleted
The repository includes a GitHub Actions workflow that automatically builds and pushes Docker images to GitHub Container Registry (ghcr.io) on every push to main or when a tag is created.
services:
planka-webhook-receiver:
image: ghcr.io/YOUR_USERNAME/planka-webhook-receiver:latest
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- JWT_SECRET=your-secret
- ADMIN_INITIAL_PASSWORD=your-passwordMIT