MCPSERV.CLUB
Vikunja

Vikunja

Self-Hosted

Organize tasks, projects, and teams with ease

Stale(40)
0stars
0views
Vikunja screenshot 1
1 / 3

Overview

Discover what makes Vikunja powerful

Vikunja is a self‑hosted, open‑source task management platform that blends classic list handling with modern visualizations such as Gantt charts, Kanban boards, and tabular views. From a developer standpoint it is designed to be lightweight yet extensible, allowing teams to host their own instance with minimal operational overhead while still exposing a rich API surface for integration and automation. The core goal is privacy: the entire codebase can be audited, modified, or extended without relying on a third‑party SaaS provider.

Hierarchical Projects

Task Management

Rich Views

Attachments & Comments

Overview

Vikunja is a self‑hosted, open‑source task management platform that blends classic list handling with modern visualizations such as Gantt charts, Kanban boards, and tabular views. From a developer standpoint it is designed to be lightweight yet extensible, allowing teams to host their own instance with minimal operational overhead while still exposing a rich API surface for integration and automation. The core goal is privacy: the entire codebase can be audited, modified, or extended without relying on a third‑party SaaS provider.

Technical Stack & Architecture

Vikunja follows a microservice‑style monolith architecture. The backend is written in Go (Golang), leveraging the gin web framework for routing and middleware. Data persistence is handled by PostgreSQL (with optional support for SQLite for lightweight deployments), accessed through the gorm ORM. The frontend is a single‑page application built with React and TypeScript, using the react-query library for efficient data fetching. The project bundles its assets via Vite, resulting in a fast build pipeline and small bundle sizes. All communication between client and server is secured over HTTPS, with JWT‑based authentication and role‑based access control baked into the API.

The architecture is intentionally modular: each feature (projects, tasks, comments, attachments) is encapsulated in its own Go package, making it straightforward to add or replace components. The application exposes a RESTful API alongside a GraphQL endpoint, giving developers the flexibility to choose their preferred data querying paradigm. Webhooks are available for external event handling, and a built‑in plugin system allows custom Go modules to hook into lifecycle events such as task creation or completion.

Core Capabilities & Developer APIs

  • Hierarchical Projects: Create projects, sub‑projects, and groups; each level can be shared with individual users or teams.
  • Task Management: CRUD operations, tagging, assignment, due dates, and recurring schedules. Tasks can be moved across boards or lists via a simple drag‑and‑drop API.
  • Rich Views: The backend supplies data for Gantt, Kanban, Table, and List views; the frontend renders these using lightweight chart libraries (e.g., d3.js for Gantt).
  • Attachments & Comments: File uploads are stored in the database or an external S3‑compatible bucket; comments support Markdown rendering.
  • Search & Filters: Full‑text search powered by PostgreSQL’s tsvector; filterable via query parameters.
  • Audit Trail: Every change is logged with timestamps and user identifiers, accessible via the /audit endpoint.
  • Webhook & Event System: External services can subscribe to events like task.created, project.updated etc., with payloads in JSON.

The API is documented using OpenAPI 3.0 and automatically generates SDKs for multiple languages (Go, TypeScript, Python). This makes it trivial to integrate Vikunja into CI/CD pipelines or custom dashboards.

Deployment & Infrastructure

Vikunja ships with a Docker Compose configuration that includes the backend, PostgreSQL, and optional Redis for caching. For production, the recommended stack is:

  1. Docker Swarm / Kubernetes: Deploy the Go service as a stateless pod; PostgreSQL runs in a stateful set.
  2. Ingress Controller: TLS termination via cert‑manager and Let’s Encrypt for automated certificates.
  3. Persistent Volumes: Store PostgreSQL data on an SSD-backed volume; optional S3 bucket for attachments.
  4. Auto‑Scaling: The Go service can be horizontally scaled; the API is stateless, so load balancers can distribute traffic evenly.

Because the codebase is pure Go, binaries are statically linked and portable across Linux distributions. This makes it ideal for edge deployments or low‑resource environments such as Raspberry Pi clusters.

Integration & Extensibility

  • Plugin Architecture: Developers can write Go plugins that register hooks on events (e.g., sending a Slack notification when a task is marked complete). Plugins are compiled into the binary or loaded dynamically via shared objects.
  • Custom Themes & UI: The React frontend exposes a theming API; CSS variables can be overridden to match corporate branding.
  • OAuth & SSO: Supports OAuth2, OpenID Connect, and LDAP integration out of the box.
  • Webhooks: Expose POST endpoints for external services; payloads are customizable per event type.
  • CLI & SDK: A command‑line tool allows bulk operations, migrations, and backup restoration. The generated SDKs enable integration into existing Go or TypeScript projects.

Developer Experience

The project follows standard Go conventions and includes a comprehensive README, API reference, and contribution guidelines. The code is actively maintained on GitHub with a responsive issue tracker and a welcoming community. Documentation is hosted at docs.vikunja.io, featuring examples, best‑practice guides, and a detailed migration path for upgrading between major releases. Continuous integration runs tests on every PR, ensuring that new features do not break existing functionality.

Use Cases

  • Enterprise Task Tracking: Teams can self‑host Vikunja to maintain control over sensitive data while benefiting from a full‑featured task board.
  • Open‑Source Project Management: Maintainers of large repositories can integrate Vikunja with GitHub Actions to trigger issue triage workflows.
  • Education & Research: Universities can host Vik

Open SourceReady to get started?

Join the community and start self-hosting Vikunja today