CLI tool for managing Docker services with automatic reverse proxying and SSL termination.
curl -fsSL https://raw.githubusercontent.com/elliottstorey/foundation/main/install.sh | bashOr build from source:
uv sync
uv run pyinstaller --onefile src/foundation.py$ foundation [OPTIONS] COMMAND [ARGS]...Options:
--install-completion: Install completion for the current shell.--show-completion: Show completion for the current shell, to copy it or customize the installation.--help: Show this message and exit.
Commands:
init: Install all dependencies and start the...status: View the status, uptime, and URLs of all...create: Add a new service from a Git repo or...delete: Permanently remove a service and its...deploy: Build and start services.
Install all dependencies and start the reverse proxy.
Usage:
$ foundation init [OPTIONS]Options:
--default-email TEXT: Default email address used for Let's Encrypt SSL registration. [required]--help: Show this message and exit.
View the status, uptime, and URLs of all services.
Usage:
$ foundation status [OPTIONS]Options:
--help: Show this message and exit.
Add a new service from a Git repo or Docker image.
Usage:
$ foundation create [OPTIONS] NAMEArguments:
NAME: Name of the service to create. [required]
Options:
--repo, --image TEXT: Git repository or Docker image. [required]--domain TEXT: The public domain name to proxy to this service.--internal-port INTEGER: The internal container port to be proxied.--email TEXT: Email address used for Let's Encrypt SSL registration.-e, --env KEY=VALUE: Environment variables to pass into the service container.-v, --volume VOLUME:PATH: Volume mappings to pass into the service container.--restart [no|always|on-failure|unless-stopped]: Restart policy for the service. [default: unless-stopped]--gpu: Enable NVIDIA GPU access for the service container.--help: Show this message and exit.
Permanently remove a service and its configuration.
Usage:
$ foundation delete [OPTIONS] NAMEArguments:
NAME: Name of the service to delete. [required]
Options:
--help: Show this message and exit.
Build and start services. Use this to apply changes.
Usage:
$ foundation deploy [OPTIONS] [NAME]Arguments:
[NAME]: Name of the service to deploy.
Options:
--report-success / --no-report-success: [default: report-success]--help: Show this message and exit.