Montar la instalación de un cliente
Cada cliente estrena su propia copia de la aplicación. No se comparte nada entre clientes: ni base de datos, ni ficheros, ni red.
1. Preparar la carpeta
Sección titulada «1. Preparar la carpeta»Se crea una carpeta por cliente con el mismo contenido base: el compose.yaml, la plantilla de
variables y el código. Lo único que cambia es el fichero .env.
La variable que lo distingue todo es CLIENTE. Con ella, los contenedores se llaman
<cliente>-api y <cliente>-db, los volúmenes <cliente>-pgdata y <cliente>-archivos, y la
red <cliente>-net. Sin ella, todo se llamaría organtia y dos clientes chocarían.
2. Las variables que hay que tocar
Sección titulada «2. Las variables que hay que tocar»| Variable | Para qué | Ejemplo |
|---|---|---|
CLIENTE |
Nombre corto del cliente: da nombre a contenedores, volúmenes y red | acme |
RED_SUBNET |
Subred propia de esa instalación (dos instalaciones no pueden compartirla) | 10.99.43.0/24 |
API_PORT |
Puerto local donde escucha la api (solo en loopback) | 18012 |
DB_PORT_HOST |
Puerto local de PostgreSQL para las pruebas | 54330 |
DB_NAME, POSTGRES_USER, POSTGRES_PASSWORD |
Base de datos de ese cliente | — |
ACCESO_CLAVE |
Contraseña inicial de la puerta de la oficina | — |
ACCESO_DIAS |
Días que dura la sesión antes de volver a pedir contraseña | 7 |
TZ |
Zona horaria de la instalación y de sus crones | Europe/Madrid |
MARCA, CLIENTE |
Nombre que aparece en la interfaz | Acme |
3. Levantar
Sección titulada «3. Levantar»Se construye la imagen una vez y se arranca. La misma imagen sirve para todos los clientes: lo que cambia es la configuración.
Al primer arranque se crean las tablas, se aplican las migraciones y se crea el usuario
propietario con la contraseña de ACCESO_CLAVE.
4. El subdominio
Sección titulada «4. El subdominio»Cada cliente tiene su dirección, del tipo nombre_cliente.organtia.com. En el proxy se añade
un bloque que:
- Escucha ese nombre.
- Pide el certificado HTTPS automáticamente.
- Reenvía a la api de esa instalación, en su puerto local.
Nada más se publica: la base de datos y los ficheros no tienen puerta a internet.
5. Comprobar que está bien
Sección titulada «5. Comprobar que está bien»- Abrir la dirección y entrar con el usuario propietario.
- Comprobar que la oficina tiene a la plantilla sentada.
- Pedir un encargo pequeño y ver que se entrega.
- Mirar el registro: la entrada de acceso y el encargo deben estar.
Actualizar una instalación
Sección titulada «Actualizar una instalación»Se reconstruye la imagen de la api y se levanta de nuevo. Las migraciones pendientes se aplican solas. Las pruebas se pasan antes, en un contenedor aparte, contra una base de datos desechable.
Lo que no hace la aplicación
Sección titulada «Lo que no hace la aplicación»- No hace copias de seguridad: las hace el sistema de copias del servidor, a diario, sobre los volúmenes. La aplicación no guarda copias propias.
- No se actualiza sola: las actualizaciones se deciden y se ejecutan a mano.
