Skip to content

MW0MWZ/MMDVM_APK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ham Radio APK Repository

Alpine Linux package repository for Ham Radio software, hosted on GitHub Pages.

Build Status

🌐 Repository URL

πŸ“¦ Available Packages

Core MMDVM Software

Package Description Components Upstream
mmdvmhost MMDVM Host Software & Calibration Tool MMDVMHost, MMDVMCal, RemoteCommand MMDVMHost & MMDVMCal

Repeater Software

Package Description Components Upstream
dstarrepeater D-Star Repeater Controller dstarrepeaterd, dstarrepeaterconfig DStarRepeater

Gateway & Client Packages

Package Description Components Upstream
dmrclients DMR Gateway and Cross-Mode converters DMRGateway, DMR2YSF, DMR2NXDN DMRGateway & MMDVM_CM
dstarclients D-Star Gateway and tools DStarGateway, dgwremotecontrol, dgwtexttransmit, dgwtimeserver, dgwvoicetransmit DStarGateway
ysfclients YSF Gateway, Parrot, DGId Gateway and Cross-Mode converters YSFGateway, YSFParrot, DGIdGateway, YSF2DMR, YSF2NXDN, YSF2P25 YSFClients & MMDVM_CM
nxdnclients NXDN Gateway, Parrot and Cross-Mode converter NXDNGateway, NXDNParrot, NXDN2DMR NXDNClients & MMDVM_CM
p25clients P25 Gateway and Parrot P25Gateway, P25Parrot P25Clients
pocsagclients POCSAG/DAPNET Gateway for paging DAPNETGateway DAPNETGateway
fmclients FM Gateway for analog-to-digital bridging FMGateway FMGateway
aprsclients APRS Gateway between APRS-IS and RF APRSGateway APRSGateway

πŸ”οΈ Supported Alpine Linux Versions

  • Alpine 3.22 (latest)
  • Alpine 3.21

πŸ–₯️ Supported Architectures

  • x86_64 - 64-bit Intel/AMD
  • armhf - 32-bit ARM (armv6, includes Raspberry Pi GPIO support)
  • aarch64 - 64-bit ARM (includes Raspberry Pi GPIO support)

πŸš€ Quick Start

Installation

Add the repository and install packages on your Alpine Linux system:

# Add repository (replace 3.22 with your Alpine version)
echo "https://apk.pistar.uk/v3.22/community" >> /etc/apk/repositories

# Add public key
wget -O /etc/apk/keys/hamradio.rsa.pub https://apk.pistar.uk/hamradio.rsa.pub

# Update and install
apk update

# Install all packages
apk add mmdvmhost aprsclients dmrclients dstarclients dstarrepeater \
        fmclients nxdnclients p25clients pocsagclients ysfclients

# Or install specific packages
apk add mmdvmhost          # MMDVM Host only
apk add dstarrepeater      # D-Star Repeater Controller
apk add dstarclients       # D-Star Gateway clients

Starting Services

All packages include OpenRC init scripts with logical service names:

# Configure services (configs stored under package directories)
cp /etc/mmdvmhost/MMDVM.ini.example /etc/mmdvmhost/MMDVM.ini
cp /etc/dmrclients/DMRGateway.ini.example /etc/dmrclients/DMRGateway.ini
cp /etc/ysfclients/YSFGateway.ini.example /etc/ysfclients/YSFGateway.ini
cp /etc/dstarrepeater/dstarrepeater.conf.example /etc/dstarrepeater/dstarrepeater.conf

# Start services
rc-service mmdvmhost start      # MMDVM Host
rc-service dmrgateway start     # DMR Gateway
rc-service ysfgateway start     # YSF Gateway + Parrot
rc-service dgidgateway start    # DGId Gateway
rc-service nxdngateway start    # NXDN Gateway + Parrot
rc-service p25gateway start     # P25 Gateway + Parrot
rc-service dstargateway start   # D-Star Gateway
rc-service dstarrepeater start  # D-Star Repeater Controller

# Cross-mode converters
rc-service ysf2dmr start        # YSF to DMR
rc-service ysf2nxdn start       # YSF to NXDN
rc-service ysf2p25 start        # YSF to P25
rc-service dmr2ysf start        # DMR to YSF
rc-service dmr2nxdn start       # DMR to NXDN
rc-service nxdn2dmr start       # NXDN to DMR

# Enable at boot
rc-update add mmdvmhost default
rc-update add dmrgateway default
rc-update add dstarrepeater default

πŸ”§ Building Packages

Packages are built using GitHub Actions. To trigger a build:

  1. Go to Actions
  2. Select "Build APK Packages" workflow
  3. Click "Run workflow"
  4. Select options:
    • Package: Choose specific package or "all"
    • Alpine Version: Choose specific version or "all"
  5. Click "Run workflow"

The build process:

  • Clones source from upstream git repositories
  • Builds for all architectures using QEMU emulation
  • Signs packages with repository private key
  • Generates repository indexes
  • Deploys to GitHub Pages

Automatic Builds

The repository monitors upstream repositories for changes and automatically rebuilds packages when updates are detected.

πŸ“ Package Versioning

Packages use date-based versioning with git commit tracking:

  • Format: YYYY.MM.DD-r0
  • Example: 2025.01.01-r0
  • Git commit hash is embedded in the package metadata

πŸ”‘ Repository Signing

All packages and indexes are signed with RSA keys:

πŸ› οΈ Development

Repository Structure

MMDVM_APK/
β”œβ”€β”€ .github/workflows/   # GitHub Actions workflows
β”‚   └── build-packages.yml
β”œβ”€β”€ packages/community/  # Package definitions
β”‚   β”œβ”€β”€ mmdvmhost/
β”‚   β”œβ”€β”€ dstarrepeater/   # D-Star Repeater Controller
β”‚   β”œβ”€β”€ dmrclients/      # DMRGateway, DMR2YSF, DMR2NXDN
β”‚   β”œβ”€β”€ dstarclients/    # DStarGateway and tools
β”‚   β”œβ”€β”€ ysfclients/      # YSFGateway, YSFParrot, DGIdGateway, YSF2*
β”‚   β”œβ”€β”€ nxdnclients/     # NXDNGateway, NXDNParrot, NXDN2DMR
β”‚   β”œβ”€β”€ p25clients/      # P25Gateway, P25Parrot
β”‚   β”œβ”€β”€ pocsagclients/   # DAPNETGateway
β”‚   β”œβ”€β”€ fmclients/       # FMGateway
β”‚   └── aprsclients/     # APRSGateway
β”‚       β”œβ”€β”€ APKBUILD     # Build recipe
β”‚       β”œβ”€β”€ *.initd      # OpenRC init scripts
β”‚       └── *.confd      # Configuration defaults
β”œβ”€β”€ keys/                # Public keys (private keys in GitHub Secrets)
β”œβ”€β”€ scripts/             # Build and maintenance scripts
β”œβ”€β”€ docs/                # Documentation
└── index.html           # Repository landing page

Package Organization

The repository follows a logical grouping structure:

  • Protocol-specific clients: dmrclients, dstarclients, ysfclients, nxdnclients, p25clients
    • Each contains the main gateway, parrot/test tools, and cross-mode converters where applicable
  • Repeater controllers: dstarrepeater - Complete D-Star repeater system
  • Core software: mmdvmhost - The main MMDVM host software
  • Single-purpose clients: aprsclients, pocsagclients, fmclients

Adding New Packages

  1. Create package directory: packages/community/{package_name}/
  2. Add APKBUILD file with build instructions
  3. Add OpenRC init scripts and configuration files
  4. Test locally with Docker (optional)
  5. Commit and run workflow

See docs/CONTRIBUTING.md for detailed instructions.

Local Testing

Test builds locally using Docker:

# Clone repository
git clone https://github.com/MW0MWZ/MMDVM_APK.git
cd MMDVM_APK

# Test build (requires Docker)
./scripts/build-package.sh mmdvmhost x86_64 3.22
./scripts/build-package.sh dmrclients x86_64 3.22
./scripts/build-package.sh dstarrepeater x86_64 3.22

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add your package following the guidelines
  4. Submit a pull request

All packages must be Ham Radio related and build from source.

πŸ“œ License

  • Repository infrastructure: MIT License
  • Individual packages maintain their upstream licenses
  • All packages: GPL-2.0-or-later

πŸ‘€ Maintainer

MW0MWZ - andy@mw0mwz.co.uk

πŸ”— Links


Built with ❀️ for the Amateur Radio community by Andy Taylor (MW0MWZ)

About

100% GitHub Hosted Alpine Repo for the G4KLX (and others) Digital Radio Softwares

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors