# Vikunja Gestor de tareas y proyectos con PostgreSQL, soporte CalDAV y envío de recordatorios por correo. ## Arquitectura y propósito `vikunja` ofrece interfaz, API y CalDAV; `vikunja-db` guarda usuarios, proyectos y tareas. PostgreSQL sólo está en `vikunja_internal`; Vikunja se conecta además a `proxy` y `mail_internal`. ## Configuración - `VIKUNJA_DOMAIN` forma `VIKUNJA_SERVICE_PUBLICURL`; incluye HTTPS y la barra final esperada. - `VIKUNJA_JWT_SECRET` firma sesiones. Debe ser aleatorio, exclusivo y estable. - `VIKUNJA_DB_*` debe coincidir en aplicación, healthcheck y PostgreSQL. - Las variables `VIKUNJA_MAILER_*` configuran SMTP y recordatorios. - El registro público está desactivado; crea usuarios de forma administrativa. - `/opt/vikunja/files` guarda adjuntos y `/opt/vikunja/postgres` la base; ambos son necesarios para una restauración completa. CalDAV está activado para clientes externos; publica siempre mediante HTTPS y revoca credenciales de clientes perdidos. ## Requisitos - Docker Compose - Redes externas `proxy` y `mail_internal` - Un archivo `.env` local con dominio, secreto JWT, credenciales PostgreSQL y configuración SMTP - Directorios persistentes `/opt/vikunja/postgres` y `/opt/vikunja/files` ## Despliegue ```bash cd vikunja docker compose --env-file .env config docker compose --env-file .env up -d ``` ## Operación ```bash docker compose --env-file .env ps docker compose --env-file .env logs -f vikunja vikunja-db ``` El registro público está deshabilitado. Traefik publica el servicio usando el dominio configurado en `VIKUNJA_DOMAIN`.