Autoalojar Worklenz
Worklenz es completamente de codigo abierto y puede alojarse en tus propios servidores, dandote control total sobre tus datos e infraestructura. Esta guia cubre todo lo que necesitas para poner en marcha Worklenz en tu propia maquina o servidor de produccion.
Prerequisitos
Antes de comenzar, asegurate de tener instalado lo siguiente:
| Requisito | Version |
|---|---|
| Node.js | v18 o superior |
| PostgreSQL | v15 o superior |
| Docker y Docker Compose | Ultima version estable |
| Git | Cualquier version reciente |
Inicio rapido con Docker (recomendado)
Docker es la forma mas rapida y confiable de poner en marcha Worklenz. El script de configuracion automatica se encarga de la configuracion, los secretos y SSL.
Configuracion automatica
git clone https://github.com/Worklenz/worklenz.gitcd worklenz./quick-setup.shEl script automaticamente:
- Crea un archivo
.envcon secretos de seguridad generados - Configura las URLs para tu dominio
- Configura certificados SSL (autofirmados en local, Let’s Encrypt para produccion)
- Inicia todos los servicios
Puntos de acceso despues de la configuracion:
| Servicio | URL |
|---|---|
| Aplicacion Worklenz | https://localhost o http://localhost |
| Consola MinIO | http://localhost:9001 |
Configuracion manual con Docker
Si prefieres configurarlo tu mismo:
cp .env.example .env# Edita .env con los valores requeridosdocker compose --profile express up -dInstalacion manual (desarrollo)
Usa este metodo si quieres ejecutar Worklenz localmente para desarrollo o pruebas sin Docker.
1. Clona el repositorio:
git clone https://github.com/Worklenz/worklenz.gitcd worklenz2. Configura el entorno:
cp worklenz-backend/.env.template worklenz-backend/.env3. Instala las dependencias:
cd worklenz-backend && npm installcd ../worklenz-frontend && npm install4. Inicializa la base de datos:
Ejecuta los siguientes archivos SQL en orden en tu base de datos PostgreSQL:
psql -U tu_usuario -d worklenz_db -f database/sql/0_extensions.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/1_tables.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/indexes.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/4_functions.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/triggers.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/3_views.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/2_dml.sqlpsql -U tu_usuario -d worklenz_db -f database/sql/5_database_user.sql5. Inicia los servicios:
Abre dos ventanas de terminal y ejecuta:
# Terminal 1 - Backendcd worklenz-backendnpm run dev:all
# Terminal 2 - Frontendcd worklenz-frontendnpm run devAccede a la aplicacion en http://localhost:5000.
Despliegue en produccion
Configuracion rapida para produccion
git clone https://github.com/Worklenz/worklenz.gitcd worklenz./quick-setup.sh# Ingresa tu dominio de produccion cuando se solicite (ej. worklenz.ejemplo.com)Configuracion manual para produccion
1. Configura el archivo de entorno:
cp .env.example .envEdita .env y establece los siguientes valores clave:
DOMAIN=tu-dominio.comVITE_API_URL=https://tu-dominio.comVITE_SOCKET_URL=wss://tu-dominio.comENABLE_SSL=trueLETSENCRYPT_EMAIL=tu-email@dominio.comGenera tambien secretos seguros para DB_PASSWORD, SESSION_SECRET y otras variables sensibles:
openssl rand -hex 322. Apunta el registro DNS A de tu dominio a la IP de tu servidor.
3. Inicia con SSL:
docker compose --profile express --profile ssl up -dAccede a tu instancia en https://tu-dominio.com.
Configuracion
Variables de entorno clave
| Variable | Proposito |
|---|---|
DOMAIN | Tu dominio (usa localhost para pruebas locales) |
DEPLOYMENT_MODE | express (servicios integrados) o advanced (servicios externos) |
STORAGE_PROVIDER | s3 (MinIO o AWS) o azure |
ENABLE_SSL | true o false para SSL/TLS |
BACKUP_RETENTION_DAYS | Dias para retener copias de seguridad (por defecto: 30) |
DB_PASSWORD | Contrasena de PostgreSQL |
SESSION_SECRET | Clave de cifrado de sesion |
Modos de despliegue
Modo Express (por defecto) - incluye PostgreSQL, Redis y MinIO integrados:
docker compose --profile express up -dModo Avanzado - usa servicios externos como AWS S3, Azure Blob Storage o una instancia PostgreSQL externa:
Establece DEPLOYMENT_MODE=advanced en tu archivo .env antes de iniciar.
Configuracion de almacenamiento
Worklenz usa MinIO por defecto para el almacenamiento de archivos, pero soporta multiples backends.
| Proveedor | Detalles |
|---|---|
| MinIO (por defecto) | Compatible con S3, incluido en la configuracion Docker. Consola en http://localhost:9001 (credenciales: minioadmin / minioadmin). Bucket por defecto: worklenz-bucket (creado automaticamente). |
| AWS S3 | Establece STORAGE_PROVIDER=s3 y configura las credenciales AWS en .env. |
| Azure Blob Storage | Establece STORAGE_PROVIDER=azure y configura las credenciales Azure en .env. |
Comandos de gestion
Usa el script manage.sh para gestionar tu instancia de Worklenz:
./manage.sh status # Ver estado de los servicios./manage.sh logs # Ver registros./manage.sh backup # Crear copia de seguridad de la base de datos./manage.sh restore # Restaurar desde una copia de seguridad./manage.sh stop # Detener todos los servicios./manage.sh start # Iniciar todos los servicios./manage.sh ssl # Gestionar certificados SSL./manage.sh upgrade # Actualizar a la ultima version./manage.sh auto-configure # Generar secretos automaticamenteCopias de seguridad
Habilitar copias de seguridad automaticas
docker compose --profile express --profile backup up -dCopia de seguridad y restauracion manual
./manage.sh backup # Crear una copia de seguridad./manage.sh restore # Restaurar desde una copia de seguridadEstablece BACKUP_RETENTION_DAYS en tu archivo .env para controlar durante cuanto tiempo se conservan las copias de seguridad.
Buenas practicas de seguridad
Worklenz incluye varias funciones de seguridad de serie:
- Contenedores sin privilegios de root (todos los servicios se ejecutan como usuarios sin privilegios)
- Aislamiento de red (la red del backend es solo interna)
- Soporte SSL/TLS (Let’s Encrypt para produccion, autofirmado para localhost)
- Limitacion de velocidad en endpoints de API e inicio de sesion
- Cabeceras de seguridad (HSTS, CSP, X-Frame-Options)
- Secretos seguros generados automaticamente
Guias en video
Hay tutoriales en video paso a paso disponibles si prefieres una guia visual:
Licencia
Worklenz se publica bajo la Licencia Publica General Affero de GNU v3 (AGPLv3).
Para documentacion detallada sobre despliegue con Docker, consulta el archivo DOCKER_SETUP.md en el repositorio. Para informar vulnerabilidades de seguridad, contacta a info@worklenz.com.