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