impreza_deploy_custom
Deploy a custom (non-catalog) app to an Impreza VPS using one of three modes: public Docker image, Dockerfile build (from local directory or git repo), or a full docker-compose manifest.
Instructions
Deploy a custom (non-catalog) app to an Impreza VPS. Three modes — pick exactly one:
• mode: "image" — public Docker image URL (image: "ghcr.io/user/app:tag").
• mode: "dockerfile" — build from a Dockerfile, sourced from EITHER a local project directory (dir: "/abs/path/to/project"; the MCP tars + uploads it) OR a git repo (git_url). For a private repo set git_auth_method: deploy_key (SSH URL; the response returns git_auth.public_key to add to the repo as a read-only Deploy Key) or pat (https URL + git_pat).
• mode: "manifest" — a full docker-compose manifest object (advanced; same schema as catalog apps).
Always required: name, agent_id. Use impreza_list_servers to find a valid agent_id.
When the customer says "deploy this" with a project open, Dockerfile mode is the right choice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | mode=dockerfile: absolute path to a local project dir (tar+uploaded). Use this OR git_url. | |
| cpus | No | CPU limit (cores; 1.0 = one core). Default 1.0 server-side. | |
| mode | Yes | Source mode. | |
| name | Yes | Per-account-unique deploy name (3-100 chars, [a-z0-9_-]). | |
| vars | No | Environment variables to inject into the container. | |
| image | No | Required when mode=image. Public Docker image reference. | |
| onion | No | Also publish a Tor v3 hidden service. Default false. | |
| domain | No | Public hostname. Omit when `onion: true` for an onion-only deploy. | |
| git_pat | No | Fine-grained, repo-scoped, Contents:Read token (required with git_auth_method=pat). | |
| git_ref | No | Branch / tag / commit for git_url (default main). | |
| git_url | No | mode=dockerfile: git repo instead of a local dir. https (public, or private with git_auth_method=pat) or SSH like git@github.com:owner/repo.git (deploy_key). | |
| agent_id | Yes | Target VPS agent_id (from impreza_list_servers). | |
| manifest | No | Required when mode=manifest. Full app manifest object. | |
| memory_mb | No | Memory limit in MB. Default 512 server-side. | |
| target_port | No | Port the container listens on (default 80). | |
| dockerfile_path | No | Optional Dockerfile path relative to the dir/repo root (default "Dockerfile"). | |
| git_auth_method | No | Private-repo auth for git_url: none (default), deploy_key (SSH), or pat (token). |