Skip to content

Navigation Menu

Sign in
Sign up

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.23 (latest)
  • Alpine 3.22

πŸ–₯️ 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.23 with your Alpine version)
echo "https://apk.pistar.uk/v3.23/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.23
./scripts/build-package.sh dmrclients x86_64 3.23
./scripts/build-package.sh dstarrepeater x86_64 3.23

πŸ“š 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

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /