This docker image has the ability to automatically sync up and down a backup of the Cardano DB. For now just through an S3 bucket, but looking into using the official weekly backups from IOHK.
Install Docker to get started:
https://docs.docker.com/get-started/
docker pull elegroth/elenode:0.3.0
docker run -d elegroth/elenode:0.3.0
You can find the compiled image on Docker Hub:
https://hub.docker.com/r/elegroth/elenode
- ssh daemon
- exposed cardano-node via socat
- support for Nami custom node via payment tx api
- cardobot pre-installed
- automatic backups to S3 for wallets and DB
- dbsync w/ connection to remote postgres db
- AWS_SYNC_ENABLED (whether or not to sync DB and wallets to S3)
true/false
- REMOTE_URL_SYNC (sync from a direct download link for a db archive instead of S3)
true/false
- REMOTE_DB_URL (URL to the DB archive, must be a direct download link)
string
- EFS_ENABLED (Whether or not to utilize a mounted EFS volume, mainly for use with ECS or EKS)
true/false
- MASTER_NODE (your master node to sync the db from and that will be running dbsync)
true/false
- TESTNET_ENABLED (fixes configs for testnet, only use on a tag that ends with *-testnet)
true/false
- DB_SYNC_ENABLED (whether or not to setup configs to use dbsync and run at startup if it's the master)
true/false
- RESTORE_DB_SYNC_SNAPSHOT (whether or not to download the latest DB sync snapshot from IOHK)
true/false
- DB_BUCKET_NAME (name of the S3 bucket to pull the synced Cardano DB from)
string
- WALLET_BUCKET_NAME (name of the S3 bucket to backup wallets to)
string
- ROOT_SSH_KEY (only needed if you need to ssh into the server directly as root, illadvised)
string
- ADMIN_SSH_KEY (needed to ssh directly into the server to run cardobot commands)
string
- AWS_ACCESS_KEY_ID (IAM user's access key for your account)
string
- AWS_SECRET_ACCESS_KEY (IAM user's secret key for your account)
string
- AWS_DEFAULT_REGION (region your S3 buckets live in)
string
- POSTGRES_HOST (hostname or IP of your postgres DB)
string
- POSTGRES_PORT (port being used by your postgres DB)
int
- POSTGRES_DB (database name used by your dbsync, needs to be already created)
string
- POSTGRES_USER (user to login to postgres with)
string
- POSTGRES_PASS (password for the postgres user, recommend using secrets manager variables if using ECS)
string