CLI
Referencia de exyonq (producto) y exyonqctl (control). El texto de uso está tomado de la salida real de --help del binario 0.9.0; no hay opciones imaginarias.
exyonq
Usage: exyonq <COMMAND>
Commands:
serve Run the HTTP server from native IR (TOML) or Serverfile (.exy)
validate Validate native IR (TOML)
compile Compile Serverfile (.exy) to IR TOML
migrate-config Migrate IR v1 TOML to v2
fmt Format a Serverfile
explain Explain a Serverfile directive
export-schema Export JSON Schema for IR
spike Run the Fase 0 HTTP reverse-proxy spike
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
exyonq --version imprime la identidad del artefacto: exyonq 0.9.0, más product_version, artifact_version, source_revision, target, profile y allocator.
| Comando | Uso |
|---|---|
serve | exyonq serve --config <CONFIG> |
validate | exyonq validate --config <CONFIG> |
compile | exyonq compile [OPTIONS] <INPUT> |
migrate-config | exyonq migrate-config --config <CONFIG> --output <OUTPUT> |
fmt | exyonq fmt [OPTIONS] <INPUT> |
explain | exyonq explain <DIRECTIVE> |
export-schema | exyonq export-schema --output <OUTPUT> |
spike | exyonq spike [--listen <LISTEN>] [--upstream <UPSTREAM>] |
serve
Arranca el servidor desde IR nativo (TOML) o desde un Serverfile (.exy), que compila al vuelo. Es el comando que ejecuta systemd. Sin --config (-c) no hace nada: no hay ruta por defecto.
exyonq serve -c /etc/exyonq/https.toml
validate
Parsea y valida el IR. Código 0 con config OK: <ruta>; código 1 con un diagnóstico error[EXY-CONFIG-…]. No compila el plan de ejecución ni abre sockets.
compile
Traduce un Serverfile .exy a IR TOML. Opciones: -o/--output (escribe fichero e informa wrote …), --check (valida sin escribir) y --profile <dev|edge|lb>. Sin -o, el TOML sale por la salida estándar.
exyonq compile site.exy -o site.toml
exyonq migrate-config -c site.toml -o site.v2.toml
fmt
Reformatea un Serverfile: sangría de cuatro espacios, una directiva por línea y normalización de valores (ratelimit 100 burst 200 pasa a ratelimit 100r/s burst 200). Sin -w imprime; con -w/--write reescribe el fichero.
explain
Explica un término público del lenguaje: significado, superficie, tabla del IR, obligatoriedad, valores admitidos y códigos de diagnóstico. Términos disponibles: listener, site, route, upstream, module, backend, http3_listen, pools_fcgi, htaccess, config_version, policy, proxy, root, index, metrics, compression, ratelimit, timeout.
$ exyonq explain upstream
public_term = upstream
meaning = Named HTTP/1.1 upstream target for reverse proxy.
surface = .exy proxy directive or [[upstream]]
ir_mapping = [[upstream]]
required = false
default = timeout_ms=30000
allowed_values = ["http:// URI"]
related_codes = ["EXY-CONFIG-0004"]
documentation = ["docs/architecture/p1.4-config-defaults-matrix.md"]
migrate-config
Migra IR v1 a v2: añade config_version = 2 y materializa los valores que la v1 dejaba implícitos (timeout_ms = 30000 en un upstream sin timeout). Responde migrated v1.toml -> v2.toml y no toca la entrada.
export-schema
Escribe el JSON Schema del IR. Útil para autocompletar en el editor y para validar TOML generado por herramientas.
exyonq export-schema -o exyonq-ir.schema.json
spike
Banco de pruebas del proxy inverso de la fase 0, con --listen (por defecto 127.0.0.1:8080) y --upstream (por defecto http://127.0.0.1:9000). No lee configuración y no se usa en producción.
validate,compile,fmtyexplainavisan de que son comandos transitorios y recomiendanexyonqctl config lint,config test,config formatyconfig explain. Siguen funcionando, pero la superficie recomendada es la deexyonqctl.
exyonqctl
Usage: exyonqctl [COMMAND]
Commands:
reload Reload config from disk into a running server
status Show live generation and config fingerprint
drain Stop accepting new connections; let in-flight requests finish
shutdown Drain and request graceful process shutdown
purge Authenticated FPC cache purge (dedicated purge socket — WC3)
server AP-01: balancer member table (list/set without reload)
cache FPC observability (Q-04 / ADR-057): stats + explain
config Offline configuration utilities
| Comando | Uso y efecto |
|---|---|
reload | reload -c <config> -s <socket>: publica la configuración del fichero en el proceso vivo |
status | status [-s <socket>] [--format human o json]: process_state, generation, fingerprint, uptime_s, active_connections, draining, reload_in_progress |
drain | drain [-s <socket>] [--format human o json]: deja de aceptar conexiones nuevas y espera a las vivas |
shutdown | shutdown [-s <socket>]: drena y pide la parada ordenada |
purge | purga autenticada de una entrada por URL, sitio, generación o etiqueta; socket y token por -s/--token o por entorno |
cache | cache stats, cache explain: contadores y explicación offline de hit/miss/bypass |
server | Tabla de miembros del balanceador: listar y cambiar sin recargar |
purge url pide la identidad completa: <SITE_ID> <SCHEME> <HOST> <PATH> y, opcionalmente, --query.
exyonqctl purge url -s /run/exyonq/purge.sock --token "$TOKEN" exyonq https exyonq.dev /
exyonqctl purge site -s /run/exyonq/purge.sock --token "$TOKEN" exyonq
exyonqctl config
| Subcomando | Efecto |
|---|---|
lint / check | Parsea y valida; no compila el plan |
dump-ir | Imprime el IR canónico en TOML o JSON |
test | Valida y compila el plan en memoria, sin abrir listeners |
explain | Léxico público o procedencia de un valor efectivo |
format | Formatea un Serverfile (solo .exy) |
profile | Perfiles de producto: static, proxy, php, wordpress, websocket, sse, tls-h2 |
reload | Preflight, diff y recarga estructural en vivo |
status / generation | Generación viva, huella y banderas de recarga |
migrate-nginx | Importa configuración de NGINX al IR (offline) |
htaccess | Utilidades de la capa .htaccess |
lint, check y test aceptan la ruta como posicional o con --config <ruta>, igual que exyonq validate.
config reload <PATH> acepta --check (preflight), --diff (clasifica contra la huella viva, sin publicar), --baseline <IR> y --format human|json. Sin banderas, publica en el proceso indicado por --socket.