One-shot Bash installers for crypto testnet nodes and the tools they need β Docker, Elixir, Allora, Unichain and the Aligned ZK quiz.
English Β· Π ΡΡΡΠΊΠΈΠΉ
Scripts Β· Quick start Β· Before you run Β· Known issues
A small collection of Bash scripts that set up crypto nodes and the components they depend on, so a fresh VPS can
be brought up with a single command. Each script is standalone: it installs its prerequisites with apt, pulls the
node's Docker image or repository, and starts it. They were written for Ubuntu servers administered as root.
Warning
These scripts run as root, upgrade system packages, execute code downloaded from other repositories and β for some nodes β ask for a wallet private key or seed phrase. Read Before you run and the script itself first, and only use dedicated testnet wallets.
| Script | What it does | Needs | Status |
|---|---|---|---|
install_docker.sh |
Installs Docker CE (docker-ce, docker-ce-cli, containerd.io) from Docker's official apt repository and the standalone docker-compose binary (latest GitHub release) into /usr/bin. -d also installs Dive 0.9.2; -u removes Docker completely; -h prints help. |
Ubuntu, x86_64, sudo |
β |
install_elixir_validator.sh |
Sets up an Elixir Protocol validator (ENV=testnet-3): installs curl and docker.io, asks for your wallet address, private key and validator name, writes validator.env, pulls elixirprotocol/validator:v3 and runs it as container elixir on port 17690, then tails its logs. |
root, run from /root |
|
elixir_update.sh |
Updates that validator: stops and removes the elixir container, pulls elixirprotocol/validator:v3 again and restarts it with /root/validator.env. |
Docker, existing /root/validator.env |
|
install_allora.sh |
Installs an Allora worker (basic coin prediction node): asks for the wallet seed phrase (unless ALLORA_SEED_PHRASE is set), clones allora-network/basic-coin-prediction-node into $HOME, fetches and fills in config.json, runs init.config, remaps published port 8000 β 18000, tries to add 10m/20m/1h intervals to model.py, writes .env (ETH, 30 training days, 4h timeframe, LinearRegression, Binance) and starts it with docker compose up -d --build. |
Docker + Compose plugin, git, wget |
β see issues |
install-unichain.sh |
Installs a Unichain node on Sepolia: installs curl, git, net-tools, clones Uniswap/unichain-node into the current directory, fetches a prepared .env.sepolia, installs Docker with install_docker.sh from this repo and runs docker compose up -d. |
root, Ubuntu x86_64 | β see issues |
ZK-proof.sh |
Interactive helper for the Aligned Layer zkquiz: optionally installs dependencies (base packages, UFW, Rust, Foundry) via third-party scripts, optionally imports a wallet into a Foundry keystore, runs make answer_quiz if the wallet holds 0.004 ETH (the quiz answers it prints: Nakamoto, Pacific, Green), and optionally deletes the checkout and keystore afterwards. |
root, an existing ~/aligned_layer checkout |
β
no known issues Β·
No clone needed. Use process substitution rather than curl | bash, so the interactive prompts can still read
from your terminal:
bash <(curl -s https://raw.githubusercontent.com/DenisHumen/Scripts/main/install_docker.sh)Replace install_docker.sh with any script from the table. Options go after the substitution:
bash <(curl -s https://raw.githubusercontent.com/DenisHumen/Scripts/main/install_docker.sh) --divegit clone https://github.com/DenisHumen/Scripts.git
cd Scripts
bash install_docker.shUpdate your copy later with:
git pullbash install_docker.sh # Docker CE + docker-compose
bash install_docker.sh -d # ...plus Dive (image analyser)
bash install_docker.sh -u # uninstall Docker and delete ALL images and containers
bash install_docker.sh -h # helpExisting installations are detected (docker --version, docker-compose --version) and skipped.
cd /root
bash install_elixir_validator.shBefore running it, the script asks you to request test tokens from the faucet (https://faucet.quicknode.com/drip) and to mint and stake tokens on https://testnet-3.elixir.xyz/. Then it prompts for the wallet address, private key and validator name. Useful commands afterwards:
docker logs -f elixir # follow the validator logs
bash elixir_update.sh # pull the latest v3 image and restartbash install_allora.shSet ALLORA_SEED_PHRASE in the environment beforehand to skip the prompt. The node lives in
~/basic-coin-prediction-node; manage it with docker compose from that directory.
bash install-unichain.shThe node is created in ./unichain-node; see https://github.com/Uniswap/unichain-node for operating it.
bash ZK-proof.shAnswer the four prompts with 1 (yes) or 2 (no): install dependencies, import a wallet, confirm the wallet holds
0.004 ETH (this runs the quiz), delete the data afterwards.
- Ubuntu server with
apt(install_docker.shreadsDISTRIB_ID/DISTRIB_CODENAMEfrom/etc/lsb-releaseand adds Docker's repository foramd64only). - Bash 4+ and internet access.
- Root: most scripts call
aptwithoutsudoand use paths under/root.
- System changes.
install_docker.sh,install_elixir_validator.shandinstall-unichain.shrunapt upgrade -y, upgrading every package on the machine. - Remote code. Several scripts execute code fetched from other repositories at run time:
install_docker.shsourcescolors.sh(andlogo.shfor--help) fromSecorD0/utils;ZK-proof.shpipesmain.sh,ufw.sh,rust.shandfoundry.shfromDOUBLE-TOP/toolsintobash;install-unichain.shrunsinstall_docker.shfrom this repository; most scripts print the banner from DenisHumen/Logo the same way. What those files do can change without any change here. - Firewall. At the time of writing, the
ufw.shused byZK-proof.shenables UFW and denies outgoing traffic to private ranges (10.0.0.0/8,192.168.0.0/16,100.64.0.0/10,198.18.0.0/15,169.254.0.0/16), which can cut a VPS off from its private network or cloud metadata service. - Secrets on disk.
install_elixir_validator.shstores the validator's private key in plain text invalidator.env;install_allora.shappends the wallet seed phrase in plain text to~/.profile. Use throwaway testnet wallets, never your main one. - Destructive options.
install_docker.sh -udeletes/var/lib/docker, i.e. every image, container and volume on the host.ZK-proof.shcan delete~/aligned_layerand the imported keystore when you answer1.
| Script | Issue | Workaround |
|---|---|---|
install_allora.sh |
config.json is downloaded from MeSmallMan/allora, which now returns 404, so the worker is not configured. The sed meant to add 10m/20m/1h intervals to model.py uses unescaped brackets and never matches. |
Finish the remaining steps by hand in ~/basic-coin-prediction-node with your own config.json. |
install-unichain.sh |
.env.sepolia is downloaded from DenisHumen/config-file, which now returns 404. |
Create unichain-node/.env.sepolia yourself (see the Unichain repository) and run docker compose up -d. |
ZK-proof.sh |
The git clone of aligned_layer is commented out, so ~/aligned_layer/examples/zkquiz must already exist. The prompts expect a number; any other input makes the [ -eq ] test fail. |
Clone yetanotherco/aligned_layer into ~/aligned_layer first. |
install_elixir_validator.sh |
validator.env is written to the current directory but the container reads /root/validator.env. The on-screen hints mention docker logs -f ev and an update command with /rootvalidator.env. |
Run it from /root; use docker logs -f elixir and elixir_update.sh. |
Legacy: auto_update_elixir.py (removed, no longer maintained)
This repository used to contain auto_update_elixir.py, which updated a fleet of Elixir validators and recorded
the result in MySQL. It was deleted in October 2024 and the project is obsolete; the notes are kept for reference.
It needed:
- A MySQL database, reachable before the script starts.
- A table named
elixirwith the columnslast_updated(last update info) andgray_ip(node IP addresses), and a user with access to it (e.g.root). - SSH access to every node, over which it ran
elixir_update.sh.
Connection settings looked like this:
base = {
'host': 'your_mysql_host',
'user': 'your_mysql_user',
'password': 'your_mysql_password',
'database': 'your_database_name'
}.
βββ install_docker.sh # Docker CE + docker-compose (+ Dive), or full uninstall
βββ install_elixir_validator.sh # Elixir Protocol validator (testnet-3) in Docker
βββ elixir_update.sh # re-pull and restart the Elixir validator
βββ install_allora.sh # Allora basic coin prediction worker
βββ install-unichain.sh # Unichain node (Sepolia)
βββ ZK-proof.sh # Aligned Layer zkquiz helper
Issues and pull requests are welcome β especially fixes for the known issues.
License: not specified yet.