Contenedor Docker con OpenProject (Guía Docker Compose)
Configura un contenedor Docker con OpenProject para gestionar proyectos de forma eficiente. Este tutorial te ofrece una guía paso a paso para la implementación y administración de tu entorno de trabajo.
¿Qué es OpenProject?
OpenProject es un robusto sistema web open-source para la gestión de proyectos. Permite la colaboración eficiente entre equipos, ofreciendo funcionalidades como gestión de tareas, cronogramas (Gantt), seguimiento de bugs y gestión de costes.
Tiene licencia GNU GPL.
Para saber más visita el enlace de su web
Requisitos y Configuración de Base de Datos
⚠️ Importante: La instalación oficial moderna de OpenProject recomienda encarecidamente PostgreSQL, no MySQL, debido a la naturaleza de su framework (Ruby on Rails).
1. Recomendación: Configuración All-in-One
Para simplificar, usaremos un único archivo docker-compose.yml que lanza OpenProject y configura su conexión a la base de datos interna o a otra base de datos de PostgreSQL que tú definas.
2. Base de Datos (PostgreSQL)
Si usas una base de datos externa (recomendado para producción), asegúrate de tener:
- Base de datos:
openproject - Usuario:
openproject - Contraseña:
password
Script de Ejemplo (en tu servidor PostgreSQL):
CREATE USER openproject WITH PASSWORD 'password';
CREATE DATABASE openproject OWNER openproject;
Creando el contenedor con docker-compose
Creamos un directorio para alojar el fichero.
mkdir -p /opt/openproject
cd /opt/openproject
Fichero docker-compose.yml (Configuración simplificada)
Este ejemplo configura OpenProject para conectar a una base de datos PostgreSQL externa (asumiendo que está en una IP accesible, como 192.168.1.46).
version: "3.3"
services:
openproject:
container_name: openproject
restart: always
# Usar una imagen reciente, o 'latest'
image: openproject/openproject:latest
volumes:
# Datos de la aplicación y configuración
- /srv/openproject/data:/var/openproject/assets
# Almacenamiento de logs
- /srv/openproject/logs:/var/log/supervisor
ports:
- "10081:80" # Mapeo de puertos (Servidor:Contenedor)
environment:
# VARIABLES CRÍTICAS PARA LA CONEXIÓN A LA BASE DE DATOS EXTERNA
DATABASE_URL: 'postgresql://openproject:[email protected]:5432/openproject'
# Configuración recomendada para la autenticación
SESSION_STORE: 'active_record_store'
# Opcional: Configurar la URL pública de la aplicación
# OPENPROJECT_HOST__NAME: 'http://ip-del-servidor:10081'
# SECRET_KEY_BASE: 'random_string_larga_y_unica'
Explicación de Parámetros Clave:
- image: Se usa la imagen oficial reciente de OpenProject.
- ports: Conectamos el puerto 10081 del servidor (host) con el puerto 80 del contenedor (HTTP).
- volumes: Conectamos los directorios del contenedor con los del servidor para la persistencia de datos y logs.
- DATABASE_URL: Esta variable de entorno es crucial para que el contenedor sepa cómo conectarse a tu base de datos de PostgreSQL.
Creación y Arranque
Crear y arrancar el contenedor con el siguiente comando:
docker-compose up -d
Listamos los contenedores Docker y vemos que está arrancando y funcionando:
docker ps
Ahora abrimos un navegador web y probamos a conectarnos:
http://ip-del-servidor:10081