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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hop3_installer-0.7.1.tar.gz
(123.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hop3_installer-0.7.1.tar.gz.
File metadata
- Download URL: hop3_installer-0.7.1.tar.gz
- Upload date:
- Size: 123.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae6dfb9cb5e2a83b827e6a136a68961a1a197072d92c1681479d3147fc33c4f6
|
|
| MD5 |
cb11a55d912be9ec0e70fd36ff819b29
|
|
| BLAKE2b-256 |
5a659054eeaad4009dfd923c4a2e55f69591a516cf48b2f52c4e2bc6082689a8
|
File details
Details for the file hop3_installer-0.7.1-py3-none-any.whl.
File metadata
- Download URL: hop3_installer-0.7.1-py3-none-any.whl
- Upload date:
- Size: 156.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5146c175d641a1bcaed43d13c6a3b0adff2b484306c4accd68e5ae749caaf371
|
|
| MD5 |
739a4f8b93d596845d955ae0f2dcb0fb
|
|
| BLAKE2b-256 |
10070e9fc77d6782cf131e38a06a92c8659514fe7f5b5a744d281e9a4a1abb90
|