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: 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)

# 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

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

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)
│   │   ├── 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

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.5.0.tar.gz (142.4 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.5.0-py3-none-any.whl (121.1 kB view details)

Uploaded Python 3

File details

Details for the file hop3_installer-0.5.0.tar.gz.

File metadata

  • Download URL: hop3_installer-0.5.0.tar.gz
  • Upload date:
  • Size: 142.4 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.5.0.tar.gz
Algorithm Hash digest
SHA256 56ffd9fe3408092be796e34aa1e085c416e16d7d10387be90ac69cf4da85b7e1
MD5 dd7bd2c023546a7c438798cc86f3a666
BLAKE2b-256 dafe6a83d5d98e03421fcfddddcbb0fad2e753c138c7f1b3cdeaf6001f29156b

See more details on using hashes here.

File details

Details for the file hop3_installer-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: hop3_installer-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 121.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for hop3_installer-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe61ae0dc6946f48c0e77e1fa32dfa2dffe1d66b8d5199c9092c08a7d3246797
MD5 f27b61e3d4f465edc463d16b02fef8d4
BLAKE2b-256 538a0164a7a393f6b8182714a0c489f6c1fe8c001a8685ed3101b3dd25daf88b

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