Compute Factory · Guía
Buenas prácticas
Recibís un Ubuntu LTS con Docker, Git y un usuario propio (sudo + grupo docker). SSH entra por NetBird, no por el puerto 22 público. HTTP público, cuando esté activo, es tu-slug.fwhq.com.ar.
Contenedor vs nativo
Contenedor es el camino recomendado para MySQL, MariaDB, PostgreSQL, Nginx, Redis: Compose no necesita systemd y el upgrade es cambiar el tag.
Nativo (apt) sirve para herramientas y servicios simples. systemctl casi seguro no arranca: no es una VM con systemd. Usá service, el binario, o Docker.
Persistencia
Todo lo que importe va en ~/data (o un volume de Docker montado ahí). Si el contenedor no tiene volume, al recrear el Pod se pierde.
# ~/data/compose.yml
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_PASSWORD: cambia-esto
volumes:
- /home/TUSUARIO/data/pg:/var/lib/postgresql/data
web:
image: nginx:alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- /home/TUSUARIO/data/www:/usr/share/nginx/html:roDocker sin sudo
Tu usuario está en el grupo docker. No hace falta poner Docker en sudoers. La primera sesión SSH después del alta a veces pide re-login para que el grupo aplique.
SSH y usuarios
- Root no inicia sesión. El usuario es el que optaste al contratar.
- Solo clave pública. No repartimos password de root.
- No abras el 22 a internet: el acceso es el peer de NetBird.
Red
- IPv4 + IPv6 en la instancia y en Docker.
- No anuncies la LAN del cluster ni uses la instancia como exit node.
- IPv4 pública extra es add-on; el default es el subdominio FWCORP.
Seguridad mínima
- Passwords de DB distintas del usuario SSH; no las dejes en el compose commiteado a un repo público.
- Nginx o Caddy delante de las apps; no expongas Postgres/MySQL al HTTP público.
- Backups: dump a
~/data/backups. El add-on de snapshot es aparte. - Ubuntu 26.04 LTS es el default; 24.04 y 22.04 quedan por compatibilidad.