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.3

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.3
File Size Uploaded
hop3_installer-0.7.3.tar.gz 134.6 kB Details

Built distribution (wheel)

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

Total release size: 302.1 kB

Release files / hop3_installer-0.7.3.tar.gz

Download URL hop3_installer-0.7.3.tar.gz
Size 134.6 kB
Tags Source
SHA-256 checksum
How to use checksums
287b8e70655fe82f4b8ae97fc081099fc216c02f92746f3ad0a38ac8457f004e
BLAKE2b-256 checksum
How to use checksums
37e4b948d015004f3c1481cff36dad5dd757b20cec6bfb691bc18e8f6a7040ad
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.3-py3-none-any.whl

Download URL hop3_installer-0.7.3-py3-none-any.whl
Size 167.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1a37b71e901faef4484d26384843ea73cdb7815f14b9370d151e83a2579d8bf
BLAKE2b-256 checksum
How to use checksums
4bab97a79065013519e2ce81c27d45b75c4953373c26036d41a58c8816b20db8
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