Skip to main content

Deployment configuration tool for Octopize Avatar platform

Project description

Octopize Avatar Deployment Tool

octopize-deploy-tool generates the configuration files needed to run the Octopize Avatar platform with Docker Compose. It can also generate component-specific .env files for local development workflows.

Installation

Install the published package:

pip install octopize-deploy-tool

Then verify the CLI is available:

octopize-deploy-tool --help

Docker

If you don't have Python installed, you can use the published Docker image instead.

Interactive mode

Mount a local directory to receive the generated files and pass -it for the interactive prompts:

docker run -it --rm \
  -v "$(pwd)/avatar:/output" \
  quay.io/octopize/deploy-tool:latest deploy --output-dir /output

Non-interactive mode

Provide a config file via the mounted volume:

docker run --rm \
  -v "$(pwd)/avatar:/output" \
  quay.io/octopize/deploy-tool:latest deploy \
    --output-dir /output/config \
    --config /output/config.yaml \
    --non-interactive

Note: Generated files are written by the container's root user. You may need to adjust ownership afterwards with sudo chown -R $(id -u):$(id -g) ./avatar.

Quick Start

Generate a Docker deployment configuration interactively:

octopize-deploy-tool deploy --output-dir /app/avatar

Then start the deployment:

cd /app/avatar
docker compose down --volumes --remove-orphans
docker compose up -d

Commands

The CLI has two explicit subcommands:

octopize-deploy-tool deploy [options]
octopize-deploy-tool generate-env [options]

Running the CLI without a subcommand is not supported.

deploy

Use deploy to generate a full Docker Compose deployment.

Example:

octopize-deploy-tool deploy --output-dir /app/avatar

Common deploy options:

--output-dir DIR           Output directory for generated files
--config FILE              YAML configuration file to load
--non-interactive          Run without prompts, using config/defaults
--template-from PATH       Use a local template directory instead of the default source
--save-config              Save the resolved configuration to deployment-config.yaml
--verbose                  Show detailed progress output
--mode {production,dev}    Generate production or dev deployment assets

generate-env

Use generate-env to create per-component .env files for local development without generating the full deployment bundle.

Example:

octopize-deploy-tool generate-env \
  --component api \
  --api-output-path ./avatar-local/api/.env \
  --component web \
  --web-output-path ./avatar-local/web/.env

Common generate-env options:

--config FILE              YAML configuration file to load
--non-interactive          Run without prompts, using config/defaults
--template-from PATH       Use a local template directory instead of the default source
--verbose                  Show detailed progress output
--component NAME           Generate only the selected component (repeatable; defaults to all)
--api-output-path PATH     Override the API env output path for this run
--web-output-path PATH     Override the web env output path for this run
--python-client-output-path PATH
                           Override the python_client env output path for this run
--output-path COMPONENT=PATH
                           Repeatable generic output-path override
--target NAME              Load named URLs from the environments config section
--api-url URL              Override the API URL
--storage-url URL          Override the storage public URL
--sso-url URL              Override the SSO provider URL

Non-Interactive Usage

You can provide configuration through a YAML file:

PUBLIC_URL: avatar.example.com
ENV_NAME: prod
ORGANIZATION_NAME: MyCompany

Then run:

octopize-deploy-tool deploy \
  --output-dir /app/avatar \
  --config config.yaml \
  --non-interactive

Generated Files

The deploy command typically writes:

/app/avatar/
├── .env
├── docker-compose.yml
├── nginx/nginx.conf
├── authentik/
│   ├── octopize-avatar-blueprint.yaml
│   ├── custom-templates/
│   └── branding/
└── .secrets/

The generate-env command writes component env files directly to their resolved destinations, for example:

./avatar-local/
├── api/.env
└── web/.env

Typical Deployment Workflow

  1. Generate configuration:

    octopize-deploy-tool deploy --output-dir /app/avatar
    
  2. Review the generated files:

    cd /app/avatar
    cat .env
    ls -la .secrets/
    
  3. Add any required TLS certificates for production.

  4. Start the services:

    docker compose up -d
    
  5. Verify the deployment:

    docker compose ps
    docker compose logs -f
    

Troubleshooting

Templates fail to download or validate

Retry with verbose output:

octopize-deploy-tool deploy --output-dir /app/avatar --verbose

Existing containers cause bind-mount or startup issues

Clean up old containers and volumes before retrying:

docker compose down --volumes --remove-orphans
docker compose up -d

Further Information

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octopize_deploy_tool-1.6.2.tar.gz (403.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octopize_deploy_tool-1.6.2-py3-none-any.whl (61.0 kB view details)

Uploaded Python 3

File details

Details for the file octopize_deploy_tool-1.6.2.tar.gz.

File metadata

  • Download URL: octopize_deploy_tool-1.6.2.tar.gz
  • Upload date:
  • Size: 403.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for octopize_deploy_tool-1.6.2.tar.gz
Algorithm Hash digest
SHA256 22ef5c3992d39ad6a1a1a9a46b2845131182327a2b057850fe6944832ba6c9a7
MD5 ea1502130f353a127d5a793203301a63
BLAKE2b-256 f86519d97b05490b488c2f078c72f442c7ffc27fe1966dd02924552808111cec

See more details on using hashes here.

File details

Details for the file octopize_deploy_tool-1.6.2-py3-none-any.whl.

File metadata

  • Download URL: octopize_deploy_tool-1.6.2-py3-none-any.whl
  • Upload date:
  • Size: 61.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for octopize_deploy_tool-1.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 46b5af64a9a5993dbd55ea9b6ef365f573f4480d29f0e1a311c7ca8880c66fc9
MD5 2aabb412a0969ec6b2004dfd9fcf678d
BLAKE2b-256 1123b8b565e5234fe0ff35d640863775d77374e662f2aedc55233cdf3095a1ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page