Offline Logger for amateur radio contacts
  • Go 44.2%
  • Svelte 34.7%
  • TypeScript 18.9%
  • CSS 1%
  • Just 0.8%
  • Other 0.3%
Find a file
2026-06-14 23:33:13 -05:00
frontend Hide extra fields from Generic/General view 2026-06-14 23:33:13 -05:00
internal Hide extra fields from Generic/General view 2026-06-14 23:33:13 -05:00
scripts working PoC 2026-06-13 21:51:16 -05:00
.env.example initial commit 2026-06-10 12:37:33 -05:00
.gitignore working PoC 2026-06-13 21:51:16 -05:00
.golangci.yml initial commit 2026-06-10 12:37:33 -05:00
.npmrc initial commit 2026-06-10 12:37:33 -05:00
.prettierrc.json initial commit 2026-06-10 12:37:33 -05:00
AGENTS.md More AGENTS.md refining 2026-06-14 13:56:34 -05:00
docker-compose.yml working PoC 2026-06-13 21:51:16 -05:00
embed.go working PoC 2026-06-13 21:51:16 -05:00
eslint.config.js working PoC 2026-06-13 21:51:16 -05:00
go.mod Add CTY refdata ingestion and API support 2026-06-14 00:56:11 -05:00
go.sum Add CTY refdata ingestion and API support 2026-06-14 00:56:11 -05:00
justfile build and rev version moved, and proper clean/dirty status tracking for display 2026-06-14 02:09:48 -05:00
LICENSE README and LICENSE 2026-06-14 02:48:19 -05:00
main.go Make logbook changes propagate/hydrate as entered via SSE to online clients 2026-06-14 20:09:58 -05:00
pnpm-lock.yaml initial commit 2026-06-10 12:37:33 -05:00
pnpm-workspace.yaml working PoC 2026-06-13 21:51:16 -05:00
README.md README and LICENSE 2026-06-14 02:48:19 -05:00
svelte.config.js working PoC 2026-06-13 21:51:16 -05:00
tsconfig.json working PoC 2026-06-13 21:51:16 -05:00
vite.config.ts working PoC 2026-06-13 21:51:16 -05:00

OLogger

OLogger is an offline-first amateur radio logging application: a Go daemon that serves a Svelte SPA and API for QSO logging, sync, and enrichment.

What it is based on

  • Backend: Go 1.26, Chi router, PostgreSQL, Valkey Streams, OIDC auth
  • Frontend: Svelte 5 + Vite + Tailwind, Dexie (IndexedDB), service worker for offline behavior
  • Data enrichment: POTA/SOTA/WWFF/CTY reference data, QRZ + HamQTH callbook integrations

Configuration

  1. Copy and edit environment values:
    • Template: .env.example
    • Local runtime file: .env (for development)
  2. Required values include:
    • APP_KEY
    • DATABASE_URL
    • VALKEY_URL, VALKEY_QUEUE_DB, VALKEY_CACHE_DB
    • OIDC_ISSUER_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_REDIRECT_URL
    • SESSION_HASH_KEY, SESSION_BLOCK_KEY
  3. Generate 32-byte base64 secrets with:
    • openssl rand -base64 32

How to run

  1. Install dependencies:
    • Go 1.26.x
    • pnpm
    • PostgreSQL
    • Valkey/Redis-compatible server
  2. Start local services (example):
    • docker-compose up -d
  3. Build and run checks:
    • just build
  4. Deploy the daemon to the expected user path and restart service:
    • just deploy
  5. Common commands:
    • just lint
    • just check
    • just clean

License

This project is licensed under the MIT License. See LICENSE.