diff --git a/ops/deployments-from-scratch.md b/ops/deployments-from-scratch.md index 3f26698..5f87bbf 100644 --- a/ops/deployments-from-scratch.md +++ b/ops/deployments-from-scratch.md @@ -29,6 +29,119 @@
Nitro Contracts Deployment +## Fixturenet Eth + +* Stack: + +* Source repo: + +* Target dir: `/srv/fixturenet-eth/fixturenet-eth-deployment` + +* Cleanup an existing deployment if required: + + ```bash + cd /srv/fixturenet-eth + + # Stop the deployment + laconic-so deployment --dir fixturenet-eth-deployment stop --delete-volumes + + # Remove the deployment dir + sudo rm -rf fixturenet-eth-deployment + ``` + +### Setup + +* Create a `fixturenet-eth` dir if not present already and cd into it + + ```bash + mkdir /srv/fixturenet-eth + + cd /srv/fixturenet-eth + ``` + +* Clone the stack repo: + + ```bash + laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-eth-stacks --pull + ``` + +* Clone required repositories: + + ```bash + laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth setup-repositories --pull + + # If this throws an error as a result of being already checked out to a branch/tag in a repo, remove all repositories from that stack and re-run the command + # The repositories are located in $HOME/cerc by default + ``` + +* Build the container images: + + ```bash + # Remove any older foundry image with `latest` tag + docker rmi ghcr.io/foundry-rs/foundry:latest + + laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth build-containers --force-rebuild + + # If errors are thrown during build, old images used by this stack would have to be deleted + ``` + + * NOTE: this will take >10 mins depending on the specs of your machine, and **requires** 16GB of memory or greater. + + * Remove any dangling Docker images (to clear up space): + + ```bash + docker image prune + ``` + +* Create spec files for deployments, which will map the stack's ports and volumes to the host: + + ```bash + laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy init --output fixturenet-eth-spec.yml + ``` + +* Configure ports: + * `fixturenet-eth-spec.yml` + + ```yml + ... + network: + ports: + fixturenet-eth-bootnode-geth: + - '9898:9898' + - '30303' + fixturenet-eth-geth-1: + - '8545:8545' + - '8546:8546' + - '40000' + - '6060' + fixturenet-eth-lighthouse-1: + - '8001' + ... + ``` + +* Create deployments: + Once you've made any needed changes to the spec files, create deployments from them: + + ```bash + laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy create --spec-file fixturenet-eth-spec.yml --deployment-dir fixturenet-eth-deployment + ``` + +* Env configuration: + + ```bash + cat < fixturenet-eth-deployment/config.env + CERC_ALLOW_UNPROTECTED_TXS=true + EOF + ``` + +### Run + +* Start `fixturenet-eth-deployment` deployment: + + ```bash + laconic-so deployment --dir fixturenet-eth-deployment start + ``` + ## Nitro Contracts Deployment * Stack: