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)
| File | Size | Uploaded | |
|---|---|---|---|
| hop3_installer-0.7.2.tar.gz | 132.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|