Warning — Proof of Concept This add-on is in early development. It works but has not been extensively tested in production. Use at your own risk. Data is stored locally in SQLite — back up
/databefore upgrading. Expect breaking changes before v1.0.
Self-hosted task management for your household, running as a Home Assistant add-on.
Vikunja is an open-source, self-hosted to-do app. This add-on wraps it for easy installation on Home Assistant OS.
- Sidebar integration — access Vikunja directly from the HA sidebar via ingress
- Multi-user — each household member gets their own account
- Shared projects — create shared task lists (e.g., groceries, chores)
- Private lists — each user also has personal tasks
- External access — access from your phone outside your home network
- Persistent storage — SQLite database, survives restarts and updates
- In Home Assistant, go to Settings → Add-ons → Add-on Store
- Click the ⋮ menu (top right) → Repositories
- Add this URL:
https://github.com/tocDK/vikunja-addon - Find Vikunja in the store and click Install
- Start the add-on — Vikunja appears in your sidebar
- Open Vikunja from the sidebar
- Register your account
- Have your household members register
- Disable registration in the add-on config
- Create a shared project and invite members
| Option | Default | Description |
|---|---|---|
external_url |
(empty) | Public URL for phone access (e.g., https://vikunja.yourdomain.com) |
enable_registration |
true |
Allow new user signups. Disable after all members register. |
By default, Vikunja is only accessible via the HA sidebar (ingress). To access it from your phone or outside your home network, you need to expose it externally.
The add-on exposes port 3456 on your HA host. You then set up a reverse proxy to handle SSL and route traffic to that port.
Point a subdomain to your Home Assistant server's public IP:
vikunja.yourdomain.com → your-public-ip
If you use a dynamic DNS service (e.g., DuckDNS), create a CNAME instead.
Choose one of these setups depending on what you already run.
server {
listen 443 ssl;
server_name vikunja.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/vikunja.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vikunja.yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:3456;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}vikunja.yourdomain.com {
reverse_proxy localhost:3456
}
Caddy handles SSL automatically via Let's Encrypt.
http:
routers:
vikunja:
rule: "Host(`vikunja.yourdomain.com`)"
entryPoints:
- websecure
service: vikunja
tls:
certResolver: letsencrypt
services:
vikunja:
loadBalancer:
servers:
- url: "http://localhost:3456"- In HA, go to Settings → Add-ons → Vikunja → Configuration
- Set External URL to your public URL (e.g.,
https://vikunja.yourdomain.com) - Restart the add-on
Ensure port 443 (HTTPS) on your router forwards to your reverse proxy. Do not expose port 3456 directly — always use a reverse proxy with SSL.
If you run the Nginx Proxy Manager add-on on HA, you can set it up there:
- Add a new proxy host
- Domain:
vikunja.yourdomain.com - Forward to:
homeassistant.localport3456 - Enable SSL with Let's Encrypt
This add-on mirrors Vikunja releases. Add-on version 2.1.0 = Vikunja 2.1.0.