89 lines
2.3 KiB
Markdown
89 lines
2.3 KiB
Markdown
# rMaps.online
|
|
|
|
Collaborative real-time friend-finding navigation for events.
|
|
|
|
## Features
|
|
|
|
- **Real-time GPS Sharing**: See your friends' locations on the map
|
|
- **Privacy-First**: Control who sees your location and at what precision
|
|
- **c3nav Integration**: Indoor navigation for CCC events (38C3, Easterhegg, Camp)
|
|
- **Ephemeral Rooms**: Create a room, share the link, meet up
|
|
- **No Account Required**: Just enter your name and go
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Run development server
|
|
npm run dev
|
|
```
|
|
|
|
Open [http://localhost:3000](http://localhost:3000)
|
|
|
|
## Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────┐
|
|
│ rMaps.online │
|
|
├─────────────────────────────────────────────────┤
|
|
│ Frontend: Next.js + React + MapLibre GL │
|
|
│ State: Zustand + Automerge (CRDT) │
|
|
│ Maps: OpenStreetMap (outdoor) + c3nav (indoor) │
|
|
│ Sync: WebSocket / Automerge Repo │
|
|
└─────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Room URLs
|
|
|
|
- **Path-based**: `rmaps.online/room/my-crew`
|
|
- **Subdomain** (planned): `my-crew.rmaps.online`
|
|
|
|
## c3nav Integration
|
|
|
|
rMaps integrates with [c3nav](https://github.com/c3nav/c3nav) for indoor navigation at CCC events:
|
|
|
|
- Automatic detection when entering venue area
|
|
- Indoor positioning via WiFi/BLE
|
|
- Floor-aware navigation
|
|
- Route planning to friends, events, and POIs
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Type checking
|
|
npm run type-check
|
|
|
|
# Linting
|
|
npm run lint
|
|
|
|
# Build for production
|
|
npm run build
|
|
```
|
|
|
|
## Deployment
|
|
|
|
### Docker
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
### Traefik Labels
|
|
|
|
The docker-compose.yml includes Traefik labels for:
|
|
- Main domain routing (`rmaps.online`)
|
|
- Wildcard subdomain routing (`*.rmaps.online`)
|
|
|
|
## Privacy
|
|
|
|
- **No tracking**: We don't store location history
|
|
- **Ephemeral rooms**: Auto-delete after 7 days of inactivity
|
|
- **Precision control**: Choose how accurately to share your location
|
|
- **Ghost mode**: Hide your location while staying in the room
|
|
|
|
## License
|
|
|
|
MIT
|