Contenedor Docker con OpenProject (Guía Docker Compose)

Contenedor Docker con OpenProject (Guía Docker Compose)
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