-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
Description
Summary
Create a Linux systemd-compatible service host for the DNS server, complementing the Windows Service support in #5.
Background
Issue #5 covers Windows NT Service support. This issue tracks the parallel effort for Linux deployments using systemd, which is the standard service manager on most modern Linux distributions.
Requirements
Service Host Project
- New project
dns-service-systemdtargetingnet8.0 - Use
Microsoft.Extensions.Hosting.Systemdfor systemd integration - Implement
IHostedServicepattern (shared with Install and run as NT Service #5 refactoring work)
Configuration
- Support config path resolution: CLI arg
--config→ env varDNS_SERVER_CONFIG_PATH→ default/etc/dns-server/appsettings.json - Environment variables settable via systemd unit file
Installation Assets
- Sample
.serviceunit file (dns-server.service) - Installation script (
install.sh) that:- Copies binary to
/usr/local/bin/or/opt/dns-server/ - Creates config directory
/etc/dns-server/ - Installs and enables the systemd unit file
- Creates a dedicated service user (optional, for security)
- Copies binary to
Documentation
- Installation and configuration instructions
- Troubleshooting guide (journalctl, systemctl commands)
- Uninstall procedure
Depends On
- Phase 1 of Install and run as NT Service #5: Core refactoring to
IHostedServicepattern (shared infrastructure)
Acceptance Criteria
-
dns-service-systemdproject builds and runs on Linux - Service starts/stops correctly via
systemctl start/stop dns-server - Service auto-starts on boot when enabled
- Logs visible via
journalctl -u dns-server - Clean install/uninstall via provided scripts
- Documentation added to README