Commit graph

25 commits

Author SHA1 Message Date
3148b241da
Add Tidewave dev dependency for browser-based debugging 2026-02-18 13:15:03 -06:00
ddbb72b1b2
Add mobile API for iOS/Android real-time packet streaming
- Create MobileChannel for geographic bounds-based packet filtering
- Add MobileUserSocket for mobile client connections
- Implement subscribe_bounds, update_bounds, and unsubscribe events
- Leverage existing StreamingPacketsPubSub infrastructure
- Add comprehensive mobile API documentation with Swift examples
- WebSocket endpoint: wss://aprs.me/mobile/websocket
- Channel: mobile:packets

This enables iOS/Android apps to receive real-time APRS packets
filtered by geographic viewport, with efficient bandwidth usage.
2025-10-25 11:25:18 -05:00
571814c080
Remove Redis dependency from RateLimiterWrapper
- Always use ETS-based RateLimiter instead of checking for REDIS_URL
- Remove RedisRateLimiter calls that were causing crashes
- Simplify wrapper to only delegate to Aprsme.RateLimiter
2025-10-25 09:44:44 -05:00
6acc007360
refactor: remove Redis dependency for PubSub, use distributed Erlang
- Remove phoenix_pubsub_redis dependency from mix.exs
- Update PubSub configuration to use Phoenix's native distributed capabilities
- Simplify clustering logic - no longer requires Redis URL for PubSub
- Phoenix PubSub automatically distributes messages across connected Erlang nodes
- Benefits: lower latency, automatic failure handling, simpler deployment
- Redis still available for caching and job processing when needed
- Maintains backward compatibility for both clustered and non-clustered modes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 15:48:00 -05:00
a95fca7dd1
update claude readme 2025-08-11 13:03:11 -05:00
8015964dea
fix test 2025-08-04 21:32:57 -05:00
fd6dd573b9
update parser and claude.md 2025-07-29 12:12:43 -05:00
31b2f8fb91
Add SSL support for PostgreSQL connections
- Add DATABASE_SSL and DATABASE_SSL_VERIFY environment variables
- Configure Postgrex to use SSL with optional certificate verification
- Allow connecting to PostgreSQL with self-signed certificates
2025-07-29 10:31:04 -05:00
cba86c2757
Strengthen pre-commit guidelines and restore APRS_PORT configuration
- Add explicit mandatory pre-commit steps with detailed explanations
- Emphasize mix format as the critical first step before any git operations
- Make formatting requirements non-negotiable and automatic habit
- Restore APRS_PORT environment variable in StatefulSet configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 14:00:59 -05:00
c509500320
format 2025-07-27 13:57:33 -05:00
865fc90871
Remove Gleam and convert encoding module to pure Elixir
- Convert Gleam encoding module to Elixir implementation
- Remove all Gleam dependencies from mix.exs
- Remove Gleam configuration files (gleam.toml, src directory)
- Update Dockerfile to remove mix_gleam installation
- Update EncodingUtils to use Elixir module instead of Gleam
- Remove Gleam references from documentation
- Clean up all Gleam-related build configuration

This simplifies the build process and removes the compilation issues
that were preventing successful Docker builds.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 11:05:24 -05:00
f6b0454d79
db indexes 2025-07-26 18:41:08 -05:00
f38f2b4c59
Add CHANGELOG.md and update documentation process
- Create comprehensive CHANGELOG.md with all recent changes
- Add mandatory instruction in CLAUDE.md to update changelog
- Follow Keep a Changelog format for consistency
- Document all changes from v0.1.0 to current v0.2.0

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:45:53 -05:00
52716da109
Remove Node.js from Docker build
- Phoenix uses standalone ESBuild and Tailwind binaries
- No npm dependencies needed (package.json was empty)
- Removes ~150MB from Docker image
- Speeds up build time by removing Node.js installation step

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:03:49 -05:00
e00d1bdf47
Update documentation with completed improvements
- Add reminder in CLAUDE.md to update improvement todos
- Document completed Redis PubSub integration
- Document completed PgBouncer deployment
- Document completed distributed caching implementation
- Document completed distributed rate limiting
- Add current architecture summary

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:32:19 -05:00
dee204202a
Update CLAUDE.md with StatefulSet clustering documentation
- Document StatefulSet deployment structure
- Update kubectl commands for StatefulSet
- Add clustering architecture details
- Include cluster configuration environment variables

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 12:25:31 -05:00
4804bd16be
Add distributed Erlang clustering for single APRS-IS connection
Implement leader election to ensure only one APRS-IS connection across
multiple Kubernetes replicas. This prevents duplicate packet processing
and respects APRS-IS usage policies.

Key changes:
- Add leader election using :global registry
- Create connection manager for dynamic APRS-IS management
- Implement packet distribution from leader to all nodes
- Add Kubernetes headless service for node discovery
- Configure DNS-based clustering with libcluster
- Update deployment to support 3 replicas with clustering

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 10:30:29 -05:00
80a35c5667
Update CLAUDE.md to emphasize formatting before commits
- Made it CRITICAL to always run mix format BEFORE committing
- Added Pre-Commit Checklist section with step-by-step process
- Emphasized this is non-negotiable to maintain code consistency

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-25 09:32:28 -05:00
c52adc8a9e
Fix Phoenix check_origin configuration and add kubectl docs
- Replace invalid wildcard domains (*.aprs.me) with explicit origins
- Phoenix doesn't support wildcard syntax in check_origin
- Added specific domains for aprs.me, sentry.io, and openstreetmap.org
- Updated CLAUDE.md with kubectl commands for debugging k3s deployment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:40:15 -05:00
9c7a6f01dd minor updates for gleam 2025-07-20 18:08:28 -05:00
3286b6852b
fix compile warnings 2025-07-09 16:58:07 -05:00
43b2cb1df0
fix migration errors 2025-07-09 16:27:21 -05:00
514d1b66d5
fix all the main map display issues 2025-07-09 16:20:29 -05:00
fd82d6e7bd
update claude info 2025-07-08 15:33:40 -05:00
711d92ebb6
performance improvements 2025-07-08 10:03:52 -05:00