Skip to content

leavesofgrass/docker-winlink

Repository files navigation

Docker WinLink 📻

An amateur-radio desktop in a container. One command gives you a full Linux desktop — in your web browser — with Winlink Express, VARA FM/HF, Dire Wolf, and CHIRP already installed. You set them up with your own callsign and settings the first time, and — thanks to the container's persistent storage — that configuration is kept across restarts and even rebuilds. No Linux or Docker experience needed. Runs on Windows, macOS, and Linux.

Winlink Express and VARA FM running on the Docker WinLink desktop

Winlink Express and VARA FM running under Wine on the containerized desktop — viewed in a web browser.

📡 You need an amateur radio license to transmit. Winlink's telnet mode and everything else here work for practice with no radio and no license.

Get started

1. Install Docker Desktop (Linux: Docker Engine + Compose plugin) and start it.

2. Get the files — download the ZIP from GitHub and unzip, or:

git clone https://github.com/leavesofgrass/docker-winlink docker-winlink
cd docker-winlink

3. Set your passwords — copy the example config and edit the two passwords:

cp .env.example .env        # macOS / Linux
Copy-Item .env.example .env # Windows PowerShell

4. Build and start (same command everywhere):

docker compose up -d --build

The first build takes 20–30 minutes — it downloads and sets everything up. You only wait once. Watch it with docker compose logs -f (Ctrl+C stops watching, not the container).

5. Open the desktophttp://localhost:6080/vnc.html, click Connect, enter your VNC_PASSWORD.

6. Launch an appApplications → Ham Radio → Winlink Express (or VARA).

That's it. 🎉

First run: set up your station

Nothing is pre-configured. The first time you open Winlink Express it walks you through a one-time setup — your callsign and a Winlink account (password). Winlink needs a valid account to run, so complete this once (VARA is registered the same way). You do this only once — it's saved (see Your setup is saved).

Then, to prove it works with no hardware, start a Telnet Winlink session — it sends real Winlink email over the internet, no radio required. When you're ready for the air, see docs/radios.md.

Everyday commands

docker compose up -d          # start
docker compose stop           # stop (keeps your data)
docker compose logs -f        # watch output
docker compose down           # stop + remove container (data kept)

Your setup is saved

Everything you configure — your callsign and Winlink account, VARA registration, messages, and app settings — lives in a Docker volume, which is separate from the container image by design. So it survives stop, start, and even a full rebuild of the image: set up your station once and it comes back every time. The only thing that erases it is docker compose down -v, a deliberate factory reset.

Rebuilding

Rebuild after editing the Dockerfile, or to pull newer packages:

docker compose up -d --build            # rebuild changed layers, then restart
docker compose build --no-cache         # full clean rebuild from scratch
docker compose down && docker compose up -d --build   # rebuild + recreate

Rebuilds reuse cached layers, so they're much faster than the first build unless the Arch base image refreshed. Your data volume is untouched by a rebuild.

Documentation

Keep it simple to start; reach for these when you need them:

Contributing

Improvements are very welcome — especially reports of what worked (or didn't) with your radio and host OS. See CONTRIBUTING.md. If this was useful, a ⭐ helps others find it.

License

This project — the Dockerfile, scripts, and documentation — is licensed under the GNU General Public License v2.0 (LICENSE). Copyright © 2026 Jon Pielaet (KD7SWH).

It does not redistribute Winlink Express or VARA — the image downloads those from their official sites when you build. Winlink Express is free for licensed hams; VARA (EA5HVK) is shareware that runs speed-limited until you buy a key. Dire Wolf, CHIRP, and hamlib are open-source. You are responsible for holding the proper license to transmit and following your local regulations.


73! Built on Arch Linux + XFCE + Wine.

About

Amateur-radio desktop in a container: Winlink Express + VARA under Wine, plus Dire Wolf, CHIRP, and hamlib, reachable from your web browser. Windows/macOS/Linux.

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors