Focalboard - Project Management
Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana. It provides a centralized Kanban board application for the Fawkes platform to manage features, incidents, and stories.
Overview
Focalboard is deployed as part of the Fawkes platform to provide:
- Kanban Boards: Visual task management with drag-and-drop cards
- Multiple Views: Board, table, gallery, and calendar views
- Real-time Collaboration: Changes are immediately visible to all team members
- Data Persistence: All data stored in PostgreSQL with high availability
Access
| Environment | URL |
|---|---|
| Local Dev | http://pm.127.0.0.1.nip.io |
| Production | https://pm.fawkes.io |
Quick Start
Creating Your First Board
- Navigate to the Focalboard URL
- Log in with your platform credentials
- Click + Add Board to create a new board
- Choose a template or start from scratch
Board Templates
The platform provides a default template with the following columns:
| Column | Purpose |
|---|---|
| Backlog | Items waiting to be prioritized |
| To Do | Ready to be worked on |
| In Progress | Currently being worked on |
| Review | Pending review or approval |
| Done | Completed items |
Working with Cards
- Create a Card: Click + New in any column
- Move a Card: Drag and drop between columns
- Edit a Card: Click to open and add details
- Assign Priority: Use the properties panel to set priority
- Add Comments: Collaborate with team members on cards
Architecture
┌─────────────────────────────────────────────────────┐
│ Ingress (nginx) │
│ pm.127.0.0.1.nip.io │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Focalboard Service │
│ (ClusterIP) │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Focalboard Deployment │
│ mattermost/focalboard:7.11.4 │
│ │
│ ┌─────────────┐ ┌─────────────────────────────┐ │
│ │ Config Vol │ │ Files PVC (5Gi) │ │
│ │ (ConfigMap) │ │ Attachments/Uploads │ │
│ └─────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ PostgreSQL (CloudNativePG) │
│ db-focalboard-dev cluster │
│ 3 replicas for High Availability │
└─────────────────────────────────────────────────────┘
Configuration
Environment Variables
The following environment variables are available in env.example:
| Variable | Description | Default |
|---|---|---|
FOCALBOARD_URL |
Internal service URL | http://focalboard.fawkes.svc:8000 |
FOCALBOARD_EXTERNAL_URL |
External URL via ingress | http://pm.127.0.0.1.nip.io |
POSTGRESQL_HOST |
PostgreSQL primary host | db-focalboard-dev-rw.fawkes.svc.cluster.local |
POSTGRESQL_DATABASE |
Database name | focalboard |
POSTGRESQL_USER |
Database user | focalboard_user |
Resource Limits
| Resource | Request | Limit |
|---|---|---|
| CPU | 100m | 500m |
| Memory | 128Mi | 512Mi |
Storage
| Volume | Size | Purpose |
|---|---|---|
| PostgreSQL | 10Gi | Database storage (per replica) |
| Files PVC | 5Gi | File attachments and uploads |
Database
Focalboard uses a dedicated PostgreSQL cluster managed by CloudNativePG:
- Cluster Name:
db-focalboard-dev - Instances: 3 (1 primary + 2 replicas)
- High Availability: Automatic failover within 90 seconds
- TLS: Encrypted connections required
Connection Details
Host (Read-Write): db-focalboard-dev-rw.fawkes.svc.cluster.local
Host (Read-Only): db-focalboard-dev-ro.fawkes.svc.cluster.local
Port: 5432
Database: focalboard
Username: focalboard_user
SSL Mode: require
Credentials
Database credentials are stored in Kubernetes Secrets:
- Secret Name:
db-focalboard-credentials - Keys:
username,password
For production, use External Secrets Operator to pull credentials from your secret manager.
Monitoring
Focalboard exposes Prometheus metrics at port 9092:
- Endpoint:
http://focalboard.fawkes.svc:9092/metrics - Scrape Interval: 30s
Key Metrics
| Metric | Description |
|---|---|
focalboard_api_request_duration_seconds |
API request latency |
focalboard_active_users |
Number of active users |
focalboard_boards_total |
Total number of boards |
focalboard_cards_total |
Total number of cards |
Troubleshooting
Common Issues
Service Not Accessible
- Check if the pod is running:
kubectl get pods -n fawkes -l app=focalboard
- Check pod logs:
kubectl logs -n fawkes -l app=focalboard
- Verify ingress configuration:
kubectl get ingress -n fawkes focalboard
Database Connection Failed
- Verify PostgreSQL cluster is healthy:
kubectl get cluster -n fawkes db-focalboard-dev
- Check database credentials:
kubectl get secret -n fawkes db-focalboard-credentials
- Test database connectivity from the pod:
kubectl exec -n fawkes -it deployment/focalboard -- \ psql "postgres://focalboard_user@db-focalboard-dev-rw:5432/focalboard?sslmode=require"
Pod Restart Loop
Check for resource constraints:
kubectl describe pod -n fawkes -l app=focalboard
Related Resources
- Focalboard GitHub
- Focalboard Documentation
- PostgreSQL Deployment
- CloudNativePG Documentation
Support
For issues with Focalboard on the Fawkes platform:
- Check the Troubleshooting Guide
- Search existing GitHub Issues
- Open a new issue if needed
- Contact the Platform Team via Mattermost