On this page
Linux deployment
The example uses a Debian / Ubuntu host with systemd. Watchdog and TGateway run on the same site machine. Adapt runtime dependencies and service management for other distributions.
Prepare the installation
- Run
uname -m: choose x64 forx86_64or ARM64 foraarch64. Select the matching Watchdog package in Downloads. - Install .NET 10 Runtime for the distribution and architecture. Confirm
Microsoft.NETCore.App 10.xwithdotnet --list-runtimes. - Extract the entire package into a permanent location, such as
/opt/tgateway/WatchDog. Retainappsettings.json,GatewayApp, and every bundled dependency.
Allow at least 512 MB RAM, preferably 1 GB or more, and 8 GB or more storage, with additional space for history and cache retention. See Environment setup.
Use a dedicated runtime account. Reuse it if already present; do not create it twice. This example uses tgateway:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin tgateway
sudo chown -R tgateway:tgateway /opt/tgateway/WatchDog
sudo chmod +x /opt/tgateway/WatchDog/TGateway.Watchdog
sudo chmod +x /opt/tgateway/WatchDog/GatewayApp/TGatewaySubstitute your real account and paths throughout. The account needs read/write access to the installation and project data.
Foreground launch
Before installing a service, run:
cd /opt/tgateway/WatchDog
sudo -u tgateway ./TGateway.WatchdogLeave the terminal running. On the host, open http://localhost:6200, confirm TGateway is running on the Watchdog dashboard, and open http://localhost:6100. Use the host IP from remote browsers. Follow Start and sign in for credentials and workspace checks.
If the process exits, read the full terminal error first. Do not use an automatic restart policy to hide a missing runtime, permission failure, or occupied port.
Configure systemd
After foreground verification, press Ctrl+C and wait for Watchdog and its gateway to exit. As administrator, create /etc/systemd/system/tgateway-watchdog.service:
[Unit]
Description=TGateway Watchdog
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=tgateway
Group=tgateway
WorkingDirectory=/opt/tgateway/WatchDog
ExecStart=/opt/tgateway/WatchDog/TGateway.Watchdog
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetThe user and group must exist, and the working directory and executable must match the installation. Start and enable the service:
sudo systemctl daemon-reload
sudo systemctl enable --now tgateway-watchdog
sudo systemctl status tgateway-watchdog --no-pagerExpect active (running), then check both Web pages. Gateway initialization may take time; inspect Watchdog logs and the active project as well.
Logs and service controls
sudo journalctl -u tgateway-watchdog -n 100 --no-pager
sudo systemctl stop tgateway-watchdog
sudo systemctl start tgateway-watchdogDefault Watchdog file logs are in /opt/tgateway/WatchDog/Logs/Watchdog/. Default gateway process logs are in GatewayApp/Logs/XTrace/; the actual logging configuration takes precedence. Use system logs for device, rule, and forwarding errors.
To uninstall the service, first arrange shutdown and backup:
sudo systemctl disable --now tgateway-watchdogHave the administrator remove its unit file, then run sudo systemctl daemon-reload. Disabling the service does not remove the installation or projects.
Serial and network permissions
- Inspect the actual serial node and owner group, for example with
ls -l /dev/ttyUSB0. Debian / Ubuntu commonly usessudo usermod -aG dialout tgateway; follow the node’s actual group and restart the service afterward. - Do not grant permanent access to every user instead of assigning account permissions. If USB device names change, update the channel or configure a stable device path.
- After Web access works, verify device IP, protocol port, and connection direction. For server plugins listening below port
1024, arrange the required low-port permission according to host policy rather than running the entire service as root by default. - The service account needs write access to logs, history, offline cache, and external mounts. Success under an interactive account does not establish systemd account access.
Update and recovery
Use Studio’s batch update for gateway programs. Before updating the Watchdog host or moving the installation, create and download a Watchdog backup.
Stop the service in a maintenance window. Preserve the stopped installation, including configuration, GatewayApp, CurrentProject, Projects, and Backups. Follow release instructions to update programs while preserving site data, then check ownership and execute permissions. If paths change, update the unit and run daemon-reload before starting it.
Verify service state, version, active project, new samples from a known point, and new data at the destination. Do not copy only a live SQLite main file or delete active WAL and retry-cache files.
Startup problems
| Symptom | Check and recovery |
|---|---|
Permission denied | Execute bits, directory access, service account, and serial device group |
Exec format error | Package architecture must match the host |
| Missing runtime or shared library | Install .NET 10 Runtime and its distribution-specific dependencies |
| systemd process exits | Read journal and file logs, then launch in the foreground using the same account |
| Remote access fails | Check host IP, listener, firewall, and proxy |
Without real equipment, continue with your first simulator point. See Troubleshooting for other failures.