Deploy manually with a configuration file
If the other deployment methods do not suit your needs, you may choose to run or deploy the agent manually.
Send us an e-mail at [email protected]. We can give you advice and we are interested in expanding our officially supported deployment methods. |
1. Install the agent
$ nix-env -iA hercules-ci-agent -f '<nixpkgs>'
2. Configure the agent
Write an agent.toml
file. Most of the entries are optional. A small example:
Unresolved include directive in modules/ROOT/pages/getting-started/deploy/manual.adoc - include::hercules-ci-agent::partial$agent-small-example.toml[]
This guide will assume that the baseDirectory remains set to /var/lib/hercules-ci-agent
.
3. Get a cluster join token.
-
In the dashboard, find the account for which you would like to deploy the agent,
-
Select your deployment method, select the Generate a token tab and use the button.
-
Copy the token into a plain text file
/var/lib/hercules-ci-agent/secrets/cluster-join-token.key
.
4. Configure binary caches
Although a single agent works with empty {} binary cache configuration,
we highly recommend setting up a cache from the start.
Running without a cache will break some features and will cause unexpectedly long build times
due to eventual garbage collection.
|
On Cachix you can create a binary cache. After you complete the process, gather the keys into a binary-caches.json
file, replacing all placeholders:
{ "mycache": (1)
{ "kind": "CachixCache"
, "authToken": "eyJhaf23GH53a.bc23BUSI.9q3048hWHh" (2)
, "publicKeys": ["mycache.cachix.org-1:EjBSHzF6VmDnzqlldGXbi0RM3HdjfTU3yDRi9Pd0jTY="] (3)
, "signingKeys": ["uAhqM3jG..."] (4)
}
}
1 | The name of the Cachix cache; for example the mycache part from mycache.cachix.org . |
2 | Omit if you use a local signing key. Required if you use a Write token. You can retrieve one from cachix, click a cache, click per cache auth token. Select Write permission and generate a key. If you can only select Read permission, you have to ask a cache admin for a Write token or, if applicable, for the signing key. |
3 | The public part of the signing key. Look for "Public Key" on your cache page (example page: https://mycache.cachix.org ). |
4 | Omit if you use a Write token. Otherwise, this is the cache-specific secret key to sign store paths. You can find it in ~/.config/cachix/cachix.dhall or your key backup after following the setup instructions on cachix.org. Make sure you copy the right key if you have multiple in your cachix.dhall . |
For more detail, see The binary-caches.json format in the Reference.
|
Install the file in /var/lib/hercules-ci-agent/secrets/binary-caches.json
.
5. Start the agent
Run hercules-ci-agent --config agent.toml
, preferably via some process supervision system.
6. Repository Setup
The goal of this step is to make sure everything is set up correctly.
-
If you are familiar with Nix, set up your own git repository
-
Otherwise verify your agent setup with a minimal git repository