Files
koenieee 7f0bcd60ad Initial commit - DDNS Updater with complete CI/CD pipeline
- Rust-based DDNS updater for nginx allow list management
- Comprehensive GitHub Actions workflows (CI/CD, nightly, docs, release)
- Debian package creation with systemd integration
- Cross-platform builds (AMD64, ARM64, MUSL)
- Security auditing and dependency management
- Complete documentation and testing suite
- Systemd service files with advanced configuration
- Interactive and automated installation scripts
2025-09-30 10:02:08 +02:00

6.3 KiB

DDNS Updater - Debian Package Installation Guide

🎉 Enhanced Debian Package Successfully Created!

I've successfully created a professional Debian package (.deb) with automatic interactive setup for your DDNS updater! Here's what was accomplished:

Package Details

  • File: ddns-updater_0.1.0-1_amd64.deb
  • Size: ~400KB
  • Architecture: amd64 (x86_64)
  • Dependencies: systemd, curl, ca-certificates
  • Recommends: nginx

🚀 Installation

sudo apt install ./ddns-updater_0.1.0-1_amd64.deb

Method 2: Direct Installation

sudo dpkg -i ddns-updater_0.1.0-1_amd64.deb

⚙️ Post-Installation Setup

After installation, the package automatically:

  • Creates ddns-updater system user and group
  • Sets up proper directories with secure permissions
  • Installs all systemd service files
  • Registers services with systemd
  • Prompts for interactive setup (new feature!)

Automatic Setup Prompt

The package will automatically ask after installation:

Would you like to run the interactive setup script now? [Y/n]:
  • Choose 'Y' (default): Runs the interactive setup immediately
  • Choose 'N': Skip setup, configure manually later

Manual Setup (if skipped)

Interactive Setup

sudo /usr/share/ddns-updater/install-systemd.sh

Advanced Multi-Host Setup

sudo /usr/share/ddns-updater/install-systemd-advanced.sh

📁 Installed Files

The package installs files to:

/usr/bin/ddns-updater                          # Main binary
/usr/bin/ddns-backup-cleanup                   # Backup cleanup utility
/usr/share/ddns-updater/                       # Installation scripts
├── install-systemd.sh                         # Interactive setup
├── install-systemd-advanced.sh                # Advanced setup
├── uninstall-systemd.sh                       # Removal script
└── test-interactive.sh                        # Test prompts

/lib/systemd/system/                           # Systemd service files
├── ddns-updater.service                       # Main service
├── ddns-updater.timer                         # Service timer
├── ddns-updater@.service                      # Template service
├── ddns-updater@.timer                        # Template timer
├── ddns-backup-cleanup.service                # Cleanup service
├── ddns-backup-cleanup.timer                  # Cleanup timer
└── ddns-updater.target                        # Service group

/etc/ddns-updater/                             # Configuration directory
/var/lib/ddns-updater/                         # Data directory
/var/log/ddns-updater/                         # Log directory

/usr/share/doc/ddns-updater/                   # Documentation
├── README.md                                  # Main documentation
├── systemd-README.md                          # Systemd guide
├── SYSTEMD.md                                 # Service details
├── SERVICE_GROUPING.md                        # Group management
├── BACKUP_CLEANUP.md                          # Cleanup features
└── INTEGRATION_SUMMARY.md                     # Feature overview

🎛️ Service Management

Individual Services

# Main DDNS service
sudo systemctl start ddns-updater.service
sudo systemctl enable ddns-updater.timer

# Backup cleanup service
sudo systemctl start ddns-backup-cleanup.timer
sudo systemctl enable ddns-backup-cleanup.timer

Service Group Management

# Manage all services together
sudo systemctl start ddns-updater.target
sudo systemctl enable ddns-updater.target
sudo systemctl status ddns-updater.target

🔧 Configuration

Place your DDNS configuration files in:

/etc/ddns-updater/

Example configuration can be found in:

/usr/share/ddns-updater/examples/

📊 Monitoring

View Logs

# Service logs
sudo journalctl -u ddns-updater.service -f

# Cleanup logs  
sudo journalctl -u ddns-backup-cleanup.service -f

# All DDNS logs
sudo journalctl -t ddns-updater -f

Check Service Status

# Individual service status
sudo systemctl status ddns-updater.service
sudo systemctl status ddns-backup-cleanup.service

# Service group status
sudo systemctl status ddns-updater.target

🗑️ Package Management

Check Installation

dpkg -l ddns-updater                           # List package info
dpkg -L ddns-updater                           # List installed files
dpkg -s ddns-updater                           # Show package status

Remove Package

sudo apt remove ddns-updater                   # Remove (keep config)
sudo apt purge ddns-updater                    # Remove everything

🎯 Features Included

Professional Installation

  • System user/group creation
  • Secure directory permissions
  • Systemd integration
  • Dependency management
  • Clean removal support

Service Integration

  • Main DDNS updater service
  • Automated backup cleanup
  • Service grouping for unified management
  • Timer-based scheduling
  • Template services for multiple hosts

Management Tools

  • Interactive installation scripts
  • Advanced multi-host configuration
  • Testing and validation utilities
  • Comprehensive documentation
  • Example configurations

Production Ready

  • Security hardening
  • Proper logging
  • Service monitoring
  • Backup management
  • Professional packaging standards

🚀 Quick Start

  1. Install the package:

    sudo apt install ./ddns-updater_0.1.0-1_amd64.deb
    
  2. Run interactive setup:

    sudo /usr/share/ddns-updater/install-systemd.sh
    
  3. Check service status:

    sudo systemctl status ddns-updater.target
    
  4. Monitor logs:

    sudo journalctl -u ddns-updater.service -f
    

🎉 Success!

Your DDNS updater is now packaged as a professional Debian package with:

  • Complete systemd integration
  • Automated installation and setup
  • Professional service management
  • Production-ready configuration
  • Comprehensive documentation

The package follows Debian packaging standards and provides enterprise-grade deployment capabilities! 🎯