Iniciar sesión
Selfhost

Worklenz Docker Guide - The Agency Guide to Secure Self-Hosting

Chamika Jayasri
#Selfhost#Docker#WorklenzGuide
Worklenz Docker Guide

Guia Docker de Worklenz

La gestion eficiente de proyectos comienza con herramientas que no solo son potentes, sino tambien faciles de implementar. Docker, una plataforma lider para la implementacion de aplicaciones en contenedores, esta transformando la forma en que las empresas gestionan las instalaciones de software. Al simplificar configuraciones complejas y garantizar la consistencia en diferentes entornos, Docker se ha convertido en una herramienta esencial para los equipos modernos.

Para Worklenz, Docker ofrece una experiencia de implementacion sin problemas adaptada a las necesidades tanto de las startups como de las empresas. Con su portabilidad, escalabilidad y eficiente gestion de recursos, Docker elimina los desafios de las instalaciones tradicionales, permitiendo a los equipos centrarse en lo que realmente importa: lograr el exito del proyecto.

Descubre como la implementacion de Worklenz con Docker puede elevar la eficiencia de tu equipo y simplificar tus operaciones de TI.

Quien deberia usar esto?

Si eres una startup con conocimientos tecnicos, una empresa en crecimiento o una empresa que busca una solucion de gestion de tareas escalable y rentable, el autoalojamiento de Worklenz con Docker es un cambio de juego. Con control total sobre tus datos, escalabilidad perfecta y flexibilidad, la implementacion con Docker es ideal para equipos que quieren una plataforma de gestion de tareas robusta y segura sin depender de alojamiento de terceros.


Tabla de Contenidos


Lo que Necesitas

Antes de comenzar, asegurate de tener lo siguiente:

  • Docker - Para la contenedorizacion
  • Docker Compose - Para gestionar multiples servicios
  • Git (recomendado) - Para clonar el repositorio
  • Acceso a Internet para descargar los archivos necesarios
  • Conocimientos basicos para abrir un terminal (Simbolo del sistema o equivalente)

Si Docker aun no esta instalado, sigue esta guia para configurarlo primero. Si Docker Compose aun no esta instalado, sigue esta guia para configurarlo. Si Git aun no esta instalado, sigue esta guia para configurar Git en tu ordenador.

Requisitos minimos del sistema

  • CPU: 2+ nucleos
  • RAM: 4 GB minimo (8 GB recomendado)
  • Espacio en Disco: 10 GB libres para imagenes y contenedores de Docker

Metodo de Inicio Rapido (Recomendado)

La forma mas rapida de poner en marcha Worklenz es usar el script de configuracion automatizada. Este metodo maneja automaticamente la configuracion del entorno, la configuracion SSL y la inicializacion del servicio.

Paso 1: Clonar el Repositorio

Abre tu terminal y clona el repositorio de Worklenz:

git clone https://github.com/Worklenz/worklenz.git
cd worklenz

Paso 2: Ejecutar el Script de Configuracion Rapida

Ejecuta el script quick-setup que realizara lo siguiente:

  • Crear un archivo .env con secretos de seguridad generados automaticamente
  • Configurar URLs basadas en tu dominio
  • Configurar certificados SSL (autofirmados para localhost, Let’s Encrypt para produccion)
./quick-setup.sh

Paso 3: Iniciar los Servicios

Para el perfil Express predeterminado (PostgreSQL, Redis y MinIO incluidos):

docker compose --profile express up -d

Eso es todo. Tu instancia de Worklenz deberia estar funcionando ahora.


Metodo de Configuracion Manual

Para tener mas control sobre la configuracion, puedes configurar Worklenz manualmente.

Paso 1: Clonar el Repositorio

Opcion 1: Usar Git para Clonar el Repositorio

Abre tu terminal (o Simbolo del sistema, PowerShell o Git Bash) y ejecuta el siguiente comando para clonar el repositorio en tu maquina local:

git clone https://github.com/Worklenz/worklenz.git
cd worklenz

Opcion 2: Descargar los Archivos de la Aplicacion

Si Git no esta instalado, puedes descargar manualmente los archivos. Visita el repositorio de Worklenz, haz clic en el boton “Code” y selecciona “Download ZIP.” Extrae el archivo ZIP descargado y navega hasta la carpeta:

cd worklenz

Paso 2: Preparar el Entorno Docker

Copia el archivo de plantilla de entorno para crear tu archivo .env:

cp .env.template .env

Abre el archivo .env en tu editor de texto preferido y configuralo segun tu entorno. El archivo de plantilla contiene todas las variables necesarias con comentarios que explican para que sirve cada una. Las variables clave a configurar incluyen:

  • Credenciales de base de datos (DB_USER, DB_PASSWORD, DB_NAME)
  • Secretos de seguridad (SESSION_SECRET, COOKIE_SECRET, JWT_SECRET)
  • Servicios opcionales (Google OAuth, AWS S3, webhooks de Slack)

Consulta el archivo .env.template en el repositorio para obtener la lista completa de opciones de configuracion disponibles.

Paso 3: Construir e Iniciar Contenedores

Asegurate de que tu motor Docker este en ejecucion y luego usa Docker Compose para construir e iniciar los contenedores:

docker compose --profile express up -d

Este comando realizara lo siguiente:

  • Construir las imagenes Docker si no existen
  • Iniciar todos los contenedores (base de datos, Redis, MinIO, backend, frontend) en modo desacoplado (-d)
  • Asegurar que todos los servicios necesarios esten en ejecucion

Detener Contenedores

Para detener todos los contenedores en ejecucion:

docker compose down

Para detener contenedores y eliminar volumenes (cuidado - esto eliminara los datos):

docker compose down -v

Perfiles de Implementacion

Worklenz admite diferentes perfiles de implementacion para diferentes casos de uso:

Modo Express (Predeterminado - Recomendado)

Incluye PostgreSQL, Redis y MinIO en una sola configuracion. Mejor para la mayoria de las implementaciones:

docker compose --profile express up -d

Modo Avanzado

Permite usar servicios externos como AWS S3 o Azure Blob Storage en lugar de MinIO. Configura tus credenciales de almacenamiento en la nube en .env y ejecuta:

docker compose up -d

Gestionar tu Implementacion

Usa el script manage.sh para operaciones comunes:

# Verificar el estado de todos los servicios
./manage.sh status

# Ver registros
./manage.sh logs

# Crear una copia de seguridad
./manage.sh backup

# Gestionar certificados SSL
./manage.sh ssl

Acceder a la Aplicacion

Una vez que los contenedores esten en ejecucion, puedes acceder a Worklenz a traves de las siguientes URLs:

  • Frontend (Aplicacion Web): http://localhost o https://localhost (si SSL esta configurado)
  • API Backend: http://localhost:3000
  • Consola de Almacenamiento MinIO: http://localhost:9001
    • Credenciales predeterminadas: minioadmin / minioadmin

Nota: Para implementaciones en produccion, configura nombres de dominio adecuados y certificados SSL para un acceso seguro.


Solucionar Problemas Comunes

Al configurar Worklenz con Docker, es posible que encuentres algunos problemas comunes. Aqui hay algunas soluciones:

Problema 1: Los Contenedores No Inician

Solucion para Linux/macOS: Comprueba los registros del contenedor Docker para detectar cualquier error:

docker compose logs

Si ves errores relacionados con variables de entorno faltantes u otros problemas, asegurate de que tu archivo .env este correctamente configurado y todos los campos necesarios esten llenos.

Tambien puedes comprobar si hay algun servicio en conflicto o puertos en uso:

sudo lsof -i :3000

Si el puerto 3000 esta en uso, detiene el proceso que lo utiliza:

sudo kill -9 <PID>

Reinicia los contenedores Docker:

docker compose down
docker compose up -d

Solucion para Windows:

Comprueba los registros del contenedor Docker para detectar cualquier error:

docker compose logs

Si ves errores relacionados con variables de entorno faltantes u otros problemas, verifica tu archivo .env.

Para comprobar si el puerto 3000 esta en uso, ejecuta:

netstat -ano | findstr :3000

Encuentra el PID en la salida y detiene el proceso usando:

taskkill /PID <PID> /F

Reinicia los contenedores Docker:

docker compose down
docker compose up -d

Problema 2: Problemas de Conexion a la Base de Datos

Solucion para Linux/macOS:

Asegurate de que el contenedor de la base de datos este en funcionamiento:

docker ps

Comprueba la configuracion de la base de datos en tu archivo .env, especialmente:

  • DB_HOST (deberia ser postgres para Docker)
  • DB_USER
  • DB_PASSWORD

Si el contenedor de la base de datos no esta funcionando, intenta reiniciarlo:

docker compose down
docker compose up -d

Solucion para Windows:

Comprueba si el contenedor de la base de datos esta en funcionamiento:

docker ps

Verifica la configuracion de la base de datos en tu archivo .env.

Reinicia los contenedores si es necesario:

docker compose down
docker compose up -d

Problema 3: Puerto ya en Uso

Solucion para Linux/macOS:

Si recibes un error que indica que un puerto ya esta en uso (por ejemplo, el puerto 3000), puedes encontrar el proceso que utiliza el puerto:

sudo lsof -i :3000

Si un proceso esta utilizando el puerto, terminalo con:

sudo kill -9 <PID>

Alternativamente, puedes cambiar el puerto en tu archivo .env y reiniciar los contenedores.

Solucion para Windows:

Comprueba si el puerto 3000 esta en uso:

netstat -ano | findstr :3000

Encuentra el PID en la salida, luego termina el proceso:

taskkill /PID <PID> /F

Tambien puedes cambiar el puerto en tu archivo .env y reiniciar los contenedores.

Problema 4: Problemas de Permisos con los Archivos

Solucion para Linux/macOS:

Si encuentras errores de permisos, asegurate de que los archivos y directorios necesarios sean accesibles por Docker. Comprueba los permisos de los archivos:

ls -l

Ajusta los permisos de los archivos usando:

sudo chmod -R 755 <directorio>

Solucion para Windows:

Si encuentras errores de permisos, asegurate de que Docker Desktop tenga acceso a los directorios necesarios. Haz clic con el boton derecho en la carpeta, selecciona Propiedades y ve a la pestana Seguridad para comprobar los permisos.

Problema 5: Rendimiento Lento o Errores de Tiempo de Espera

Solucion:

Si Docker se esta ejecutando lentamente, asegurate de que tu maquina tenga recursos suficientes (CPU, RAM, espacio en disco). Ajusta la asignacion de recursos de Docker Desktop:

  • Windows/macOS: Abre Docker Desktop > Configuracion > Recursos y aumenta la asignacion de memoria y CPU
  • Linux: Configura los ajustes del daemon de Docker para asignar mas recursos

Considera aumentar la memoria asignada a al menos 4 GB para un funcionamiento fluido.

Problema 6: No se Puede Acceder a la Aplicacion en el Navegador

Solucion:

Asegurate de que los contenedores esten en ejecucion:

docker ps

Comprueba que tu firewall permita el acceso a los puertos requeridos. Intenta acceder a:

  • Frontend: http://localhost
  • API Backend: http://localhost:3000

Si accedes desde una maquina remota, configura tu firewall para permitir el trafico en estos puertos.

Notas Adicionales

  • Actualizar Imagenes Docker:

Para asegurarte de que estas utilizando las ultimas versiones de las imagenes Docker, puedes descargar las ultimas versiones antes de construir los contenedores:

docker compose pull
docker compose up -d
  • Hacer Copias de Seguridad de tus Datos:

Si tu configuracion de Docker utiliza volumenes para el almacenamiento de datos persistente (por ejemplo, para bases de datos), asegurate de hacer copias de seguridad de tus datos regularmente. Puedes usar el script manage.sh:

./manage.sh backup

O hacer copias de seguridad de volumenes manualmente:

docker run --rm -v worklenz_db_volume:/data -v $(pwd):/backup ubuntu tar czf /backup/db_backup.tar.gz /data
  • Asignacion de Recursos Docker:

Ajusta la asignacion de recursos (CPU y memoria) en la configuracion de Docker Desktop (Windows/Mac) o mediante las configuraciones del Daemon de Docker (Linux) para garantizar un funcionamiento fluido de la aplicacion.

  • Actualizar Dependencias:

Si las dependencias de la aplicacion estan desactualizadas, considera actualizarlas. Para aplicaciones Node.js, las dependencias dentro de los contenedores se pueden actualizar usando gestores de paquetes (npm, yarn, etc.).

  • Limpiar Recursos No Utilizados:

Para liberar espacio en disco, elimina periodicamente los objetos de Docker no utilizados:

docker system prune -a
Ten cuidado! Este comando eliminara imagenes y volumenes no utilizados, lo que puede resultar en la perdida de cualquier dato no guardado. Asegurate siempre de haber hecho una copia de seguridad de los datos importantes antes de ejecutar este comando.
  • Puertos Personalizados:

Si necesitas ejecutar multiples instancias de Worklenz en la misma maquina, modifica los puertos en el archivo docker-compose.yml para evitar conflictos. Por ejemplo, cambia el puerto 3000 a 3100 para el backend.

  • Monitorear Registros:

Para monitorear los registros del contenedor en tiempo real para depuracion, usa:

docker compose logs -f
  • Configuracion SSL/HTTPS:

Para implementaciones en produccion, configura certificados SSL adecuados. Usa el script manage.sh para gestionar SSL:

./manage.sh ssl

Para la integracion con Let’s Encrypt, sigue el asistente de configuracion para configurar HTTPS automaticamente.

Conclusion: Simplifica tu Implementacion con Docker

La implementacion de Worklenz con Docker agiliza el proceso de implementacion, eliminando las complejidades de los metodos de instalacion tradicionales. Con el script automatizado quick-setup.sh y Docker Compose, puedes tener una instancia de Worklenz completamente funcional y lista para produccion en ejecucion en solo unos pocos comandos.

Ya sea que elijas el metodo de configuracion rapida por su simplicidad o el metodo manual para mayor control, Docker proporciona la flexibilidad y confiabilidad necesarias para la gestion moderna de proyectos. Con escalado facil, gestion eficiente de recursos y la capacidad de usar diferentes perfiles de implementacion (Modo Express con MinIO o Modo Avanzado con almacenamiento en la nube externo), las implementaciones de Docker funcionan para startups, equipos en crecimiento y empresas por igual.

El script manage.sh proporciona facil acceso a operaciones comunes como verificar el estado, ver registros, gestionar copias de seguridad y configurar certificados SSL.

Listo para Comenzar?

No dejes que los desafios de implementacion te frenen. Aqui esta tu inicio rapido:

  1. Clonar el repositorio: git clone https://github.com/Worklenz/worklenz.git
  2. Ejecutar la configuracion: ./quick-setup.sh
  3. Iniciar los servicios: docker compose --profile express up -d
  4. Acceder a tu instancia: http://localhost

Da el primer paso hacia una experiencia de gestion de proyectos mas fluida y eficiente. Descarga Worklenz desde nuestro repositorio de GitHub hoy y comienza tu camino hacia una mayor productividad.

Necesitas ayuda? Nuestro equipo esta aqui para ti. Contactanos para cualquier asistencia o consulta, o consulta la documentacion oficial para mas detalles. Tambien puedes unirte a nuestra comunidad de Discord para soporte en tiempo real y discusiones con otros usuarios de Worklenz.