appaloft/Appaloft Deploy
Run an Appaloft deployment from GitHub Actions through pure SSH CLI mode or self-hosted server API mode.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit May 9, 2026
- License
- Apache 2.0
Pinned Snippet
uses: appaloft/deploy-action@92f609f90fd5a812e0146e24f5f2603caffbaf37 # v1.1.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| command | Wrapper command to run. Use deploy for deployments, preview-cleanup for pull request cleanup, or install-console to install or upgrade a self-hosted console over SSH. | no | deploy |
| version | Appaloft release tag, for example v0.9.0. Use latest for the latest stable release. | no | latest |
| config | Optional Appaloft config path. When omitted, appaloft.yml is used only if it exists. | no | "" |
| source | Source path or locator passed to appaloft deploy. | no | . |
| runtime-name | Trusted runtime name override. | no | "" |
| ssh-host | SSH target host for pure SSH deployments. | no | "" |
| ssh-user | SSH username. | no | "" |
| ssh-port | SSH port. | no | "" |
| ssh-private-key | SSH private key value. Written to a runner temp file before invoking Appaloft. | no | "" |
| ssh-private-key-file | Existing runner-local SSH private key file. | no | "" |
| console-url | Public self-hosted console origin configured during command=install-console. Defaults to https://<console-domain> or http://<ssh-host>:<console-http-port>. | no | "" |
| console-domain | Public self-hosted console domain used to derive https://<domain> when console-url is empty. | no | "" |
| console-database | Self-hosted console database backend for command=install-console. Defaults to controlPlane.install.database or postgres. | no | "" |
| console-orchestrator | Self-hosted console Docker orchestrator for command=install-console. Defaults to controlPlane.install.orchestrator or compose. | no | "" |
| console-proxy | Managed self-hosted proxy for command=install-console. Defaults to controlPlane.install.proxy or traefik. | no | "" |
| console-http-host | Host bind address passed to the self-hosted console installer. Defaults to controlPlane.install.httpHost or 0.0.0.0. | no | "" |
| console-http-port | Host HTTP port passed to the self-hosted console installer. Defaults to controlPlane.install.httpPort or 3721. | no | "" |
| console-install-dir | Remote install directory passed to the self-hosted console installer. Defaults to the installer default. | no | "" |
| console-compose-project-name | Docker Compose project name passed to the self-hosted console installer. Defaults to controlPlane.install.composeProjectName or appaloft. | no | "" |
| console-swarm-stack-name | Docker Swarm stack name passed to the self-hosted console installer. Defaults to controlPlane.install.swarmStackName or appaloft. | no | "" |
| console-swarm-init | Initialize a single-node Swarm manager on the SSH host when command=install-console and console-orchestrator=swarm. Defaults to controlPlane.install.swarmInit or false. | no | "" |
| console-swarm-advertise-addr | Optional advertise address passed to docker swarm init for command=install-console. | no | "" |
| console-image | Appaloft console image repository or full image reference passed to the self-hosted console installer. Defaults to controlPlane.install.image or ghcr.io/appaloft/appaloft. | no | "" |
| console-installer-url | Override URL for the self-hosted install.sh script used by command=install-console. | no | "" |
| console-skip-docker-install | Require Docker Engine to already exist on the SSH host when command=install-console. Defaults to controlPlane.install.skipDockerInstall or false. | no | "" |
| server-provider | Server provider key. | no | generic-ssh |
| server-proxy-kind | Server proxy kind. | no | "" |
| state-backend | Appaloft state backend. Defaults to ssh-pglite when ssh-host is supplied. | no | "" |
| environment-variables | Newline-separated environment variables passed as repeated CLI --env values in pure CLI mode, or transient preview env values for server-config-deploy. | no | "" |
| secret-variables | Newline-separated secret variables passed as repeated CLI --secret values in pure CLI mode, or resolved as ci-env secrets for server-config-deploy. | no | "" |
| preview | Preview mode. The first accepted value is pull-request. | no | "" |
| preview-id | Trusted preview scope, for example pr-123. | no | "" |
| preview-domain-template | Trusted preview hostname template rendered by the workflow or action. | no | "" |
| preview-tls-mode | Preview TLS mode for preview-domain-template. | no | "" |
| require-preview-url | Fail when no public preview URL is resolved. | no | false |
| pr-comment | Post or update a pull request comment with preview, deployment, cleanup, and console links. | no | false |
| github-token | GitHub token used only when pr-comment is true. The workflow must grant pull-requests: write or issues: write. | no | "" |
| control-plane-mode | Control-plane mode. Use none for pure SSH CLI mode or self-hosted for server API mode. | no | "" |
| control-plane-url | Self-hosted Appaloft server endpoint for server API mode. | no | "" |
| appaloft-token | Optional bearer token for self-hosted Appaloft server API mode. | no | "" |
| use-oidc | Future GitHub OIDC exchange toggle. Not yet supported. | no | false |
| server-config-deploy | Experimental self-hosted server config deploy mode. Requires server-side source package and config bootstrap support. | no | false |
| project-id | Trusted Appaloft project id for self-hosted server API mode. Defaults to controlPlane.deploymentContext.projectId from config. | no | "" |
| environment-id | Trusted Appaloft environment id for self-hosted server API mode. Defaults to controlPlane.deploymentContext.environmentId from config. | no | "" |
| resource-id | Trusted Appaloft resource id for self-hosted server API mode. Defaults to controlPlane.deploymentContext.resourceId from config. | no | "" |
| server-id | Trusted Appaloft deployment target id for self-hosted server API mode. Defaults to controlPlane.deploymentContext.serverId from config. | no | "" |
| destination-id | Optional trusted Appaloft destination id for self-hosted server API mode. Defaults to controlPlane.deploymentContext.destinationId from config. | no | "" |
Outputs
| name | description |
|---|---|
| appaloft-version | Installed Appaloft CLI version. |
| appaloft-target | Installed Appaloft release target. |
| preview-id | Preview id when preview mode is selected. |
| preview-url | Preview URL resolved by the CLI from generated/default access or custom preview route intent. |
| deployment-id | Deployment id accepted by Appaloft. |
| deployment-url | Self-hosted Appaloft console deployment detail URL when available. |
| console-url | Self-hosted Appaloft console URL installed by install-console or used by server API mode. |
| preview-cleanup-status | Preview cleanup status when command is preview-cleanup. |