Configure the appropriate repository (test or production) from builds.ntppool.dev/repo/.
Install the ntppool-agent package, and start the systemd units for
test and/or production (example below starts both).
sudo apt update
sudo apt install -y ntppool-agent
for f in test prod; do
sudo systemctl enable --now ntppool-agent@$n;
done
sudo journalctl -u ntppool-agent@\* -f
Installed from the rpm or deb package, state will by default
be stored in /var/run/ntppool-agent. You can change the default in
/var/default/ntppool-agent, or with the --state-dir parameter
or by setting $MONITOR_STATE_DIR in the environment.
The --env parameter specifies which server to use (prod, test or devel).
A well connected Linux or FreeBSD system (x86_64 or arm64).
Each instance (for the beta system and/or the production system) takes less than 30MB memory currently and approximately no CPU (very little anyway). However it's best if the system isn't excessively loaded, as that can impact the NTP measurements. The network needs to be consistently low latency "to the internet".
A future version will either require or work best with traceroute installed and available as well.
DEPLOYMENT_MODEdevelDATABASE_DSNdatabase connection string- example:
"tcp(ntp-db-mysql)/betadb?charset=utf8&parseTime=true"
- example:
JWT_KEYkey for signing JWTs for the mosquitto serverVAULT_CACERTpath for public vault signing certificateVAULT_ADDRURL for vault serverOTEL_EXPORTER_OTLP_ENDPOINTURL for open telemetry endpoint
If you don't add username and password to the DATABASE_DSN, it has to
be provided in a file named database.yaml or
/vault/secrets/database.yaml in the format:
mysql:
user: some-db-user
pass: ...
You can also provide a dsn: field in that datastructure
and omit the DATABASE_DSN altogether.