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

  • 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.5

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.5
File Size Uploaded
hop3_installer-0.7.5.tar.gz 151.9 kB Details

Built distribution (wheel)

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

Total release size: 339.6 kB

Release files / hop3_installer-0.7.5.tar.gz

Download URL hop3_installer-0.7.5.tar.gz
Size 151.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fb4a1a94307c36eb6d9d9194147841d874443ab857354b00f9d2b6bfaeddc4f9
BLAKE2b-256 checksum
How to use checksums
3b8e9ec21425dfa3ad4028dc5d921a1128bd655898027cb8e67414ac5b156fd2
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.5-py3-none-any.whl

Download URL hop3_installer-0.7.5-py3-none-any.whl
Size 187.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3edf3aa4dea923288f8036c3924d3f50ad7e079d78146e74d1f9cb1458c469a0
BLAKE2b-256 checksum
How to use checksums
a40f65f6c3273bac4821ccf3192293022b926c87081bf9a0017d2c0e01109573
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