-
Notifications
You must be signed in to change notification settings - Fork 296
Deployment checklist
redshiftzero edited this page Apr 5, 2022
·
13 revisions
- Update hardcoded testnet URL in code
- Create droplet & associated floating IP
- Add droplet to database trusted sources in DO
- Add team member SSH keys to droplet
- Create A record in Namecheap for testnet DNS
- Create database cluster in DO
- Configure Caddy (./config/Caddyfile in repo will need the correct domain name set)
-
git clone https://github.com/penumbra-zone/penumbra.git
-
sudo apt-get install python3 docker-compose build-essential pkg-config libssl-dev clang libclang-dev
- Install the DO metrics clients (for setting up alerts for e.g. disk utilization)
-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
source $HOME/.cargo/env
-
cargo install sqlx-cli
- Configure Grafana (currently the penumbra_grafana_configs volume needs OAuth creds for GitHub set in grafana.ini)
- Update
discord-addresses
file using the Galileo bot (cargo run --release history --channel <channel>
) - Create a new
testnet/<moon>/allocations.csv
file describing the initial genesis allocations for this testnet (make sure all current team members have some assets!) - Update the README to mention the git tag
- Create new git tag e.g.
006-orthosie
, push to shared remote -
cd penumbra
and check out new git tag on DO droplet - Create database and credential in DO cluster
- Create database config file on droplet (
mkdir -p /root/secretz/
&&nano /root/secretz/db_connection_string
then paste the connection string generated by DO for user penumbra and the database for this testnet) - Install any new apt dependencies
- Archive the old configs:
cp -r ~/scratch ~/scratch-MOON
- Generate new configs:
cargo run --release --bin pd -- generate-testnet --output-dir ~/scratch/testnet_build
- Fix permissions or tendermint will immediately crash:
chmod -R 777 ~/scratch/testnet_build
- Paste validator private key into
~/scratch/testnet_build/node0/config/priv_validator_key.json
(stored in 1Password) - Start the prod docker-compose:
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build
- Make an announcement 🎉