← All articles
SERVICES Self-Hosted Ticketing and Project Management for You... 2026-02-09 · 5 min read · project-management · ticketing · plane

Self-Hosted Ticketing and Project Management for Your Home Lab

Services 2026-02-09 · 5 min read project-management ticketing plane vikunja self-hosted

Running a homelab means running a never-ending list of projects. There's the NAS migration you started three weeks ago, the Kubernetes cluster you're building, the firewall rules you need to audit, the SSL certificates that expire next month, and the ten other things you thought of at 2 AM and forgot by morning. Sticky notes and text files don't scale.

Self-hosted project management tools give you a proper place to track tasks, document decisions, and plan upgrades. They're also a practical exercise in running a real application stack — databases, web servers, authentication — that teaches you skills applicable beyond the homelab.

Docker logo

What to Look For

A good homelab project management tool should be:

The Contenders

Plane

Plane is the closest self-hosted alternative to Linear or Jira. It has a modern UI, issue tracking with cycles (sprints), project roadmaps, and a clean API. It's built for software teams but works well for structured homelab project management.

Strengths: Beautiful UI, GitHub-like issue management, cycles/sprints, modules for grouping work, good API

Weaknesses: Heavier resource usage (needs PostgreSQL, Redis, and multiple services), designed for teams rather than individuals

# docker-compose.yml for Plane
# Plane recommends using their setup script:
# curl -fsSL https://prime.plane.so/install | bash

# Or manually with Docker Compose:
services:
  web:
    image: makeplane/plane-frontend:stable
    restart: unless-stopped
    depends_on:
      - api
    ports:
      - "3000:3000"

  api:
    image: makeplane/plane-backend:stable
    restart: unless-stopped
    depends_on:
      - db
      - redis
    environment:
      DATABASE_URL: postgresql://plane:password@db:5432/plane
      REDIS_URL: redis://redis:6379
      SECRET_KEY: your-secret-key-here

  worker:
    image: makeplane/plane-backend:stable
    restart: unless-stopped
    command: celery
    depends_on:
      - api
      - redis

  db:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_DB: plane
      POSTGRES_USER: plane
      POSTGRES_PASSWORD: password
    volumes:
      - plane-db:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - plane-redis:/data

volumes:
  plane-db:
  plane-redis:

Resource usage: ~1.5-2 GB RAM for the full stack.

Vikunja

Vikunja is a lightweight, open-source task manager inspired by Todoist and Wunderlist. It's designed for personal use and small teams, making it an excellent fit for solo homelab operators.

Strengths: Very lightweight, clean UI, Kanban and list views, CalDAV support (sync with your calendar), API, task relations, file attachments

Weaknesses: Less feature-rich than Plane for complex project management, no built-in roadmap view

# docker-compose.yml for Vikunja
services:
  vikunja:
    image: vikunja/vikunja:latest
    restart: unless-stopped
    ports:
      - "3456:3456"
    environment:
      VIKUNJA_DATABASE_TYPE: sqlite
      VIKUNJA_SERVICE_JWTSECRET: your-secret-here
      VIKUNJA_SERVICE_FRONTENDURL: https://tasks.homelab.lan/
    volumes:
      - ./data:/app/vikunja/files
      - ./db:/db

That's it. Vikunja can run with SQLite (no separate database container needed) and serves both the API and frontend from a single container. Total RAM usage: ~50-100 MB.

For a more robust setup with PostgreSQL:

services:
  vikunja:
    image: vikunja/vikunja:latest
    restart: unless-stopped
    ports:
      - "3456:3456"
    environment:
      VIKUNJA_DATABASE_TYPE: postgres
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_PASSWORD: password
      VIKUNJA_SERVICE_JWTSECRET: your-secret-here
    volumes:
      - ./files:/app/vikunja/files
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: vikunja
      POSTGRES_USER: vikunja
      POSTGRES_PASSWORD: password
    volumes:
      - ./db-data:/var/lib/postgresql/data

Leantime

Leantime is a project management tool aimed at non-project-managers. It has a friendlier interface than Jira-style tools, with built-in time tracking, goal setting, and milestone tracking.

Strengths: Intuitive UI, time tracking, milestones, goal tracking, Gantt charts, simple setup

Weaknesses: PHP-based (requires MySQL/MariaDB), heavier than Vikunja, UI can feel slow

# docker-compose.yml for Leantime
services:
  leantime:
    image: leantime/leantime:latest
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      LEAN_DB_HOST: db
      LEAN_DB_USER: leantime
      LEAN_DB_PASSWORD: password
      LEAN_DB_DATABASE: leantime
      LEAN_SITENAME: "Homelab Projects"
    depends_on:
      - db

  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: rootpassword
      MARIADB_DATABASE: leantime
      MARIADB_USER: leantime
      MARIADB_PASSWORD: password
    volumes:
      - ./db-data:/var/lib/mysql

Resource usage: ~300-500 MB RAM for the full stack.

Focalboard

Focalboard (by Mattermost) is a Kanban-focused project management tool. It's similar to Notion's boards or Trello but self-hosted.

Strengths: Very clean Kanban UI, multiple board views (table, gallery, calendar), single binary, minimal resources

Weaknesses: Mattermost has shifted focus to integrating Focalboard into Mattermost Boards — the standalone version receives less attention. Future uncertain.

# docker-compose.yml for Focalboard
services:
  focalboard:
    image: mattermost/focalboard:latest
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - ./data:/opt/focalboard/data

Focalboard uses SQLite by default and runs as a single container. RAM usage: ~30-80 MB. It's the lightest option here.

Feature Comparison

Feature Plane Vikunja Leantime Focalboard
Kanban boards Yes Yes Yes Yes (primary view)
List view Yes Yes Yes Yes
Calendar view No Yes (CalDAV) Yes Yes
Gantt chart Roadmap view No Yes No
Time tracking No No Yes No
Cycles/Sprints Yes No Milestones No
API Full REST API Full REST API Limited REST API
CalDAV sync No Yes No No
Min RAM ~1.5 GB ~50 MB ~300 MB ~30 MB
Database PostgreSQL SQLite or PostgreSQL MySQL/MariaDB SQLite or PostgreSQL
Single container No (5 services) Yes No (2 services) Yes
Mobile app No (PWA) Android (F-Droid) No (PWA) No (PWA)
License AGPL-3.0 AGPL-3.0 AGPL-3.0 AGPL-3.0/MIT

My Recommendation

For most homelab operators, Vikunja is the sweet spot. It's lightweight enough to run alongside everything else without hogging resources, supports SQLite so you don't need another database container, has CalDAV support for syncing with your calendar, and the UI is clean and fast. It handles the "solo operator managing a bunch of projects" use case perfectly.

If you want something more structured with sprint planning and a software-development-style workflow, Plane is excellent — just be prepared for the heavier resource footprint.

Focalboard is great if you just want a simple Kanban board, though its long-term future as a standalone product is uncertain.

Leantime shines if you want built-in time tracking and milestone management.

Setting Up for Homelab Use

Whatever tool you choose, here's how to make it work well for homelab management:

Project Structure

Create projects that match your homelab areas:

Label System

Use consistent labels across projects:

Backup Your Boards

Your project management tool needs backups too. For SQLite-based tools, this is simple:

# Add to your backup script
cp /opt/vikunja/db/vikunja.db /backup/vikunja/vikunja-$(date +%Y%m%d).db

For PostgreSQL-backed tools:

docker exec vikunja-db pg_dump -U vikunja vikunja > /backup/vikunja/dump-$(date +%Y%m%d).sql

The irony of needing to track "set up backups for the task tracker" as a task in the task tracker is not lost on anyone running a homelab. But having a single place to capture everything you need to do — and see what you've already done — transforms homelab management from chaos to something that feels controlled.