Skip to main content

hop3-installer

Installation toolkit for deploying Hop3 to servers and containers.

Overview

hop3-installer provides two main tools:

  • hop3-install: Production installer for end users and sysadmins
  • hop3-deploy-server: Developer tool for deploying during development

The installers use only Python standard library, making them easy to distribute as single-file scripts.

Features

  • Single-file distribution: Bundle into standalone Python scripts
  • No dependencies: Uses only Python stdlib for maximum portability
  • Multiple backends: Deploy to Docker containers or remote servers via SSH
  • Developer workflow: Deploy local code changes for testing

Installation

pip install hop3-installer

Quick Start

Production Installation (hop3-install)

# Install hop3-cli on local machine
hop3-install cli

# Install hop3-server on current machine (run as root)
sudo hop3-install server

# Or use the one-liner
curl -LsSf https://hop3.cloud/install-server.py | sudo python3 -

Developer Deployment (hop3-deploy-server)

# Deploy to remote server
export HOP3_DEV_HOST=server.example.com
hop3-deploy-server

# Deploy with local code changes
hop3-deploy-server --from local

# Deploy to Docker container
hop3-deploy-server --docker

# Clean installation
hop3-deploy-server --clean

Commands

hop3-install

Subcommand Description
cli Install hop3-cli on local machine
server Install hop3-server (requires root)
bundle Generate single-file installers
test Test installers on Docker or SSH targets

hop3-deploy-server

Option Description
--host HOST Target server hostname
--docker Deploy to Docker container
--local Upload and use local code
--clean Clean existing installation
--teardown Remove Docker container

Architecture

hop3-installer/
├── src/hop3_installer/
│   ├── main.py           # Entry point for hop3-install
│   ├── common.py         # Shared utilities (Colors, Spinner)
│   ├── bundler.py        # Single-file bundler
│   ├── cli/              # CLI installer
│   │   └── installer.py
│   ├── server/           # Server installer
│   │   └── installer.py
│   ├── deployer/         # Developer deployment (hop3-deploy-server)
│   │   ├── cli.py
│   │   ├── deploy.py
│   │   └── backends/     # SSH, Docker backends
│   └── testing/          # Installer validation
│       ├── runner.py
│       └── backends/
└── tests/

Development

# Generate single-file installers
hop3-install bundle --all --output-dir dist/

# Test installers on Docker
hop3-install test docker --distro ubuntu

# Run tests
uv run pytest tests/ -v

# Lint and format
uv run ruff check src/
uv run ruff format src/

Documentation

Related Packages

  • hop3-server - The server component installed by this package
  • hop3-cli - The CLI component installed by this package

License

Apache-2.0 - Copyright (c) 2024-2026, Abilian SAS

Metadata

Release files for hop3-installer 0.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hop3-installer 0.7.2
File Size Uploaded
hop3_installer-0.7.2.tar.gz 132.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hop3-installer 0.7.2
File Interpreter ABI Platform
hop3_installer-0.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 298.0 kB

Release files / hop3_installer-0.7.2.tar.gz

Download URL hop3_installer-0.7.2.tar.gz
Size 132.5 kB
Tags Source
SHA-256 checksum
How to use checksums
86c9c7fb4da2e19b9567621dc20f0e2dabcc4b75e3bdbe9c15991fef5e21b667
BLAKE2b-256 checksum
How to use checksums
fb624b7465153faa8da51320b0075015dfd03316ff7b85f50c4778dbe4ccff5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / hop3_installer-0.7.2-py3-none-any.whl

Download URL hop3_installer-0.7.2-py3-none-any.whl
Size 165.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff8a709d0818c58453aec3fc319f1dc597c755feb16391dbd1dfac74de6f5e07
BLAKE2b-256 checksum
How to use checksums
0b8054e2df46f08241b04923e046cc7af3d29e61bde629b0017fde98c1d4ff0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page