Files
Simon Wicky b69c2e1e94 Nym Statistics API (#5800)
* move stats types from vpn-client to here

* base stats api

* change storage schema

* add link to nymAPI for whitelisting

* remove outdated comment

* more comments update

* example of chrono vs time

* Add build.rs
- exports DATABASE_URL so cargo check works
- exports SQLX_OFFLINE for CI
- added pg_up.sh which spawns PG container
  - required for cargo sqlx prepare

* fixes time vs chrono issue and cleaner build with docker

* add correct swagger types, with feature locking where relevant

* apply dynco suggestions

---------

Co-authored-by: dynco-nym <173912580+dynco-nym@users.noreply.github.com>
2025-05-28 10:23:11 +02:00

29 lines
1.1 KiB
Markdown

# Nym-statistics-api
A simple API to collect and store statistics sent by nym-vpn-client.
## Build instructions
The statistics API is backed by a PostgreSQL database so you'll need a PostgreSQL server running if you want to add migrations or add/modify SQL queries. I recommend https://postgresapp.com on MacOS, very easy to use. If you're on another OS, it's up to you.
Assuming your database is running at `postgresql://user:password@host:port/database_name` you'll likely need to run the following :
```bash
DATABASE_URL="postgresql://user:password@host:port/database_name"
# if you don't have an existing datase
sqlx database create --database-url $DATABASE_URL
sqlx migrate run --database-url $DATABASE_URL
# reset it if you messed with migrations while developping
sqlx database reset --database-url $DATABASE_URL
# or just run new migrations
sqlx migrate run --database-url $DATABASE_URL
# then prepare queries for offline build mode
cargo sqlx prepare --database-url $DATABASE_URL
```
This should allow `cargo build` without having any postgreSQL server running.
Be sure to add the `.sqlx` directory to version control