feat: Add single-command install script, uninstall script, and CI workflow #68

Closed
opened 2026-04-06 18:42:34 +00:00 by mahmoud · 1 comment
Owner

Context

hero_compute currently requires a multi-step manual setup process (clone repo, make configure, make start). This makes it hard for new users and for automated deployments.

Objective

Provide a single-command installer that handles the entire setup — downloading pre-built binaries, installing system dependencies, and starting all services — so users can get hero_compute running with one curl | bash command.

Deliverables

1. Install script (scripts/install.sh)

  • Downloads pre-built binaries: cloud-hypervisor, mycelium, hero_proc, my_hypervisor, hero_compute (all components)
  • Installs system dependencies (Debian/Ubuntu packages)
  • Handles unavailable packages gracefully (skips non-critical ones)
  • Starts hero_proc and registers hero_compute services
  • Supports --env flag for environment selection (development, testing, canary, production)
  • Idempotent — safe to re-run, only downloads what's missing or outdated
  • Progress output with dots for long-running steps
  • Suppresses interactive apt prompts

2. Uninstall script (scripts/uninstall.sh)

  • Stops all services
  • Removes installed binaries
  • Cleans up data directories

3. CI workflow (.forgejo/workflows/test-install.yaml)

  • Forgejo Actions workflow that tests the install script in a container
  • Verifies binary downloads, dependency installation, and service startup
  • Handles container-specific constraints (no KVM, limited services)
  • Correct binary list matching what the installer actually downloads

Usage

# Quick install (development)
curl -sfL https://forge.ourworld.tf/lhumina_code/hero_compute/raw/branch/development/scripts/install.sh | bash

# With specific environment
curl -sfL https://forge.ourworld.tf/lhumina_code/hero_compute/raw/branch/development/scripts/install.sh | bash -s -- --env production

Acceptance Criteria

  • curl | bash installs hero_compute on a fresh Debian/Ubuntu system
  • All binaries downloaded and placed in ~/hero/bin/
  • Services start and sockets are created
  • Re-running the installer is idempotent
  • scripts/uninstall.sh cleanly removes everything
  • CI workflow passes in container environment

PR

#64

## Context hero_compute currently requires a multi-step manual setup process (clone repo, `make configure`, `make start`). This makes it hard for new users and for automated deployments. ## Objective Provide a single-command installer that handles the entire setup — downloading pre-built binaries, installing system dependencies, and starting all services — so users can get hero_compute running with one `curl | bash` command. ## Deliverables ### 1. Install script (`scripts/install.sh`) - Downloads pre-built binaries: cloud-hypervisor, mycelium, hero_proc, my_hypervisor, hero_compute (all components) - Installs system dependencies (Debian/Ubuntu packages) - Handles unavailable packages gracefully (skips non-critical ones) - Starts hero_proc and registers hero_compute services - Supports `--env` flag for environment selection (`development`, `testing`, `canary`, `production`) - Idempotent — safe to re-run, only downloads what's missing or outdated - Progress output with dots for long-running steps - Suppresses interactive apt prompts ### 2. Uninstall script (`scripts/uninstall.sh`) - Stops all services - Removes installed binaries - Cleans up data directories ### 3. CI workflow (`.forgejo/workflows/test-install.yaml`) - Forgejo Actions workflow that tests the install script in a container - Verifies binary downloads, dependency installation, and service startup - Handles container-specific constraints (no KVM, limited services) - Correct binary list matching what the installer actually downloads ## Usage ```bash # Quick install (development) curl -sfL https://forge.ourworld.tf/lhumina_code/hero_compute/raw/branch/development/scripts/install.sh | bash # With specific environment curl -sfL https://forge.ourworld.tf/lhumina_code/hero_compute/raw/branch/development/scripts/install.sh | bash -s -- --env production ``` ## Acceptance Criteria - [ ] `curl | bash` installs hero_compute on a fresh Debian/Ubuntu system - [ ] All binaries downloaded and placed in `~/hero/bin/` - [ ] Services start and sockets are created - [ ] Re-running the installer is idempotent - [ ] `scripts/uninstall.sh` cleanly removes everything - [ ] CI workflow passes in container environment ## PR https://forge.ourworld.tf/lhumina_code/hero_compute/pulls/64
Author
Owner

Already Introduced in #63

Already Introduced in https://forge.ourworld.tf/lhumina_code/hero_compute/issues/63
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_compute#68
No description provided.