ferrosoft.cli package¶
CLI entry points for the Ferrosoft platform.
Registered in pyproject.toml under [project.scripts]:
platform-server—ferrosoft.cli.serverplatform-manage—ferrosoft.cli.manageplatform-dumpconfig—ferrosoft.cli.dumpconfig
Submodules¶
ferrosoft.cli.dumpconfig module¶
platform-dumpconfig — print the resolved Ferrosoft configuration.
Reads and merges all YAML config files listed in the FERROSOFT_CONFIG
environment variable (colon-separated paths, defaulting to settings.yml),
applies environment-block overrides for the active FERROSOFT_ENV, and
prints the resulting dictionary as YAML to stdout.
Useful for debugging configuration issues or verifying that variable
substitution (@ {env[…]} / @ {settings[…]}) resolves correctly.
ferrosoft.cli.manage module¶
platform-manage — Django management command wrapper.
Thin shim around django.core.management.execute_from_command_line()
that sets the default DJANGO_SETTINGS_MODULE to
ferrosoft.container.settings and configures root logging from the
FERROSOFT_LOG_LEVEL environment variable (defaults to INFO).
Usage:
platform-manage <subcommand> [options]
All standard Django management commands (migrate, shell,
createsuperuser, …) plus any custom commands registered by installed
Ferrosoft apps are available through this entry point.
ferrosoft.cli.server module¶
platform-server — ASGI server launcher for the Ferrosoft platform.
Builds an argument list for either granian (default) or uvicorn and
replaces the current process via os.execvp(), so the chosen server
becomes PID 1-compatible in container deployments.
Network modes¶
- unix (default)
Listen on a Unix-domain socket (
--socket, default/run/platform.sock). Suitable for reverse-proxy setups (nginx, Caddy) where the proxy and app share a filesystem namespace.- tcp
Listen on a TCP address/port (
--address/--port). Suitable for direct exposure or Docker-based deployments where socket sharing is impractical.
CLI synopsis:
platform-server [--impl {granian,uvicorn}]
[-n {unix,tcp}]
[-S SOCKET] [-a ADDRESS] [-p PORT]
[-w WORKERS] [-R]
- ferrosoft.cli.server.main()[source]¶
Parse CLI arguments and exec the chosen ASGI server process.
This function never returns on success — it calls
os.execvp()to replace the current process with the server binary. On argument error or unsupported--implvalue it exits with a non-zero status code.