[Unit]
Description=Townforge Full Node
After=network.target

[Service]
User=townforge
Group=townforge
WorkingDirectory=~
RuntimeDirectory=townforge

# Clearnet config
#
Type=forking
PIDFile=/run/townforge/townforged.pid
ExecStart=/usr/bin/townforged --config-file /etc/townforged.conf \
    --detach --pidfile /run/townforge/townforged.pid

# Tor config
#
## We have to use simple, not forking, because we cannot pass --detach
## because stderr/stdout is not available when detached, but torsocks
## attempts to write to it, and fails with 'invalid argument', causing
## townforged to fail.
#Type=simple
#Environment=DNS_PUBLIC=tcp
## The following is needed only when accessing wallet from a different
## host in the LAN, VPN, etc, the RPC must bind to 0.0.0.0, but
## by default torsocks only allows binding to localhost.
#Environment=TORSOCKS_ALLOW_INBOUND=1
#ExecStart=/usr/bin/torsocks /usr/bin/townforged --config-file /etc/townforged.conf \
#    --non-interactive

Restart=always

[Install]
WantedBy=multi-user.target