No description
Find a file
Graham McIntire ae8f2acc48
Fix symbol validation - prevent empty symbol codes
Added validation to ensure all packets with positions have valid symbols:
- symbol_code must be exactly 1 character, defaults to '>' (car) if missing
- symbol_table_id must be exactly 1 character, defaults to '/' if missing
- Validation only applies to packets with positions

Fixed 5 existing packets with empty symbol codes that would have caused
display issues on the map.

This prevents errors when rendering APRS symbols and ensures all positioned
packets can be displayed correctly.
2026-03-22 13:28:03 -05:00
.devcontainer update deps 2025-12-30 13:35:11 -06:00
.forgejo/workflows fix: correct Renovate configuration issues 2026-03-03 10:48:48 -06:00
.github/workflows Restore FluxCD auto-deployment via GitOps 2026-02-18 16:15:43 -06:00
assets fix: performance improvements and bug fixes across backend and frontend 2026-03-19 12:41:36 -05:00
config config: disable SSL/TLS for database connections 2026-03-22 11:27:44 -05:00
docs docs: add weather nearby API implementation plan 2026-03-22 11:27:45 -05:00
k8s chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774203373-57f243d [skip ci] 2026-03-22 18:16:50 +00:00
lib Fix symbol validation - prevent empty symbol codes 2026-03-22 13:28:03 -05:00
priv vendor heroicons 16/solid SVGs to priv 2026-03-15 14:07:56 -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 Fix object/item packets showing sender callsign instead of object name 2026-03-22 13:02:24 -05:00
vendor Display APRS object/item names instead of sender callsign 2026-02-19 09:13:03 -06:00
.credo.exs auto style things 2023-12-17 12:11:57 -06:00
.dialyzer_ignore.exs Replace ip-api.com geolocation with Cloudflare headers 2026-02-19 15:01:49 -06: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(deps): update dependencies to latest versions 2026-03-15 14:11:17 -05:00
mix.lock chore(deps): update floki 0.38.1, igniter 0.7.6, swoosh 1.23.1 2026-03-19 12:57:07 -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