Por qué autoalojar un gestor de proyectos
Linear, Asana, Monday.com — las herramientas SaaS de gestión de proyectos cobran por asiento y suben precios regularmente. TREK invierte el modelo: alojas la app en tu propio VPS, tus datos nunca salen de tu infraestructura, y el coste mensual es el del VPS, no el de los asientos.
Con más de 14 k estrellas en GitHub y licencia AGPL-3.0, TREK es un proyecto comunitario activo. La versión 4.3.3 es estable, nativa de Docker, y no requiere base de datos externa: SQLite está integrado en la imagen.
Lo que obtienes con TREK autoalojado
- Tableros Kanban ilimitados — crea tantos proyectos y columnas como necesites, sin límite de asientos.
- Hitos y sprints — planifica por ciclos y visualiza el progreso en el panel de equipo.
- Gestión de equipo — invita miembros por correo, asigna roles (Admin, Miembro, Observador) por proyecto.
- API REST — integra pipelines CI/CD para crear incidencias o actualizar estados automáticamente.
- OIDC / SSO — conecta Authentik, Pocket ID o Keycloak para inicio de sesión centralizado.
- Adjuntos de archivos — sube archivos y capturas directamente a las incidencias.
- SQLite integrado — sin base de datos externa, haz copia de seguridad con un solo comando.
Requisitos previos
Necesitas un VPS Ubuntu 24.04 con al menos 1 GB de RAM y 1 GB de espacio en disco (más según el volumen de tus adjuntos). Docker y el plugin Compose deben estar instalados:
curl -fsSL https://get.docker.com | shNo se requiere nombre de dominio para la instalación inicial: TREK es accesible a través de un túnel SSH.
Instalación de TREK
Crear el directorio y el archivo Compose
En el servidor, crea un directorio dedicado:
mkdir -p /opt/trek && cd /opt/trekCrea
/opt/trek/docker-compose.yml:services: trek: image: mauriceboe/trek:4.3.3 restart: unless-stopped ports: - "127.0.0.1:3000:3000" environment: NODE_ENV: production ENCRYPTION_KEY: "reemplaza-con-cadena-aleatoria-32-chars" ADMIN_EMAIL: [email protected] ADMIN_PASSWORD: "ContraseñaAdmin42!" TRUST_PROXY: "1" volumes: - trek-data:/app/data - trek-uploads:/app/uploads volumes: trek-data: {} trek-uploads: {}⚠️ En producción, sustituye
ENCRYPTION_KEYpor una cadena aleatoria de al menos 32 caracteres y elige una contraseña de administrador robusta.Iniciar TREK
Lanza el contenedor:
docker compose up -dTREK descarga la imagen (~462 MB), inicializa SQLite y arranca Node.js. Las migraciones de Drizzle ORM se ejecutan en el primer arranque. Espera de 30 a 45 segundos antes de acceder a la interfaz.
Verifica el arranque:
docker compose logs -f trekBusca la línea
Server listening on port 3000: es la señal de que TREK está listo.Acceder a la interfaz
Abre un túnel SSH desde tu máquina local:
ssh -L 3000:127.0.0.1:3000 root@<ip-de-tu-vps>Luego abre
http://localhost:3000en tu navegador. Aparece la página de inicio de sesión de TREK. Conéctate con[email protected]y la contraseña definida enADMIN_PASSWORD.Crear tu primer proyecto
Tras iniciar sesión:
1. Haz clic en Nuevo espacio de trabajo → dale un nombre.
2. Haz clic en Nuevo proyecto → elige la plantilla Kanban.
3. Añade tu primer ticket en la columna Por hacer.Ya estás operativo. Invita a tus colaboradores desde Ajustes → Miembros.
Configurar un dominio y nginx
Para acceder a TREK desde cualquier dispositivo sin túnel SSH, adjunta un dominio y configura nginx como proxy inverso. Aquí tienes un ejemplo de bloque server de nginx para HTTPS:
server {
listen 443 ssl;
server_name trek.your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Luego añade APP_URL: https://trek.your-domain.com a las variables de entorno del servicio TREK para que los enlaces de invitación y las notificaciones OIDC usen la URL correcta.
Copia de seguridad y mantenimiento
TREK almacena sus datos en dos volúmenes Docker: trek-data (base SQLite) y trek-uploads (adjuntos). Respalda ambos:
# Base de datos
docker run --rm -v trek_trek-data:/data -v /backup:/backup alpine \
tar czf /backup/trek-data-$(date +%Y%m%d).tar.gz -C /data .
# Adjuntos
docker run --rm -v trek_trek-uploads:/data -v /backup:/backup alpine \
tar czf /backup/trek-uploads-$(date +%Y%m%d).tar.gz -C /data .Para actualizar TREK a una nueva versión, modifica el tag de imagen en docker-compose.yml y luego:
docker compose pull && docker compose up -dLas migraciones de SQLite se aplican automáticamente al arrancar.