Files
trafficcue-server/README.md
2025-06-22 17:06:50 +02:00

69 lines
2.1 KiB
Markdown

# TrafficCue Server
**The backend for the TrafficCue navigation app**
Handles accounts, POI reviews, route sharing, MapAI, and more. All fully open and self-hostable.
---
## 🔧 What is this?
This is the backend server powering TrafficCue, the FOSS navigation app made for slow and special vehicles.
It handles:
- 🔐 Authentication (external OIDC server)
- 🗺️ POI reviews and ratings
- 🔗 Route/Location sharing between users
- 🧠 MapAI features
You can run this yourself to host your own instance, or contribute to the official one.
---
## 🚀 Quickstart
### Requirements
- Bun
- PostgreSQL
### Setup
#### Docker
1. Build the Docker image:
```bash
docker build -t trafficcue-server .
```
or pull the prebuilt image (recommended):
```bash
docker pull git.picoscratch.de/trafficcue/trafficcue-server:latest
```
2. Run the Docker container with the required environment variables:
```bash
docker run -d \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
-e DATABASE_URL=postgres://user:password@host:port/database \
... # other environment variables as needed \
trafficcue-server
```
or use docker compose as usual.
#### Local
1. Clone this repository
2. Run `bun install` to install dependencies
3. Launch the app at `src/main.ts` with the environment variables set:
- `DATABASE_URL` (PostgreSQL connection string: `postgres://user:password@host:port/database`)
- `GOOGLE_GENERATIVE_AI_API_KEY` (optional, to enable MapAI features. Its free at Google!)
- `TANKERKOENIG_API_KEY` (optional, to enable fuel price features. Its free!)
- `OIDC_ENABLED` (needs to be enabled for most features requiring authentication)
- `OIDC_AUTH_URL` (the Authentication URL of your OIDC server)
- `OIDC_CLIENT_ID` (the Client ID of your OIDC server)
- `OIDC_TOKEN_URL` (the Token URL of your OIDC server)
- `OIDC_JWKS_URL` (the JWKS/Certificate URL of your OIDC server)
- `REVIEWS_ENABLED` (optional, set to `true` to enable POI reviews by users, requires OIDC)
When configuring your OIDC server, make sure to enable Public Client and PCKE support.