Skip to main content

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

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


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.4.0b1.tar.gz (83.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hop3_installer-0.4.0b1-py3-none-any.whl (90.9 kB view details)

Uploaded Python 3

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

Hashes for hop3_installer-0.4.0b1.tar.gz
Algorithm Hash digest
SHA256 8ad53a80c33bdd47a3d229dd82b66e7339b9d2a890dfbdba6ff4fbb060806430
MD5 0dd219819179d1032a41399178846785
BLAKE2b-256 f2fa66c9ec505de5986cd61f9a85fe6e609cb513f58cad3764ed87241fa580c4

See more details on using hashes here.

File details

Details for the file hop3_installer-0.4.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for hop3_installer-0.4.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 b95f0695213a0b36fd24522751b129e401b036c7fdafc2c16d547f98804b8cb7
MD5 2e46806a14d7c7d5d428e1d7e1d1c6b7
BLAKE2b-256 79531f20dfd082b7030f50c40cc1c31456394089654b75a837d5568c92c67142

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page