Wekan
Open-source kanban board application for project management and task organization with card-based workflow management.
Video [IBRACORP Video Tutorial - Coming Soon]
Useful Links
Related Videos
- Project Management
- Team Collaboration
- Workflow Organization
Thank you for choosing to collaborate with IBRACORP π
Please read our disclaimer https://docs.ibracorp.io/disclaimer
Creditsβ
Role | Contributor |
---|---|
Writer / Producer | Sycotix |
Video Recording and Voice | Sycotix |
Contributor | North |
Testing / Proofreading | Hawks, DiscDuck |
Feature Listβ
Complete Project Management Solution
- Kanban Boards - Visual task management with card-based workflow
- Multiple Boards - Organize different projects separately
- Card Management - Create, edit, move, and archive cards
- List Organization - Customizable columns for workflow stages
- Team Collaboration - Multi-user support with permissions
- Card Comments - Discussion and collaboration on tasks
- Due Dates - Set deadlines and track progress
- Attachments - Add files and documents to cards
- Labels and Tags - Categorize and filter cards
- Card Checklists - Break down tasks into subtasks
- Activity Timeline - Track all changes and activities
- Export Features - Backup boards and data
- Mobile Responsive - Access from any device
- Self-Hosted - Complete control over your data
Prerequisitesβ
Database Requirementsβ
MongoDB Setup
β οΈ Important: Use MongoDB 4.4.x for compatibility
# MongoDB 4.4 (recommended version)
mongodb:
image: mongo:4.4.7
container_name: wekan-mongodb
restart: unless-stopped
command: mongod --oplogSize 128
environment:
- MONGO_INITDB_ROOT_USERNAME=wekanuser
- MONGO_INITDB_ROOT_PASSWORD=your-secure-password
volumes:
- ./mongodb/data:/data/db
- ./mongodb/dump:/dump
networks:
- wekan
Unraid Preparationβ
Create Unraid Share
- Navigate: Shares in Unraid webUI
- Add Share: Create new share named "wekan"
- Configure: Set appropriate permissions and cache settings
Installationβ
Unraid Installationβ
Community Applications Method
-
Install MongoDB:
- Search "MongoDB" in Community Apps
- Install from "Taddeusz' Repository / Network:Other"
- Version: Select MongoDB 4.4.7 specifically
- Port: 27017 (verify availability)
-
Install Wekan:
- Search "Wekan" in Community Apps
- Install from "Kru-X's Repository / Productivity"
-
Wekan Configuration:
Container Name: wekan
ROOT_URL: http://192.168.1.100:5555
PORT: 5555
MONGO_URL: mongodb://192.168.1.100:27017/wekan
unRAID Share Path: /mnt/user/wekan
Docker Composeβ
Complete Stack
version: '3.8'
services:
wekan:
image: quay.io/wekan/wekan:latest
container_name: wekan
restart: unless-stopped
environment:
# Application Settings
- ROOT_URL=https://wekan.yourdomain.com
- PORT=8080
- TZ=America/New_York
# Database Connection
- MONGO_URL=mongodb://wekanuser:your-secure-password@mongodb:27017/wekan?authSource=admin
# Email Configuration (optional)
- MAIL_URL=smtp://username:password@smtp.gmail.com:587
- MAIL_FROM=wekan@yourdomain.com
# Security Settings
- WITH_API=true
- RICHER_CARD_COMMENT_EDITOR=true
- CARD_OPENED_WEBHOOK_ENABLED=false
- BIGEVENTS_PATTERN=NONE
- BROWSER_POLICY_ENABLED=true
ports:
- "5555:8080"
depends_on:
- mongodb
volumes:
- ./wekan/files:/data
networks:
- wekan
mongodb:
image: mongo:4.4.7
container_name: wekan-mongodb
restart: unless-stopped
command: mongod --oplogSize 128
environment:
- MONGO_INITDB_ROOT_USERNAME=wekanuser
- MONGO_INITDB_ROOT_PASSWORD=your-secure-password
- MONGO_INITDB_DATABASE=wekan
volumes:
- ./mongodb/data:/data/db
- ./mongodb/dump:/dump
networks:
- wekan
networks:
wekan:
driver: bridge
volumes:
mongodb_data:
wekan_data:
Environment Configurationβ
Create .env File
# Database Configuration
MONGO_USERNAME=wekanuser
MONGO_PASSWORD=your-secure-password
WEKAN_ROOT_URL=https://wekan.yourdomain.com
# Email Settings
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
MAIL_FROM=wekan@yourdomain.com
# Security
WEKAN_SECRET=your-secret-key-here
Initial Setupβ
First Launchβ
Create Admin Account
- Access Wekan: Navigate to
http://server-ip:5555
- Register Account: Click "Register" to create first account
- Admin Account: First registered user becomes administrator
- Verify Setup: Confirm Wekan loads properly
Admin Configurationβ
Security Settings
- Access Admin Panel: Click user avatar β Admin Panel
- Disable Registration: Turn off self-registration
- Configure Settings:
Registration Policy: Admin Only
Email Verification: Enabled (if SMTP configured)
Default Board Permission: Private
Database Verificationβ
Check MongoDB Connection
# Connect to MongoDB container
docker exec -it wekan-mongodb mongo
# Switch to Wekan database
use wekan
# Check collections
show collections
# Exit MongoDB shell
exit
Board Managementβ
Create Boardsβ
New Board Setup
- Create Board: Click "Create Board" button
- Board Configuration:
Title: Project Name
Description: Project description
Color: Choose board color
Permission: Private/Public - Initial Lists: Create workflow columns (To Do, In Progress, Done)
Board Templatesβ
Common Board Layouts
Software Development:
- Backlog
- To Do
- In Development
- Testing
- Code Review
- Done
Marketing Campaign:
- Ideas
- Planning
- In Progress
- Review
- Approved
- Published
Personal Tasks:
- Today
- This Week
- This Month
- Someday
- Completed
List Managementβ
Workflow Organization
List Actions:
- Add List: Create new workflow stage
- Rename List: Change list title
- Move List: Reorder workflow stages
- Archive List: Hide completed stages
- List Settings: Configure list properties
Card Managementβ
Create and Edit Cardsβ
Card Operations
Basic Card Info:
- Title: Task description
- Description: Detailed information
- Due Date: Deadline for completion
- Members: Assign team members
- Labels: Categorize tasks
Advanced Features:
- Checklists: Break down into subtasks
- Attachments: Add files and documents
- Comments: Team collaboration
- Activity: Track all changes
Card Workflowsβ
Task Progression
- Create Card: Add new task to appropriate list
- Add Details: Fill in description, due date, assignees
- Progress Tracking: Move card through workflow stages
- Collaboration: Use comments for team communication
- Completion: Move to done list and archive if needed
Labels and Categoriesβ
Organization System
Priority Labels:
- High Priority (Red)
- Medium Priority (Yellow)
- Low Priority (Green)
Type Labels:
- Bug (Red)
- Feature (Blue)
- Enhancement (Purple)
- Documentation (Gray)
Status Labels:
- Blocked (Black)
- Urgent (Orange)
- Review Needed (Pink)
User Managementβ
Add Team Membersβ
User Administration
- Admin Panel: Access user management
- Invite Users: Send invitation emails
- User Roles:
Admin: Full system access
Normal User: Board access only
Comment Only: Read and comment only
Board Permissionsβ
Access Control
Board Visibility:
- Private: Invite only
- Public: Anyone with link can view
- Team: Specific team access
User Permissions:
- Admin: Full board control
- Normal: Create and edit cards
- Comment Only: View and comment
- No Comments: View only
Advanced Featuresβ
Email Notificationsβ
SMTP Configuration
environment:
- MAIL_URL=smtps://username:password@smtp.gmail.com:465
- MAIL_FROM=notifications@yourdomain.com
- DEFAULT_FROM_EMAIL=wekan@yourdomain.com
Webhook Integrationβ
External Integrations
environment:
- WEBHOOKS_ATTRIBUTES=cardId,listId,boardId,comment
- CARD_OPENED_WEBHOOK_ENABLED=true
- WEBHOOK_URL=https://your-webhook-endpoint.com
API Accessβ
Enable API
environment:
- WITH_API=true
- API_TOKEN_EXPIRATION=never
API Usage Example
# Get boards
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://wekan.yourdomain.com/api/boards
# Create card
curl -X POST \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"New Task","description":"Task description"}' \
https://wekan.yourdomain.com/api/boards/BOARD_ID/lists/LIST_ID/cards
Backup and Maintenanceβ
Backup Strategyβ
Database Backup
# Create backup script
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/wekan"
# Create backup directory
mkdir -p $BACKUP_DIR
# Backup MongoDB
docker exec wekan-mongodb mongodump --out /dump/wekan_$DATE
# Copy backup to host
docker cp wekan-mongodb:/dump/wekan_$DATE $BACKUP_DIR/
# Compress backup
tar -czf $BACKUP_DIR/wekan_backup_$DATE.tar.gz -C $BACKUP_DIR wekan_$DATE
# Cleanup old backups (keep 30 days)
find $BACKUP_DIR -name "wekan_backup_*.tar.gz" -mtime +30 -delete
Restore Procedureβ
Database Restore
# Extract backup
tar -xzf wekan_backup_YYYYMMDD_HHMMSS.tar.gz
# Copy to container
docker cp wekan_YYYYMMDD_HHMMSS wekan-mongodb:/dump/
# Restore database
docker exec wekan-mongodb mongorestore --drop /dump/wekan_YYYYMMDD_HHMMSS
Updatesβ
Update Wekan
# Pull latest images
docker-compose pull
# Recreate containers
docker-compose up -d
# Check logs
docker-compose logs -f wekan
Troubleshootingβ
Common Issuesβ
MongoDB Connection Problems
# Check MongoDB logs
docker logs wekan-mongodb
# Verify connectivity
docker exec wekan-mongodb mongo --eval "db.adminCommand('ismaster')"
# Test from Wekan container
docker exec wekan nc -zv mongodb 27017
Wekan Not Loading
- Check Logs:
docker logs wekan
- Verify ROOT_URL: Ensure correct URL configuration
- Database Access: Confirm MongoDB connectivity
- Port Conflicts: Check if port 5555 is available
Performance Issues
Optimization:
- Increase MongoDB oplogSize
- Add more memory to containers
- Use SSD storage for database
- Regular database maintenance
Database Maintenanceβ
MongoDB Optimization
# Compact database
docker exec wekan-mongodb mongo wekan --eval "db.runCommand({compact: 'boards'})"
# Repair database
docker exec wekan-mongodb mongo wekan --eval "db.repairDatabase()"
# Check database stats
docker exec wekan-mongodb mongo wekan --eval "db.stats()"
Best Practicesβ
Organization Strategyβ
Effective Board Management
Board Structure:
- One board per project/team
- Clear naming conventions
- Consistent list workflows
- Regular archive cleanup
Card Guidelines:
- Descriptive titles
- Detailed descriptions
- Appropriate labels
- Regular updates
Team Collaborationβ
Workflow Optimization
Communication:
- Use card comments for discussions
- @mention team members
- Regular board reviews
- Clear task assignments
Process:
- Define workflow stages
- Set due dates consistently
- Use checklists for complex tasks
- Archive completed work
Special Thanksβ
- Wekan Development Team for creating this excellent kanban solution
- Lauri Ojansivu for leading Wekan development
- Community Contributors for ongoing improvements
- To our fantastic Discord community and our Admins DiscDuck and Hawks for their input and testing
Please support the developers and creators involved in this work to help show them some love. β€οΈ
Final Wordsβ
We hope you enjoyed this guide. It was conceptualized, written, and implemented by our Admin Sycotix.
Support Usβ
Our work sometimes takes months to research and develop.
If you want to help support us please consider:
- Liking and Subscribing to our Youtube channel
- Joining our Discord server
- Becoming a paid member on our IBRACORP website
- Donating via Paypal
Thank you for being part of our community!