[Tutorial] Run your own satellite (part 8) - Jobq

jobq is a standalone satellite process that holds the repair queue — segments that have lost too many pieces and need fixing — entirely in memory rather than in a database. It organizes jobs into per-placement priority queues plus a retry queue, with the satellite’s checker pushing in new repair jobs and repair workers pulling them out over DRPC. - Claude

The minimum command to run jobq is as follow:

./jobq \
--identity-dir ./id/satellite/ \
--tls.extensions.revocation=false \
--tls.use-peer-ca-whitelist=false

With --tls.use-peer-ca-whitelist=false false, it’s assumed be run on private network. Otherwise, other satellite could point their jobq address to your jobq :slight_smile:

Systemd file:

[Unit]
Description=Jobq
Requires=network.target

[Service]
Type=simple
WorkingDirectory=/my_satellite/
ExecStart=/my_satellite/jobq run \
--identity-dir ./id/satellite/ \
--tls.extensions.revocation=false \
--tls.use-peer-ca-whitelist=false
TimeoutStopSec=300
Restart=always
RestartSec=10
User=root

[Install]
WantedBy=default.target

Note that, jobq default --max-mem-per-placement is 4.0 GiB, and --server.init-alloc default is 2GiB, this service use substantial amount of memory, and also: the default port of jobq is 15781.

Good luck and see you in part 9.

P/s: Hi StorJ, jobq in ./cmd/jobq is different than ./satellite/jobq/jobq, Does the binary called jobq-modular (./satellite/jobq/jobq) or just jobq?

Those two should behave in the same way. They have the same logic just internal wiring is different. Eventually ./cmd/jobq will be replaced with modular version but for now use cmd binary as modular version requires more testing.

Hi there,

It would be great if there are password protected for jobq, similar with auth-token between authservice and gateway-mt.

Could make that password default is empty for compatibility.

P/s: for reader who don’t understand, because we are having --tls.use-peer-ca-whitelist=false, mean other satellite could point to your jobq if it exposed over the internet.

It’s an internal service, it was not designed to be exposed. You need to use VPN connections like tailscale to be able to connect it from another part of the world.