Open-source Winlink client (Go): store-and-forward email over HF/VHF radio.
Find a file
Martin Hebnes Pedersen 77cc83bdc1 Support config overrides using env variables
Override configuration values by setting PAT_* environment variables.
This is handy when deploying a containerized/scripted setup.

Syntax examples:
* PAT_MYCALL=LA5NTA
* PAT_ARDOP_ADDR="host:port"
2023-11-05 07:08:14 +01:00
.github/workflows ci: Push docker images only when new tag is pushed 2023-10-18 22:21:19 +02:00
cfg Delete dated example_config.json 2023-04-30 09:04:44 +02:00
debian Bump version (v0.15.0) 2023-06-10 13:15:41 +02:00
internal go fmt ./... 2023-10-21 13:10:19 +02:00
man fix(manpage): update manpage to point users to proper paths for config, logs, and mailbox 2022-04-07 15:56:44 +02:00
osx Bump version (v0.15.0) 2023-06-10 13:15:41 +02:00
share Add systemd unit file for rigctld 2020-09-28 18:59:02 +02:00
web Update node version and transitive deps 2023-10-18 18:39:10 +00:00
.gitignore Add Dockerfile and docker-compose.yml 2023-10-15 12:39:49 +02:00
.gitmodules Switch to Go Modules for dependency management 2020-05-28 19:01:34 +02:00
cli_composer.go Only attach Forms XML if a viewer file is defined 2023-09-22 20:26:17 +02:00
config.go Support config overrides using env variables 2023-11-05 07:08:14 +01:00
connect.go Close VARA modem before re-initializing 2023-06-14 21:22:16 +02:00
CONTRIBUTING.md fix(manpage): update manpage to point users to proper paths for config, logs, and mailbox 2022-04-07 15:56:44 +02:00
convert_image.go Don't attempt to convert SVG attachments 2023-07-24 19:27:02 +02:00
docker-compose.yml Add Dockerfile and docker-compose.yml 2023-10-15 12:39:49 +02:00
Dockerfile Include Root CA certificates in Docker image 2023-10-27 21:35:03 +02:00
env.go Add missing VARA_DEBUG to env's output 2023-05-21 22:02:24 +02:00
event_log.go Fix some Go linter errors 2021-08-20 21:35:21 +02:00
exchange.go Improve dirty disconnect 2023-05-25 06:25:43 +02:00
flags.go Graceful shutdown through context cancellation 2022-02-20 14:48:29 +01:00
freq.go Add support for AGWPE (e.g. Direwolf) over TCP 2023-02-21 11:14:17 +01:00
go.mod Support config overrides using env variables 2023-11-05 07:08:14 +01:00
go.sum Support config overrides using env variables 2023-11-05 07:08:14 +01:00
http.go go fmt ./... 2023-10-21 13:10:19 +02:00
interactive.go Add support for AGWPE (e.g. Direwolf) over TCP 2023-02-21 11:14:17 +01:00
LICENSE Update copyright year 2020-02-20 21:46:06 +01:00
listen.go Rewrite aliases using serial-tnc:// 2023-05-21 23:35:13 +02:00
listener_hub.go Add support for AGWPE (e.g. Direwolf) over TCP 2023-02-21 11:14:17 +01:00
main.go Rewrite aliases using serial-tnc:// 2023-05-21 23:35:13 +02:00
make.bash wl2k-go@v0.11.6 (requires Go 1.19) 2023-10-18 20:57:41 +02:00
prompt_hub.go Remove unused ReadAborter 2022-02-20 22:10:06 +01:00
read.go Graceful shutdown through context cancellation 2022-02-20 14:48:29 +01:00
README.md Use Github Actions (#390) 2023-01-29 10:46:30 +01:00
riglist.go fix tests and compilation with TAGS=libhamlib 2023-10-07 14:26:32 +02:00
rmslist.go Integrate with github.com/n8jja/Pat-Vara 2022-08-20 21:25:03 +02:00
rmslist_test.go Integrate with github.com/n8jja/Pat-Vara 2022-08-20 21:25:03 +02:00
schedule.go Fix some Go linter errors 2021-08-20 21:35:21 +02:00
usage.go Add support for AGWPE (e.g. Direwolf) over TCP 2023-02-21 11:14:17 +01:00
utils.go Move config, data and state files to XDG locations 2021-08-15 19:35:15 +02:00
version_report.go Move config, data and state files to XDG locations 2021-08-15 19:35:15 +02:00
websocket_hub.go fsnotify cleanup 2023-06-16 21:37:18 +02:00

Build status Go Report Card Liberapay Patreons

Overview

Pat is a cross platform Winlink client with basic messaging capabilities.

It is the primary sandbox/prototype application for the wl2k-go project, and provides both a command line interface and a responsive (mobile-friendly) web interface.

It is mainly developed for Linux, but is also known to run on OS X, Windows and Android.

Features

  • Message composer/reader (basic mailbox functionality).
  • Auto-shrink image attachments.
  • Post position reports with location from local GPS, browser location or manual entry.
  • Rig control (using hamlib).
  • CRON-like syntax for execution of scheduled commands (e.g. QSY or connect).
  • Built in http-server with web interface (mobile friendly).
  • Git style command line interface.
  • Listen for P2P connections using multiple modes concurrently.
  • AX.25, telnet, PACTOR and ARDOP support.
  • Experimental gzip message compression (See "Gzip experiment" below).
Example
martinhpedersen@duo:~$ pat interactive
> listen winmor,telnet-p2p,ax25
2015/02/03 10:33:10 Listening for incoming traffic (winmor,telnet-p2p,ax25)...
> connect winmor:///LA3F
2015/02/03 10:34:28 Connecting to winmor:LA3F...
2015/02/03 10:34:33 Connected to WINMOR:LA3F
RMS Trimode 1.3.3.0 Follo.SE Oslo. Pactor & Winmor Hybrid Gateway
LA5NTA has 117 minutes remaining with LA3F
[WL2K-2.8.4.8-B2FWIHJM$]
Wien CMS via LA3F >
>FF
FC EM FOYNU8AKXX59 260 221 0
F> 68
1 proposal(s) received
Accepting FOYNU8AKXX59
Receiving [//WL2K test til linux] [offset 0]
>FF
FQ
Waiting for remote node to close the connection...
> _

Gzip experiment

Gzip message compression has been added as an experimental B2F extension. The extension is implemented as a backwards compatible alternative to the ancient LZHUF compression.

This experiment is enabled by default and sessions between two Pat nodes (or other software supporting this B2F extension) will use gzip compression when transferring messages.

For more information, see https://github.com/la5nta/wl2k-go#gzip-experiment.

Copyright (c) 2020 Martin Hebnes Pedersen LA5NTA

Contributors (alphabetical)

  • DL1THM - Torsten Harenberg
  • HB9GPA - Matthias Renner
  • K0RET - Ryan Turner
  • K0SWE - Chris Keller
  • KD8DRX - Will Davidson
  • KE8HMG - Andrew Huebner
  • KI7RMJ - Rainer Grosskopf
  • LA3QMA - Kai Günter Brandt
  • LA4TTA - Erlend Grimseid
  • LA5NTA - Martin Hebnes Pedersen
  • N2YGK - Alan Crosswell
  • VE7GNU - Doug Collinge
  • W6IPA - JC Martin
  • WY2K - Benjamin Seidenberg

Thanks to

The JNOS developers for the properly maintained lzhuf implementation, as well as the original author Haruyasu Yoshizaki.

The paclink-unix team (Nicholas S. Castellano N2QZ and others) - reference implementation

Amateur Radio Safety Foundation, Inc. - The Winlink 2000 project

F6FBB Jean-Paul ROUBELAT - the FBB forwarding protocol

Pat/wl2k-go is not affiliated with The Winlink Development Team nor the Winlink 2000 project [http://winlink.org].