- migrations 21->23: dedicated `tickets` schema (tickets.inc / tickets.crq, raw-jsonb-first), geo_clusters + geo_locations gazetteers, geom-resolution trigger (feed -> location -> cluster -> none), reporting.fn_tickets_for_map - dashboard_api: GET /webhook/tickets (INC/CRQ GeoJSON for the FleetOps map) - tools/import_tickets.py: raw-first bucket ingest + cluster/location geocoding (LocationIQ/OpenCage, viewbox-bounded with a cluster-distance sanity guard) - docs/CONNECTIONS.md: geocoder env var names Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Connection Parameters Reference
No secrets are stored here. All values come from .env at runtime.
SSH
Host: stage.rahamafresh.com
User: kianiadee
Key: ~/.ssh/id_ed25519
ssh -i ~/.ssh/id_ed25519 kianiadee@stage.rahamafresh.com
Database
| Parameter | Value |
|---|---|
| Database | tracksolid_db |
| Host (internal) | timescale_db (Docker service name) |
| Port | 5432 |
| App user | tracksolid_owner |
| Read-only user | dashboard_ro (used by the staging bridge) · grafana_ro (legacy, retained but unused) |
| Superuser | postgres |
.env variable names
POSTGRES_DB=tracksolid_db
POSTGRES_USER=...
POSTGRES_PASSWORD=...
DATABASE_URL=postgresql://tracksolid_owner:<password>@timescale_db:5432/tracksolid_db
Run a query from host
DB=$(docker ps --filter name=timescale_db --format "{{.Names}}" | head -1)
docker exec $DB psql -U postgres -d tracksolid_db -c "SELECT COUNT(*) FROM tracksolid.devices;"
Run a query file
docker exec -i $DB psql -U postgres -d tracksolid_db < migration.sql
Tracksolid Pro API
| Parameter | Env var |
|---|---|
| App key | TRACKSOLID_APP_KEY |
| App secret | TRACKSOLID_APP_SECRET |
| User ID | TRACKSOLID_USER_ID |
| Target account | TRACKSOLID_TARGET_ACCOUNT (defaults to USER_ID) |
| Password MD5 | TRACKSOLID_PWD_MD5 |
| Base URL | TRACKSOLID_API_URL (default: https://eu-open.tracksolidpro.com/route/rest) |
Geocoder (tickets location geocoding)
Used by tools/import_tickets.py --geocode-locations / --geocode-clusters to turn ticket
location_name/cluster text into coordinates (tickets.geo_locations / tickets.geo_clusters).
A keyed provider is required — the public Nominatim server rate-limits bulk lookups.
| Parameter | Env var |
|---|---|
| Provider | GEOCODER_PROVIDER (locationiq (default) | opencage) |
| API key | GEOCODER_API_KEY |
| Min interval | GEOCODER_MIN_INTERVAL_S (default 1.1 — throttle to provider TOS) |
Container Name Resolution
Coolify appends a random suffix to all container names. Never hardcode. Always resolve:
# Pattern
docker ps --filter name=<service_name> --format "{{.Names}}" | head -1
# Examples
docker ps --filter name=timescale_db --format "{{.Names}}" | head -1
docker ps --filter name=ingest_worker --format "{{.Names}}" | head -1
docker ps --filter name=webhook_receiver --format "{{.Names}}" | head -1
docker ps --filter name=dashboard_api --format "{{.Names}}" | head -1
Current suffix (may change on redeploy): bo3nov2ija7g8wn9b1g2paxs-19xxxxxxxxxx
Forgejo
Host: https://repo.rahamafresh.com
Repo: kianiadee/tracksolid_timescale_grafana_prod
Remote: https://repo.rahamafresh.com/kianiadee/tracksolid_timescale_grafana_prod.git