Skip to content

uninstall script in macos - #695

Merged
pablomendezroyo merged 5 commits into
pablo/install-script-macosfrom
marc/uninstall_macos
Mar 2, 2026
Merged

uninstall script in macos#695
pablomendezroyo merged 5 commits into
pablo/install-script-macosfrom
marc/uninstall_macos

Conversation

@Marketen

@MarketenMarketen commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Makes dappnode_uninstall.sh compatible in macos:

  • check OS like the install script does
  • align dappnode path of DAPPNODE_DIR in linux & mac like it was defined in the install script
  • added logic to not use colors when console printing (color_echo function). no ANSI on macOS to avoid \e issues

Nice to have:

  • added protection against sourcing: If someone does source dappnode_uninstall.sh (or . dappnode_uninstall.sh), the rm -rf "${DAPPNODE_DIR}" and exit 1 would run in their current shell. The exit would close their terminal. The source guard prevents that.
  • added Re-exec under bash if invoked by another shell (e.g. zsh). Ensures it runs under bash.

script output:

➜ scripts git:(pablo/install-script-macos) ✗ ./dappnode_uninstall.sh WARNING: This script will uninstall and delete all DAppNode
containers and volumes. Are You Sure? [Y/n] Y
Uninstalling DAppNode
Removing DAppNode containers: DAppNodeCore-vpn.dnp.dappnode.eth
DAppNodeCore-dappmanager.dnp.dappnode.eth
DAppNodeCore-ipfs.dnp.dappnode.eth
DAppNodeCore-https.dnp.dappnode.eth
DAppNodeCore-wireguard.wireguard.dnp.dappnode.eth
DAppNodeCore-api.wireguard.dnp.dappnode.eth
DAppNodeCore-bind.dnp.dappnode.eth
Removing DAppNode images: dappmanager.dnp.dappnode.eth 0.2.71 65c677107a62 3 days ago 1.78GB
bind.dnp.dappnode.eth 0.2.11 698a67b378b3 3 days ago 50.7MB
api.wireguard.dnp.dappnode.eth 0.1.4 474bcd09cc87 3 days ago 163MB
wireguard.wireguard.dnp.dappnode.eth 0.1.4 402bfe21564b 3 days ago 278MB
vpn.dnp.dappnode.eth 0.2.11 5d6eee574c53 3 days ago 124MB
stakers-metrics.dms.dnp.dappnode.eth 2.0.3 a1fd8d5e97a0 2 months ago 368MB
manager.dms.dnp.dappnode.eth 2.0.3 a482325c0a10 2 months ago 107MB
prometheus.dms.dnp.dappnode.eth 2.0.3 02decaf6a27b 2 months ago 479MB
grafana.dms.dnp.dappnode.eth 2.0.3 f032d4e2c70e 2 months ago 932MB
loki.dms.dnp.dappnode.eth 2.0.3 2512a61c9371 2 months ago 167MB
cadvisor.dms.dnp.dappnode.eth 2.0.3 6e95a8bfaa10 2 months ago 92.5MB
node-exporter.dms.dnp.dappnode.eth 2.0.3 efad7fedcee0 4 months ago 39.5MB
operator.ssv-hoodi.dnp.dappnode.eth 0.1.2 668712aef6fa 4 months ago 373MB
dkg.ssv-hoodi.dnp.dappnode.eth 0.1.2 8b34b0a2ee7a 4 months ago 27.2MB
immich-server.immich.dnp.dappnode.eth 0.1.0 29e5cc91faca 4 months ago 630MB
immich-machine-learning.immich.dnp.dappnode.eth 0.1.0 b6090237a76a 4 months ago 316MB
web3signer.web3signer-gnosis.dnp.dappnode.eth 1.0.14 9c28a483e8f9 4 months ago 1.26GB
flyway.web3signer-gnosis.dnp.dappnode.eth 1.0.14 235ccf213a95 4 months ago 750MB
postgres.web3signer-gnosis.dnp.dappnode.eth 1.0.14 44a493ac5d72 4 months ago 511MB
geth.gnosis-geth.dnp.dappnode.eth 0.1.0 88bae2758373 4 months ago 28.2MB
database.immich.dnp.dappnode.eth 0.1.0 b1d33572a9a0 4 months ago 205MB
brain.web3signer-gnosis.dnp.dappnode.eth 1.0.14 03976de700b2 5 months ago 455MB
tracker.web3signer-gnosis.dnp.dappnode.eth 1.0.14 aae9a0a330a6 6 months ago 41.9MB
redis.immich.dnp.dappnode.eth 0.1.0 aa8c2978e521 6 months ago 43.7MB
dappnode-key-server-keyserver latest 5e21bea465e7 7 months ago 171MB
cluster-2.hoodi-obol.dnp.dappnode.eth 0.1.1 ea35f43fc39a 8 months ago 808MB
cluster-5.hoodi-obol.dnp.dappnode.eth 0.1.1 fa4b908a9f5a 8 months ago 808MB
cluster-1.hoodi-obol.dnp.dappnode.eth 0.1.1 35afc8855d92 8 months ago 808MB
cluster-3.hoodi-obol.dnp.dappnode.eth 0.1.1 e6f4a65d9db0 8 months ago 808MB
cluster-4.hoodi-obol.dnp.dappnode.eth 0.1.1 285be5693020 8 months ago 808MB
prometheus.hoodi-obol.dnp.dappnode.eth 0.1.1 5e584c31304f 8 months ago 357MB
operator.ssv.dnp.dappnode.eth 0.1.6 7f5ec24eaa09 8 months ago 372MB
dkg.ssv.dnp.dappnode.eth 0.1.6 3229f039a520 8 months ago 27MB
ipfs.dnp.dappnode.eth 0.2.24 1b0b7fc5f53f 8 months ago 144MB
keymanager.premium.dnp.dappnode.eth 0.1.0 47584fd49a8e 9 months ago 9.23MB
sequencer.aztec-testnet.public.dappnode.eth 0.0.87 441d0c870bf6 9 months ago 354MB
register.aztec-testnet.public.dappnode.eth 0.0.87 271922e740e8 9 months ago 354MB
erigon.gnosis-erigon.dnp.dappnode.eth 1.0.1 48131c4064e3 9 months ago 325MB
uptime-kuma.uptime-kuma.public.dappnode.eth 0.1.0 dc35cea0002b 17 months ago 693MB
https.dnp.dappnode.eth 0.2.2 e2dc06e23a78 19 months ago 673MB
ipfs.dnp.dappnode.eth 0.2.23 c2d3cf5ed52c 22 months ago 165MB
Removing DAppNode volumes: local buildx_buildkit_dappnode-multiarch-builder0_state
local dappnode-key-server_keyserver-data
local dncore_dappmanagerdnpdappnodeeth_data
local dncore_ipfsdnpdappnodeeth_data
local dncore_ipfsdnpdappnodeeth_export
local dncore_portal-certs
local dncore_portal-data
local dncore_vpndnpdappnodeeth_config
local dncore_vpndnpdappnodeeth_data
local dncore_wg-config
Removing docker dncore_network
dncore_network
Removing DAppNode directory: /Users/marc/dappnode
DAppNode uninstalled!

@Marketen
Marketen requested a review from a team as a code ownerMarch 2, 2026 11:04
@pablomendezroyopablomendezroyo mentioned this pull request Mar 2, 2026
29 tasks
@pablomendezroyo
pablomendezroyo merged commit a511f2c into pablo/install-script-macosMar 2, 2026
6 of 7 checks passed
@pablomendezroyo
pablomendezroyo deleted the marc/uninstall_macos branch March 2, 2026 12:46
pablomendezroyo added a commit that referenced this pull request Mar 9, 2026
* Enhance macOS compatibility in installation script
- Added checks to ensure the script is executed, not sourced.
- Improved OS detection and handling for macOS and Linux.
- Updated directory paths for macOS.
- Introduced cross-platform helper functions for downloading files and modifying files.
- Added functionality to patch the .dappnode_profile for macOS compatibility.
- Enhanced user shell configuration to source the profile correctly.
- Cleaned up rc.local for Linux installations.
- Improved logging and user feedback during installation.
* Add macOS support for installation scripts and update DAppNode core start function
* Normalize component names to lowercase in download URL and file paths
* Update macOS test script to install Docker using Homebrew
* Normalize component names to lowercase in Docker image loading logic
* Remove macOS test scripts from workflow configuration
* Update IPFS endpoint and enhance logging in installation script
* Refactor logging in installation script to remove color output and improve readability
* uninstall script in macos (#695)
* uninstall script in macos
* comment reexec under bash
* comment
* remove colors logic
---------
Co-authored-by: pablomendezroyo <41727368+pablomendezroyo@users.noreply.github.com>
* Enhance installation script with improved error handling, logging, and CLI wrappers for VPN commands
* Remove core CLI wrappers from installation script to streamline execution
* Add macOS-specific environment variable injection for dappmanager compose
* Fix DISABLE_HOST_SCRIPTS environment variable handling in macOS patch function
* Initialize DNCORE_COMPOSE_ARGS array to prevent unbound variable errors
* Refactor macOS patch function to handle environment variable insertion with temporary file for compatibility
* Increase sleep duration to 30 seconds for VPN initialization in installation script
* Implement wait_for_internal_ip function to ensure dappmanager publishes INTERNAL_IP before proceeding
* Add macOS server detection and adjust package selection for always-on Macs
* Add patch for macOS non-server to use remote IPFS services in maindb.json
* Enhance wait_for_internal_ip function to check for HOSTNAME alongside INTERNAL_IP and improve error messaging; add wait for maindb.json file existence in macOS non-server patch function
* Remove macOS non-server patch for remote IPFS services from installation script
* Remove default PROFILE_BRANCH assignment from installation script
* Add support for minimal installation mode and enhance argument parsing in installer script
* Increase wait time for VPN initialization in installer script
* Add function to print VPN access credentials after core startup
* Refactor Linux setup steps to conditionally execute based on MINIMAL mode
* Add support for Notifications and Premium packages in installation scripts (#696)
* Add local profile path argument to DAppNode installation script
* Add support for macOS in VPN access credential retrieval
* Add support for custom package selection in installation script
* Add interactive setup wizard to installation script
* Add conditional output for VPN credentials based on selected packages
* Remove interactive mode support from installation script
* Add support for lite installation mode in the installation script
* Refactor installation script by removing macOS-specific checks and unused functions
* Improve Docker prerequisite checks in installation script
* Remove outdated comment regarding patch_compose_paths function in installation script
---------
Co-authored-by: Marc Font <36164126+Marketen@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Marketen@pablomendezroyo