Infrastructure-as-Code for the BayMe.sh DNS Zone with integrated web flasher for MeshControl fork firmware.
- bayme.sh - Main domain
- flasher.bayme.sh - Web flasher for MeshControl fork firmware
The web flasher is built from baymesh/web-flasher and hosts fork firmware from baymesh/bayme.sh-firmware.
- MeshControl (Port 78): Remote configuration via signed HMAC packets
- Relay Node: Control which nodes rebroadcast messages
- HOP_MAX=64: Reduced hop limit
bayme.sh-zone/
├── .github/workflows/
│ └── jobs.yaml # Builds firmware + web flasher
├── dnsconfig.js # DNS configuration
└── README.md
baymesh/web-flasher/
├── types/resources.ts # Firmware version config
├── public/data/ # Firmware artifacts
└── ... (Nuxt.js app)
baymesh/bayme.sh-firmware/
├── src/mesh/ # Firmware source
├── protobufs-fork/ # Custom protobufs
└── platformio.ini # Build config
- Push to
firmware/orweb-flasher/triggers builds - GitHub Actions builds RAK4631 firmware and web flasher
- Artifacts published to GitHub Pages
To trigger a build manually:
gh workflow run jobs.yaml| Record | Value | Purpose |
|---|---|---|
| A @ | 185.199.108-111.153 | GitHub Pages |
| CNAME flasher | baymesh.github.io | Web flasher |
| CNAME meshyview | meshyview.pages.dev | Mesh viewer |
| A app | 34.111.179.208 | App server |
| A mqtt | 216.218.222.55-57 | MQTT brokers |
- baymesh/bayme.sh-firmware - Forked Meshtastic firmware
- baymesh/web-flasher - Forked web flasher
- baymesh/bayme.sh-zone - This repo (DNS + CI/CD)
Fork these repos to your GitHub:
- https://github.com/meshtastic/firmware → baymesh/bayme.sh-firmware
- https://github.com/meshtastic/web-flasher → baymesh/web-flasher
Copy the modified files from your firmware-Fork to baymesh/bayme.sh-firmware:
src/mesh/MeshTypes.h(HOP_MAX = 64)src/mesh/MeshService.cpp(relay_node support)src/mesh/NextHopRouter.cpp(relay_node logic)protobufs-fork/(custom protobufs)- Any other modifications
Update types/resources.ts with your firmware repo URL:
export const forkConfig = {
enabled: true,
firmwareRepo: 'https://raw.githubusercontent.com/baymesh/bayme.sh-zone/gh-pages',
githubRepo: 'https://github.com/baymesh/bayme.sh-firmware',
// ...
}In baymesh/bayme.sh-zone:
- Go to Settings → Pages
- Source: Deploy from a branch
- Branch:
gh-pages/(root)
In baymesh/bayme.sh-zone Settings → Secrets:
PORKBUN_API_KEYPORKBUN_SECRET_KEYDISCORD_WEBHOOK(optional)
cd baymesh-zone
gh workflow run jobs.yaml- Visit https://flasher.bayme.sh
- Select your device (RAK4631)
- Flash the MeshControl fork firmware
- Edit
dnsconfig.js - Commit and push
- GitHub Actions will automatically update DNS
- Update firmware repo
- Workflow auto-builds on push
- Update web-flasher repo
- Workflow auto-deploys changes
DNS configuration managed with DNSControl.