Since eg strives to make operations as cost effective and easy to use as possible self-hosted runners should be considered an option of last resort to satisfy business needs. that being said this installation guide covers most of the necessary steps and packages you'll need to install. Most of the work necessary is contained within the published eg packages publishes.
once you've installed the eg package you'll need to specify some environment settings like your account, the maximum available resources you want to grant the daemon.
eg daemon --account="00000000-0000-0000-0000-000000000000" --seed="00000000-0000-0000-0000-000000000001"
currently we only support ubuntu. contact us if you want support on another platform, there are not any blockers for other distributions, we just havent built/published packages for them yet.
# register with eg.
eg register
# the account id and signing seed are sensitive values, so rather than passing them as
# plaintext --account/--seed flags, store them as a secret and load them into the environment
# before eg actl bootstrap/eg actl authorize resolve their flags, via `eg secrets env`. this
# example uses the file:// scheme for simplicity; production usage should use a proper secret
# manager instead, e.g. gcpsm:// (Google Secret Manager) or awssm:// (AWS Secrets Manager) —
# see `eg secrets --help` for the full list of supported schemes.
printf 'EG_ACCOUNT=00000000-0000-0000-0000-000000000000\nEG_ENTROPY_SEED=00000000-0000-0000-0000-000000000001\n' \
| eg secrets update file:///tmp/daemon.secret
# bootstrap the resources the runner can use.
eg actl bootstrap env runner | sudo tee /etc/eg/runner.env
# settings for the daemon that specify the account and the credentials registered above.
# secrets are loaded into the environment before eg actl bootstrap resolves its flags, so
# --account/--seed don't need to be (and can't accidentally leak as) plaintext flags here.
eg secrets env --uri file:///tmp/daemon.secret eg actl bootstrap env daemon | sudo tee /etc/eg/daemon.env
# clean up the plaintext secret file now that it's no longer needed.
rm -f /tmp/daemon.secret
# build the runner's container.
sudo systemctl start eg-runner-build.service
# enable the service and start it immediately
sudo systemctl enable --now eg-runner.service
# optional gpu service you can run instead.
# sudo systemctl enable --now eg-runner-gpu.service
# authorize the node's signing seed
# this needs to happen on the device you have a
# profile with proper permissions in order to allow
# server to access your eg account.
eg actl authorize seed "$EG_ENTROPY_SEED"
assuming everything was done correctly you'll see an eg-runner instance show up https://console.egdaemon.com/c