No description
Find a file
Graham McIntire 69152e86b3
refactor: split PacketProducer.handle_cast into pattern-matched heads
The original handle_cast had nested `if`s: outer branch on demand > 0,
inner branch on buffer-over-capacity. Split into:

- handle_cast with a `when demand > 0` guard for the hot path that
  skips the buffer entirely.
- A fallback clause that computes whether the new size would overflow
  and delegates to buffer_packet/3.
- buffer_packet/3 has two clauses — one for the drop-oldest path
  (with telemetry + warning) and one for the simple append path. Both
  share the final `maybe_activate_backpressure |> reply_noemit` step.

All 19 existing PacketProducer tests pass; dialyzer stays clean.
2026-04-23 14:26:23 -05:00
.devcontainer update deps 2025-12-30 13:35:11 -06:00
.forgejo/workflows fix: use github.token for git push in forgejo workflow 2026-04-17 13:05:04 -05:00
.github/workflows chore: trigger CI rebuild 2026-04-17 12:46:28 -05:00
assets refactor(map): share isValidCoordinate and unwrapLongitudes helpers 2026-04-21 09:17:52 -05:00
config config: disable SSL/TLS for database connections 2026-03-22 11:27:44 -05:00
docs feat(mobile): rate-limit socket + batch historical packet delivery 2026-04-21 09:38:51 -05:00
k8s chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1776972295-c910f9a [skip ci] 2026-04-23 19:25:21 +00:00
lib refactor: split PacketProducer.handle_cast into pattern-matched heads 2026-04-23 14:26:23 -05:00
priv db: drop 10 unused legacy columns from packets table 2026-04-21 10:15:04 -05:00
rel Fix Erlang clustering: use IP-based node names with DNS strategy 2026-02-19 16:01:20 -06:00
scripts Remove all VectorGrid references and code 2025-07-28 07:43:44 -05:00
test refactor: pattern-match InfoLive.Show path parsing + add tests 2026-04-23 14:23:16 -05:00
vendor chore: update APRS parser submodule 2026-03-22 14:05:41 -05:00
.credo.exs auto style things 2023-12-17 12:11:57 -06:00
.dialyzer_ignore.exs chore: update dependencies and fix pre-existing issues 2026-04-15 14:07:29 -05:00
.dockerignore Implement all Docker performance optimizations 2025-07-26 16:12:47 -05:00
.formatter.exs update 2026-02-18 14:14:49 -06:00
.gitignore chore: ignore .worktrees directory for git worktree isolation 2026-03-01 15:01:08 -06:00
.gitmodules add gleam parser to test 2025-08-05 13:18:31 -05:00
.sobelow-skips Add other SSIDs list to map sidebar, fix context/web boundary 2026-02-18 18:15:02 -06:00
.test-commands perf: Optimize test suite for maximum speed 2025-08-01 17:43:39 -05:00
.tool-versions Bump Elixir 1.19.5/OTP 28.3/Debian trixie in Dockerfile and .tool-versions 2026-02-20 10:14:28 -06:00
AGENTS.md cleanup 2026-02-07 10:55:19 -06:00
capture_aprs.py Add mix parse_file task, fix datetime deprecation, update gitignore, fix cleanup worker test 2026-02-18 14:49:14 -06:00
CHANGELOG.md fix: remove invalid empty state from stream container 2025-10-12 12:16:27 -05:00
CLAUDE.md Add Tidewave dev dependency for browser-based debugging 2026-02-18 13:15:03 -06:00
Dockerfile Split Dockerfile build steps for better layer caching 2026-02-20 10:18:48 -06:00
fly.toml fly things 2025-06-13 15:10:29 -05:00
horusec-config.json add horusec to ci 2025-06-15 17:19:26 -05:00
LICENSE Initial commit 2023-01-26 13:19:38 -06:00
mix.exs chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
mix.lock chore: update dependencies and fix pre-existing issues 2026-04-15 14:07:29 -05:00
README.md docs: remove K3s deployment section from README 2026-02-25 16:28:29 -06:00
renovate.json chore(config): migrate config renovate.json 2026-03-03 16:58:26 +00:00
security-policy.json docker security 2025-06-15 11:06:24 -05:00
tail_logs.sh update 2026-02-25 16:29:45 -06:00
TODO.md Remove completed items from TODO.md 2026-02-20 09:06:49 -06:00
tsconfig.json typescript 2025-06-18 12:26:13 -05:00

Aprs

Prerequisites

Before setting up the project, ensure you have the following installed:

  • Elixir 1.17+
  • Erlang/OTP
  • PostgreSQL with PostGIS extension

Setup

To start your Phoenix server:

  • Run the complete setup:
    mix setup
    
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Deployment

This application is deployed to a Kubernetes cluster using Flux GitOps. The Kubernetes manifests are in the k8s/ directory and are automatically applied by Flux when changes are pushed to the main branch.

Learn more