Files
fn_registry/functions/infra/systemd_generate_unit.md
T
egutierrez f21664e052 feat: funciones Go de deploy — systemd, VPS setup, deploy remoto
Nuevas funciones infra para deploy sin Docker: generación de units
systemd (pura), instalación/restart/status de servicios remotos via
SSH, setup inicial de VPS (crear dirs, usuario, permisos), y pipelines
de deploy completo (setup_vps_app, deploy_app_remote). Incluye tipo
DeployConfig con la configuración de deploy por app.
2026-04-12 17:29:52 +02:00

1.5 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
systemd_generate_unit function go infra 1.0.0 pure func SystemdGenerateUnit(name, execStart, workDir, user string, env map[string]string) string Genera el texto de un archivo .service de systemd para una app. Incluye restart automático y env vars en orden determinista.
systemd
unit
service
generate
deploy
false
fmt
sort
strings
name desc
name nombre del servicio (aparece en Description)
name desc
execStart comando completo para arrancar la app (ruta absoluta al binario + args)
name desc
workDir directorio de trabajo del servicio (vacío para omitir)
name desc
user usuario del sistema bajo el que corre el servicio (vacío para omitir)
name desc
env variables de entorno key=value para el servicio
texto completo del archivo .service listo para escribir a /etc/systemd/system/ false
functions/infra/systemd_generate_unit.go

Ejemplo

unit := SystemdGenerateUnit(
    "dag_engine",
    "/opt/apps/dag_engine/dag_engine",
    "/opt/apps/dag_engine",
    "deploy",
    map[string]string{"PORT": "8080", "DB_PATH": "/opt/apps/dag_engine/data/ops.db"},
)
fmt.Println(unit)

Notas

Función pura sin I/O. Las env vars se ordenan alfabéticamente para output determinista. Genera un unit con Restart=on-failure y RestartSec=5.