Vikunja: El gestor de tareas que realmente posees
Una aplicación de gestión de tareas y proyectos de código abierto, licenciada bajo AGPL-3.0, diseñada para autoalojamiento con control total sobre los datos.
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Vikunja: El gestor de tareas que realmente posees en el canal GENBYTE:
¿Qué es Vikunja: El gestor de tareas que realmente posees?
Vikunja es un gestor de tareas y proyectos de código abierto desarrollado en Go con frontend en Vue.js. Su filosofía central es que el usuario tenga propiedad total sobre sus datos, ofreciendo una alternativa autoalojada a servicios como Todoist, Asana o Trello. El proyecto está licenciado bajo AGPL-3.0-or-later, lo que garantiza que las modificaciones en despliegues de red permanezcan abiertas. Cuenta con una instancia de prueba pública en try.vikunja.io, una versión alojada gestionada en vikunja.cloud y una edición Pro con características adicionales como panel de administración, registros de auditoría y seguimiento de tiempo.
Características principales
Gestión de proyectos y tareas
Organización mediante proyectos, listas, tareas, subtareas, etiquetas, prioridades, fechas de vencimiento, recordatorios y repeticiones.
Vistas múltiples
Tablero Kanban, lista, tabla, calendario y diagrama de Gantt para visualizar el trabajo según la necesidad.
Colaboración en equipo
Compartir proyectos con usuarios o equipos, asignar tareas, comentarios, adjuntos y permisos granulares.
API REST y OpenAPI
API versionada (v2) con documentación Swagger/OpenAPI en /api/v2/docs para integraciones y clientes personalizados.
Autenticación flexible
Soporte para registro local, OAuth2/OIDC (Google, GitHub, Microsoft, GitLab, genérico), LDAP y autenticación de dos factores (TOTP).
Notificaciones
Notificaciones por correo electrónico, webhooks, notificaciones push del navegador y dentro de la aplicación.
Importación y migración
Herramientas para importar desde Todoist, Trello, Microsoft To Do, Vikunja JSON/CSV y otras fuentes.
Interfaz multilingüe
Traducciones gestionadas mediante Crowdin con soporte para numerosos idiomas.
Cliente de escritorio y móvil
Aplicaciones nativas para Linux, Windows, macOS (licenciadas bajo GPL-3.0) y clientes móviles para Android e iOS.
Requisitos del sistema
- Docker Engine 20.10+ o Docker Compose v2+ para despliegue en contenedor
- Puerto 3456 TCP accesible para la interfaz web y API
- Volumen persistente para la base de datos SQLite (ruta por defecto /db/vikunja.db) o servidor PostgreSQL/MySQL externo
- Mínimo 512 MB RAM y 1 vCPU para instancias pequeñas; 1 GB+ RAM recomendado para uso en equipo
- Sistema de archivos con soporte para permisos de usuario 1000:1000 (UID/GID del contenedor)
Instalación con Docker Compose
Despliegue con Docker (imagen oficial)
La imagen oficial se publica en Docker Hub como vikunja/vikunja. El Dockerfile multi-etapa compila el frontend (Node.js 24, pnpm, Vue.js) y el backend (Go 1.27, Mage) en una imagen final scratch que expone el puerto 3456 y ejecuta el binario como usuario 1000. No se encontró un archivo docker-compose.yml en el repositorio principal; la documentación oficial en vikunja.io/docs/installing/ proporciona ejemplos completos con bases de datos externas, proxy inverso y variables de entorno.
–name vikunja \
-p 3456:3456 \
-v vikunja-data:/db \
-v vikunja-config:/app/vikunja/config.yml \
vikunja/vikunja:latest
Compilación desde código fuente
El repositorio incluye un Magefile para automatizar la compilación. Requiere Go 1.27+, Node.js 24+ y pnpm. El proceso compila el frontend, incrusta los assets en el binario Go y genera ejecutables multiplataforma mediante xgo.
cd vikunja
mage build:clean
mage release:xgo vikunja linux/amd64
Acceder al proyecto
Interfaz web y API
Tras iniciar el contenedor, la aplicación está disponible en http://<host>:3456. La API REST v2 se sirve bajo /api/v2 y su documentación Swagger en /api/v2/docs. El primer acceso muestra un asistente de configuración inicial para crear el usuario administrador y definir ajustes básicos.
Casos de uso
- Gestión personal de tareas y proyectos con control total de privacidad
- Colaboración en equipos pequeños y medianos que requieren autoalojamiento por cumplimiento normativo
- Sustitución de SaaS de productividad (Todoist, Asana, Trello) manteniendo la soberanía de datos
- Integración con flujos de trabajo existentes mediante API REST y webhooks
- Entornos educativos o asociaciones que necesitan una herramienta gratuita y sin límites de usuarios
Configuración avanzada
Variables de entorno principales
El contenedor expone variables para configuración sin archivo YAML. Las más relevantes según el Dockerfile y la documentación oficial: VIKUNJA_SERVICE_ROOTPATH (ruta base si se sirve bajo subpath), VIKUNJA_DATABASE_PATH (ruta del archivo SQLite), VIKUNJA_DATABASE_TYPE (sqlite, postgres, mysql), VIKUNJA_SERVICE_JWTSECRET (clave para tokens JWT), VIKUNJA_SERVICE_PUBLICURL (URL pública para enlaces en correos), VIKUNJA_CORS_ENABLED y VIKUNJA_CORS_ORIGINS para CORS.
-e VIKUNJA_DATABASE_TYPE=sqlite \
-e VIKUNJA_DATABASE_PATH=/db/vikunja.db \
-e VIKUNJA_SERVICE_PUBLICURL=https://vikunja.ejemplo.com \
-e VIKUNJA_SERVICE_JWTSECRET=clave-secreta-larga \
-e VIKUNJA_CORS_ENABLED=true \
-e VIKUNJA_CORS_ORIGINS=https://vikunja.ejemplo.com \
vikunja/vikunja:latest
Configuración mediante archivo YAML
Para configuraciones complejas se recomienda montar un archivo config.yml en /app/vikunja/config.yml. El archivo permite definir base de datos, correo SMTP, caché (Redis), colas, métricas Prometheus, logging, rate limiting, y ajustes de frontend. La estructura completa está documentada en config-raw.json del repositorio y en la guía de configuración oficial.
database:
type: sqlite
path: /db/vikunja.db
service:
publicurl: https://vikunja.ejemplo.com
jwtsecret: "clave-secreta-muy-larga-y-segura"
rootpath: /app/vikunja/
cors:
enabled: true
origins:
– https://vikunja.ejemplo.com
Uso con base de datos externa (PostgreSQL)
Para producción con alta concurrencia se recomienda PostgreSQL. Requiere crear la base de datos y usuario, y configurar las variables de conexión. El contenedor ejecuta migraciones automáticas al inicio.
-e VIKUNJA_DATABASE_TYPE=postgres \
-e VIKUNJA_DATABASE_HOST=db \
-e VIKUNJA_DATABASE_PORT=5432 \
-e VIKUNJA_DATABASE_USER=vikunja \
-e VIKUNJA_DATABASE_PASSWORD=secreto \
-e VIKUNJA_DATABASE_DATABASE=vikunja \
–link postgres:db \
vikunja/vikunja:latest
Gestión y mantenimiento
Actualización de versión
Actualizar la imagen y recrear el contenedor preservando los volúmenes de datos y configuración. Las migraciones de base de datos se aplican automáticamente al arranque.
docker stop vikunja
docker rm vikunja
docker run -d –name vikunja … (mismos parámetros y volúmenes)
Copia de seguridad
La base de datos SQLite (/db/vikunja.db) y el directorio de archivos adjuntos (configurable, por defecto en /app/vikunja/files) deben incluirse en las copias de seguridad. Para PostgreSQL/MySQL usar herramientas nativas (pg_dump, mysqldump).
docker exec vikunja sqlite3 /db/vikunja.db .dump > vikunja-backup-$(date +%F).sql
# Backup archivos adjuntos (si se usa almacenamiento local)
docker cp vikunja:/app/vikunja/files ./files-backup-$(date +%F)
Logs y monitorización
Los logs se escriben en stdout/stderr en formato JSON configurable. Se pueden recopilar con Loki, Elasticsearch o journalctl. La aplicación expone métricas Prometheus en /metrics si se habilita en configuración.
# Métricas Prometheus (requiere config.yml con metrics.enabled: true)
curl http://localhost:3456/metrics
Stack técnico
- Go 1.27 (backend)
- Vue.js 3 (frontend)
- Node.js 24 / pnpm (build frontend)
- Mage (automatización de build)
- xgo (compilación cruzada Go)
- SQLite / PostgreSQL / MySQL (base de datos)
- Docker (imagen multi-etapa scratch)
- AGPL-3.0-or-later (licencia principal)
- GPL-3.0-or-later (cliente de escritorio)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/go-vikunja/vikunja
- Sitio web y documentación oficial: https://vikunja.io/docs/
- Guía de instalación oficial: https://vikunja.io/docs/installing/
- Página de características: https://vikunja.io/features/
- Instancia de prueba (demo): https://try.vikunja.io
- Documentación de API (Swagger/OpenAPI): https://try.vikunja.io/api/v2/docs
- Imagen oficial en Docker Hub: https://hub.docker.com/r/vikunja/vikunja
- Licencia AGPL-3.0: https://www.gnu.org/licenses/agpl-3.0.html
- Versión alojada (Vikunja Cloud): https://vikunja.cloud/
- Edición Pro (características empresariales): https://vikunja.io/pro/
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
