Instalación
La edición Community de GoodWorkshop funciona como una imagen de contenedor más Postgres, arrancada con Docker Compose. Por planificar y llevar a cabo tus talleres no pagas ninguna licencia, tampoco con uso comercial. Si no quieres mantener un servidor: la GoodWorkshop Cloud es el mismo producto, alojado.
Esta página resume la instalación. La referencia es la sección Installation (on-premise) del README.
Requisitos
Sección titulada «Requisitos»| Qué | Requisito |
|---|---|
| Docker | Docker con Compose v2 (docker compose version), amd64 o arm64 |
| Nombre de host | Un nombre que resuelva públicamente a este servidor |
| Puertos | 80 y 443 libres: Let’s Encrypt necesita ambos para el certificado |
| Base de datos | Nada que hacer: Postgres funciona dentro del stack y no es accesible desde fuera |
| Contraseñas | Nada que hacer: el stack genera él mismo las contraseñas de la base de datos en el primer arranque |
1. Obtener los archivos
Sección titulada «1. Obtener los archivos»Necesitas compose.yaml, Caddyfile y un .env:
git clone https://github.com/roleALPHA/good-workshop.gitcd good-workshopcp .env.example .env2. Elegir la imagen
Sección titulada «2. Elegir la imagen»Las versiones están en GitHub Container Registry. compose.yaml descarga la imagen que indica
GW_VERSION. latest apunta siempre a la versión estable más reciente. Cada versión está
además disponible con su propio número: así te quedas en una versión hasta que actualices tú
mismo. No tienes que compilar nada.
3. Rellenar el .env
Sección titulada «3. Rellenar el .env»Tres valores son obligatorios. Si falta uno, el stack no arranca e indica el valor que falta:
GW_APP_URL=https://workshop.example.com # the address the app is reachable atGW_HOSTNAME=workshop.example.com # the name in the certificate (profile `tls`)GW_VERSION=latest # the newest stable release, or e.g. 0.8.22 to pin oneEl correo puede esperar. Para el primer arranque no necesitas envío de correo: la página de configuración muestra ella misma tu enlace de acceso. Después configuras el envío en la interfaz, en Envío de correo; consulta Envío de correo. Todas las demás variables están en Configuración.
4. Arrancar
Sección titulada «4. Arrancar»docker compose --profile tls up -dOcurre lo siguiente, por orden:
secretsgenera las contraseñas de la base de datos, una por rol.dbarranca.migratecrea los roles, comprueba los datos existentes, aplica las migraciones y configura los tipos de bloque.appsolo arranca cuandomigrateha terminado sin errores.caddyse encarga de los puertos 80 y 443 y obtiene el certificado.
Si todo funciona, responde el healthcheck:
curl -fsS https://workshop.example.com/api/health# {"status":"ok","checks":[{"name":"database","ok":true},{"name":"migrations","ok":true}]}Un 503 no es un fallo, sino la respuesta honesta «este contenedor no puede
servir». checks indica si se debe a la base de datos o al estado de las migraciones.
5. Tomar posesión de la instalación en el navegador
Sección titulada «5. Tomar posesión de la instalación en el navegador»Una instalación nueva se anuncia en el log en cada arranque, hasta que alguien toma posesión de ella:
docker compose logs app This installation has no administrator yet.
https://workshop.example.com/setup Setup key: 7Qb3…
The key is valid until this process restarts.- Abre la dirección
/setupque aparece. - Introduce Nombre, Apellido y Tu dirección de correo.
- Pega la Clave de instalación del log.
- Haz clic en Configurar esta instalación.
Si todavía no hay envío de correo configurado, el enlace de acceso aparece directamente en la página. Vale una sola vez y caduca. Todo lo demás (envío de correo, más personas, branding) lo haces después en la interfaz.
Otras dos vías para el primer admin
Sección titulada «Otras dos vías para el primer admin»Desde la línea de comandos, con una shell en el servidor:
docker compose exec app node scripts/cli.mjs admin create \ --email you@example.com --first-name Anna --last-name BergerEn el primerísimo arranque: pon GW_BOOTSTRAP_ADMIN_EMAIL=you@example.com en el .env antes
de que el stack arranque por primera vez. El enlace aparece entonces en docker compose logs migrate, vale una
hora y se imprime exactamente una vez. Está pensado para instalaciones que monta un script en lugar
de una persona.
Si no encuentras la clave o el enlace, te ayudará Inicio de sesión y enlace de acceso.
Más información
Sección titulada «Más información»- Configuración: todas las variables importantes
- HTTPS y proxy inverso: sin Caddy o detrás de tu propio proxy
- Actualizar y hacer copias de seguridad: actualizaciones y copias de seguridad
- Protección de datos: lo que debes saber como responsable de la instalación