Installer scripts for Hop3 CLI and Server
Project description
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 - 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 - Test on Docker, SSH, or Vagrant
- Developer workflow - Deploy local code changes for testing
Installation
For development
# From workspace root
cd packages/hop3-installer
uv pip install -e ".[dev]"
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)
# Deploy to remote server
export HOP3_DEV_HOST=server.example.com
hop3-deploy
# Deploy with local code changes
hop3-deploy --local
# Deploy to Docker container
hop3-deploy --docker
# Clean installation
hop3-deploy --clean
Architecture
hop3-installer/
├── src/hop3_installer/
│ ├── cli/ # CLI installer
│ │ ├── config.py # Configuration
│ │ └── installer.py # Installation logic
│ ├── server/ # Server installer
│ │ ├── config.py # Configuration
│ │ └── installer.py # Installation logic
│ ├── deployer/ # Developer deployment tool
│ │ ├── cli.py # CLI interface
│ │ ├── deploy.py # Deployment logic
│ │ └── backends/ # SSH, Docker backends
│ ├── testing/ # Test framework
│ │ ├── runner.py # Test execution
│ │ ├── validators.py # Installation checks
│ │ └── backends/ # Docker, SSH, Vagrant
│ ├── bundler.py # Single-file bundler
│ └── common.py # Shared utilities
└── tests/
Commands
hop3-install
| Subcommand | Description |
|---|---|
cli |
Install hop3-cli on local machine |
server |
Install hop3-server (requires root) |
bundle |
Generate single-file installers |
hop3-deploy
| Option | Description |
|---|---|
--host HOST |
Target server hostname |
--docker |
Deploy to Docker container |
--local |
Upload and use local code |
--clean |
Clean existing installation |
--admin-domain |
Set up admin interface |
Development
Generate single-file installers
# Generate both installers
hop3-install bundle --all --output-dir dist/
# Generate specific installer
hop3-install bundle --type server --output install-server.py
Running tests
# From package directory
uv run pytest tests/ -v
# Test installers on Docker
hop3-test-installers docker --distro ubuntu
# Test on remote server
hop3-test-installers ssh --host user@server.example.com
Code quality
uv run ruff check src/
uv run ruff format src/
Documentation
- Installation Guide: Main documentation
- Installer Details: Installer documentation
- Installer Testing: Testing guide
- Package Internals: Deep-dive 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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.4.0b1.tar.gz.
File metadata
- Download URL: hop3_installer-0.4.0b1.tar.gz
- Upload date:
- Size: 83.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ad53a80c33bdd47a3d229dd82b66e7339b9d2a890dfbdba6ff4fbb060806430
|
|
| MD5 |
0dd219819179d1032a41399178846785
|
|
| BLAKE2b-256 |
f2fa66c9ec505de5986cd61f9a85fe6e609cb513f58cad3764ed87241fa580c4
|
File details
Details for the file hop3_installer-0.4.0b1-py3-none-any.whl.
File metadata
- Download URL: hop3_installer-0.4.0b1-py3-none-any.whl
- Upload date:
- Size: 90.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b95f0695213a0b36fd24522751b129e401b036c7fdafc2c16d547f98804b8cb7
|
|
| MD5 |
2e46806a14d7c7d5d428e1d7e1d1c6b7
|
|
| BLAKE2b-256 |
79531f20dfd082b7030f50c40cc1c31456394089654b75a837d5568c92c67142
|