API Reference xamal v#0.3.0

Copy Markdown View Source

Modules

Xamal deploys Elixir releases to bare metal servers via SSH.

Application task implementations.

Prints the remote deployment audit log for selected hosts.

Release build and distribution task implementations.

Release lifecycle commands: start, stop, status, version, exec, logs.

Audit log commands. Appends timestamped entries to the audit log.

Base module for building shell commands.

Build commands: mix release, tarball creation, SCP distribution.

Caddy install, config generation, reload, and management commands.

Hook script execution commands.

Deploy lock commands using mkdir-based locking (identical to Kamal).

Commands for pruning old releases.

Server management commands: directory creation, bootstrap.

Systemd service unit management commands.

Main configuration module.

Boot configuration: limit, wait, parallel_roles.

Builder configuration: local/docker/remote build settings.

Caddy reverse proxy configuration.

Environment variable configuration.

Health check configuration for deployment readiness.

Elixir release configuration.

Role configuration.

Parses the servers section of config.

SSH connection configuration.

Validates the configuration.

Runtime deployment context.

High-level deployment orchestration.

Prints application and proxy status for selected hosts.

Inline configuration documentation viewer.

Generates env files for deployment.

HTTP health check polling for deployment readiness.

Deploy lock task implementations.

Prunes old releases on selected hosts.

Removes remote application and Caddy resources.

High-level SSH API for executing commands on remote hosts.

GenServer managing pooled SSH connections.

Host struct and helpers for SSH connections.

Custom SSH key callback that serves key data from memory.

Parallel execution runner with configurable concurrency.

Secret management task implementations.

Loads secrets from .xamal/secrets dotenv files.

Server task implementations.

Shell escaping, sensitive value redaction, and general utilities.

Lists release versions on selected hosts.

Mix Tasks

Boots the application on servers.

Runs a command in the release context.

Disables maintenance mode.

Tails or prints application logs.

Enables maintenance mode.

Lists releases that pruning would remove (read-only preview).

Starts the service on its active port without a full boot.

Stops application services.

Prints the current release version on each host.

Prints the remote deployment audit log.

Builds and uploads the release tarball.

Prints release build configuration.

Uploads the release tarball to target servers.

Builds the release tarball locally.

Prints the resolved Xamal configuration.

Builds, distributes, and boots the release.

Prints application and proxy status.

Prints Xamal configuration documentation.

Opens an interactive remote IEx session on the running release.

Generates Xamal configuration, secrets, and sample hooks.

Manually acquires the deploy lock.

Releases the deploy lock.

Prints deploy lock status.

Runs the release migrator on the selected hosts.

Removes old releases on selected hosts, keeping the retained count.

Deploys without bootstrapping servers.

Removes remote release and proxy resources.

Rolls back to a previous release version.

Prints a single configured secret value.

Fetches secrets from an external secret store.

Prints configured secrets with sensitive values redacted.

Bootstraps target servers.

Runs a shell command on target servers.

Shows Caddy/proxy logs from the servers.

Bootstraps servers and deploys the release.

Opens an interactive remote shell on the running release.

Prints the installed Xamal version.

Lists release versions on servers.