Uninstalling

Instructions for removing Haloy components from your system.

Client Uninstallation

Remove the Haloy CLI (haloy) from your local machine.

Remove Client Only

Shell Script

If you installed via the shell script, you can run the uninstall script:

curl -sL https://sh.haloy.dev/uninstall-haloy.sh | sh

Homebrew

If you installed via Homebrew, you can uninstall the package and untap the repository:

brew uninstall haloy && brew untap haloydev/tap

This removes:

  • The haloy CLI tool from ~/.local/bin/
  • Shell completion scripts (if installed)

This does NOT remove:

  • Client configuration (~/.config/haloy/)
  • Server configurations and tokens

JavaScript Package Managers

If you installed globally:

npm uninstall -g haloy
pnpm remove -g haloy
bun remove -g haloy

If you added it as a dev dependency in your project:

npm uninstall haloy
pnpm remove haloy
bun remove haloy

Remove Client Configuration

Manually remove configuration files associated with the haloy CLI (not needed if you run the uninstall script).

# Remove client configuration rm -rf ~/.config/haloy/ # Remove client data rm -rf ~/.local/share/haloy/

Server Uninstallation

Remove Haloy components from your server.

Server-side examples in this section assume you’re logged in as root. If you’re using a sudo user, run sudo -i before following these commands.

Complete Server Removal

Remove all Haloy components, data, and configurations:

curl -sL https://sh.haloy.dev/uninstall-server.sh | sh

The uninstall script will:

  • Detect what’s installed before removing
  • Stop and remove the haloyd and haloy-proxy services
  • Remove the binary, config, and data directories
  • Remove the haloy system user
  • Support all init systems (systemd, OpenRC, SysVinit)

This removes:

  • haloyd and haloy-proxy services and binaries
  • All Haloy configuration files (/etc/haloy/)
  • All Haloy data (databases, certificates) (/var/lib/haloy/)
  • Docker network

This does NOT remove:

  • Your application containers (must be stopped/removed separately)
  • Docker volumes created by your applications

Stop Applications Before Removal

Before complete server removal, stop your applications:

# From your local machine haloy stop --all --remove-containers # Or on the server docker ps --filter "label=dev.haloy.role=app" -q | xargs docker stop docker ps --filter "label=dev.haloy.role=app" -qa | xargs docker rm

Complete Cleanup

For a full cleanup of everything Haloy-related:

On Local Machine

# 1. Remove CLI curl -sL https://sh.haloy.dev/uninstall-haloy.sh | sh # 2. Remove configuration rm -rf ~/.config/haloy/ rm -rf ~/.local/share/haloy/ # 3. Remove shell completion (if installed) # Bash (Linux) sudo rm -f /etc/bash_completion.d/haloy # Bash (macOS) sudo rm -f /usr/local/etc/bash_completion.d/haloy # Zsh rm -f ~/.local/share/zsh/site-functions/_haloy # Fish rm -f ~/.config/fish/completions/haloy.fish

On Server

# 1. Stop all applications docker ps --filter "label=dev.haloy.role=app" -q | xargs docker stop docker ps --filter "label=dev.haloy.role=app" -qa | xargs docker rm # 2. Remove server components curl -sL https://sh.haloy.dev/uninstall-server.sh | sh # 3. Optional: Remove application data volumes docker volume ls --filter "label=dev.haloy.role=app" -q | xargs docker volume rm # 4. Optional: Clean up unused Docker resources docker system prune -a --volumes

Selective Removal

Keep Data, Remove Service

Stop the service but preserve data for later reinstallation:

# Stop service (systemd) systemctl stop haloyd systemctl stop haloy-proxy systemctl disable haloyd systemctl disable haloy-proxy # Or for OpenRC rc-service haloyd stop rc-service haloy-proxy stop rc-update del haloyd rc-update del haloy-proxy # Remove only the binaries rm /usr/local/bin/haloyd rm /usr/local/bin/haloy-proxy # Data remains in /var/lib/haloy/ and /etc/haloy/ # Can be restored by reinstalling the server daemons

Remove Everything Except Applications

Remove Haloy but keep applications running:

# Applications will continue running but: # - No more deployments possible # - No SSL/TLS (proxy removed) # - No domain routing # - Direct access to container ports needed # Stop Haloy services systemctl stop haloyd systemctl stop haloy-proxy # Remove Haloy components curl -sL https://sh.haloy.dev/uninstall-server.sh | sh # Applications still running docker ps --filter "label=dev.haloy.role=app"

Warning: Applications will lose routing and SSL. You’ll need alternative routing.

What Gets Removed

Client Uninstallation

ItemLocationRemoved
haloy CLI~/.local/bin/haloyYes
Shell completion/etc/bash_completion.d/ or similarYes
Client config~/.config/haloy/No (manual)
Client data~/.local/share/haloy/No (manual)

Server Uninstallation (Complete)

ItemLocationRemoved
haloyd binary/usr/local/bin/haloydYes
haloy-proxy binary/usr/local/bin/haloy-proxyYes
haloyd servicesystemd/OpenRC/SysVinitYes
haloy-proxy servicesystemd/OpenRC/SysVinitYes
Configuration/etc/haloy/Yes
Data/var/lib/haloy/Yes
Docker networkhaloyYes
haloy userSystem userYes
Application containersUser-deployedNo (manual)
Application volumesUser-createdNo (manual)

Reinstallation

After uninstallation, you can reinstall Haloy:

Reinstall Client

curl -fsSL https://sh.haloy.dev/install-haloy.sh | sh

Reinstall Server

# Install server daemons curl -fsSL https://sh.haloy.dev/install-haloyd.sh | sh # If you preserved /etc/haloy/ and /var/lib/haloy/, # haloyd will use the existing configuration

Troubleshooting

Docker Containers Won’t Stop

# Force stop docker stop $(docker ps -q --filter "label=dev.haloy.role=app") # Force remove docker rm -f $(docker ps -qa --filter "label=dev.haloy.role=app")

Permission Denied Errors

# Start a root shell for server operations sudo -i # Then run uninstall script curl -sL https://sh.haloy.dev/uninstall-server.sh | sh

Files Still Remain

# Manually remove remaining files rm -rf /etc/haloy/ rm -rf /var/lib/haloy/ rm -f /usr/local/bin/haloyd rm -f /usr/local/bin/haloy-proxy

Service Still Running

# For systemd systemctl stop haloyd systemctl stop haloy-proxy systemctl disable haloyd systemctl disable haloy-proxy rm /etc/systemd/system/haloyd.service rm /etc/systemd/system/haloy-proxy.service systemctl daemon-reload # For OpenRC rc-service haloyd stop rc-service haloy-proxy stop rc-update del haloyd rc-update del haloy-proxy rm /etc/init.d/haloyd rm /etc/init.d/haloy-proxy

Stay updated on Haloy

Get notified about new docs, deployment patterns, and Haloy updates.