A webhook service that sends Planka board events to Discord channels using webhooks.
- 📝 Card Creation
- 🗑️ Card Deletion
- ✏️ Card Update
- 👥 Member Addition
- 👤 Member Removal
- 📅 Due Date Setting
- ✅ Card Completion
↔️ Card Movement
[Avatar] Username
📋 Board Name board 📝 Card Name card action
Jump to card
When a card is updated, the notification includes:
- Previous and new values for changed fields
- Detailed change history
- Visual indicators for different types of changes
Example of change detection:
[Avatar] Username
📋 Board Name board ✏️ Card Name was updated
Changes:
• Name: "Old Name" → "New Name"
• Description: "Old description" → "New description"
• List: "Old List" → "New List"
Jump to card
- 🇬🇧 English (default)
- 🇭🇺 Hungarian
- Clone the repository:
git clone https://github.com/yourusername/planka-discord-notifier.git
cd planka-discord-notifier- Install dependencies:
npm install- Copy
.env.exampleto.env:
cp .env.example .env- Configure your environment variables in
.envfile (DO NOT commit this file):PLANKA_BASE_URL: Your Planka server URLPORT: Webhook server port (default: 3001)DISCORD_WEBHOOK_URL: Your Discord webhook URLBOARD_NAMES: JSON object mapping board IDs to namesLANGUAGE: Language code (enorhu, default:en)
⚠️ Security Note: Never commit your.envfile to version control. The.gitignorefile is configured to exclude it. Always use.env.exampleas a template and create your own.envfile locally.
Example .env file structure (replace with your actual values):
PLANKA_BASE_URL=https://your-planka-url.com
PORT=3001
LANGUAGE=en
DISCORD_WEBHOOK_URL=your-discord-webhook-url
BOARD_NAMES={"board-id-1":"Board 1","board-id-2":"Board 2"}- Start the server:
node index.js- Configure your Planka webhook URL to point to:
http://your-server:3001 - The server will automatically receive Planka events and forward them to Discord
The service supports multiple languages for Discord notifications. You can change the language by setting the LANGUAGE environment variable in your .env file:
# For English
LANGUAGE=en
# For Hungarian
LANGUAGE=huIf an unsupported language code is provided, the service will automatically fall back to English.
Messages are color-coded based on event type:
- 🟢 Green: Creation
- 🔴 Red: Deletion
- 🔵 Blue: Modification
- ⚪ Gray: Other actions
To add a new language:
- Create a new file in the
languagesdirectory (e.g.,languages/de.jsfor German) - Copy the structure from
languages/en.js - Translate all strings to the new language
- Use the new language code in the
LANGUAGEenvironment variable
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Ping Discord roles based on different events
- Customizable mention rules:
- Notify project managers when deadlines are approaching
- Ping dedicated teams for urgent cards
- Notify specific roles for board events
- Configure mention settings through environment variables
Changelog
- Change detection system for card updates
- Detailed change history in notifications
- Visual indicators for different types of changes
- Previous and new value comparison
- Error notification system with Discord integration
- @planka mention for error notifications
- Detailed error reporting with stack traces
- Version and timestamp information in error messages
- Modified Discord message format: "View card" link instead of "moved"
- Improved Hungarian translations
- Webhook service for forwarding Planka events to Discord
- Supported events:
- Card Creation
- Card Deletion
- Card Update
- Member Addition
- Member Removal
- Due Date Setting
- Card Completion
- Card Movement
- Multi-language support (English, Hungarian)
- Color-coded messages based on event type
- Environment variable configuration
- Custom board name mapping