Linux Deployment
Deploy Radar Collector as a systemd service.
Installation
1. Create User and Directories
sudo useradd --system --no-create-home --shell /usr/sbin/nologin radar-collector
sudo mkdir -p /opt/radar-collector /etc/radar-collector
sudo chown radar-collector:radar-collector /opt/radar-collector
2. Install Binary
sudo cp target/release/radar-collector /opt/radar-collector/
sudo chmod +x /opt/radar-collector/radar-collector
sudo chown radar-collector:radar-collector /opt/radar-collector/radar-collector
3. Create Configuration
sudo vi /etc/radar-collector/config.yml
collector:
id: radar-collector-001
server:
grpc_url: ${RADAR_SERVER_URL}
api_key: ${RADAR_API_KEY}
deployments:
- id: redis-prod
name: Production Redis
type: standalone
redis_url: ${REDIS_URL}
4. Create Environment File
sudo vi /etc/radar-collector/environment
RADAR_SERVER_URL=http://localhost:50051
RADAR_API_KEY=your-api-key
REDIS_URL=redis://localhost:6379
RUST_LOG=info
Set permissions:
sudo chmod 600 /etc/radar-collector/environment
sudo chmod 640 /etc/radar-collector/config.yml
5. Create Systemd Service
sudo vi /etc/systemd/system/radar-collector.service
[Unit]
Description=Radar Collector
After=network.target
[Service]
Type=simple
User=radar-collector
Group=radar-collector
WorkingDirectory=/opt/radar-collector
ExecStart=/opt/radar-collector/radar-collector --config /etc/radar-collector/config.yml
Restart=always
RestartSec=10
EnvironmentFile=/etc/radar-collector/environment
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
6. Start Service
sudo systemctl daemon-reload
sudo systemctl enable radar-collector
sudo systemctl start radar-collector
sudo systemctl status radar-collector
Service Management
# View logs
sudo journalctl -u radar-collector -f
# Restart after config changes
sudo systemctl restart radar-collector
# Stop service
sudo systemctl stop radar-collector