Requires curl
and unzip
.
Nomad binary will be downloaded on demand and bundled with the final .spk pacakge.
git clone https://github.com/prabirshrestha/synology-nomad.git
cd synology-nomad
./build.sh
To change the version to nomad binary or architecture set the environment version.
ARCH=amd64 NOMAD_VERSION=1.5.0 ./build.sh
ARCH=arm64 NOMAD_VERSION=1.5.0 ./build.sh
Use the package center from Synology DSM to import the nomad spk file.
- A user
nomad
will be created. - A share
nomad
will be created. For example:/volume1/nomad
. - Default configuration can be found on the share in
/path_to_nomad_share/etc/nomad.d/nomad.hcl
. Additional files can be added in the directory for other config files related to nomad. Restarting the package is required for any additional changes to the config. - Data directory for nomad is set as
/path_to_nomad_share/var/lib/nomad
nomad
binary can be found at/usr/local/bin/nomad
.
Since packages cannot be run as root with DSM7+, additional commands need to be manually executed.
- SSH into the machine and run the following command.
sudo synogroup --add docker # create a group called docker
sudo synogroup --member docker nomad # add nomad user to docker group
sudo chown root:docker /var/run/docker.sock # change owner to docker group
- A one time restart of the package may be required for nomad to access docker after running the above commands.
Docker access can be verified by navigating to the nomad UI and looking into the driver status for docker.
Nomad is accessiblity via the SynologyIP:4646
port. Since acl is enabled you will need to
loging via ssh and run nomad acl boostrap
to generate the initial token. You can then use the
SecretID
as token to authorize the UI portal or generate other tokens.
$ nomad acl bootstrap
Accessor ID = 5325e529-8048-2a6a-711e-8a1110562c93
Secret ID = fe672cf4-16b0-af1d-3db5-1832a8ec4c7d
Name = Bootstrap Token
Type = management
Global = true
Create Time = 2022-12-15 03:04:34.932856392 +0000 UTC
Expiry Time = <none>
Create Index = 24
Modify Index = 24
Policies = n/a
Roles = n/a
To use host volume you can specific the mount
settings in config
section for the nomad job.
mount {
type = "bind"
source = "/volume1/path/in/host"
target = "/path/inside/container"
readonly = false
}
- Uninstall can be done via the package center.
- Due to the nature of how packages work in Synology,
nomad
user andnomad
share will not be removed during uninstallation of the package. Reinstalling the package will reuse exisiting configurations and data. If you want clean installation you can remove thenomad
share and install the package again. - To delete
nomad
user runsudo synogroup --del nomad
after package has been uninstall.
MIT. For nomad binary refer to the Nomad license.