Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.4. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.4) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| charts/listory | ||
| docs | ||
| frontend | ||
| observability | ||
| src | ||
| test | ||
| .dockerignore | ||
| .env.sample | ||
| .eslintrc.js | ||
| .gitignore | ||
| .prettierignore | ||
| .releaserc.yml | ||
| CHANGELOG.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| nest-cli.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| renovate.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
Listory
Login with Spotify and Listory will save all tracks you listen to.
The listens report shows how many songs you have listened to during the last month (and all months prior to that).
|
|
Want to know which song you heard on your drive to work last tuesday? Now you can!
|
Find out what genres (or artists, albums, songs) you listen to the most!
|
Installation
End-user Installation of Listory is not yet fully supported and the docs in this section are not complete. Please open an issue if you want to install this yourself, and I can help you through the process.
Configuration
All configuration must be set as environment variables. Default values are added in bold, values that are required are marked with Required.
Application
PORT: 3000: Port the webserver will listen on.APP_URL: http://localhost:3000: Public URL of the Application, is used to generate Links.
Authentication
JWT_SECRET: Required, used to sign the JWTs.JWT_ALGORITHM: HS256: Algorithm used to sign the JWTs. One ofHS256,HS384,HS512JWT_EXPIRATION_TIME: 1d: Lifetime of signed JWTs. Accepts strings like1d,2h,15m.
Spotify
SPOTIFY_CLIENT_ID: Required, Spotify App Client IDSPOTIFY_CLIENT_SECRET: Required, Spotify App Client SecretSPOTIFY_FETCH_INTERVAL_SEC: 60: Interval for fetching recently listened tracks from Spotify.SPOTIFY_UPDATE_INTERVAL_SEC: 60: Interval for updating previously imported music library entities (artist, album, track). Raise this number if you often hit the Spotify API Ratelimit.SPOTIFY_WEB_API_URL: https://api.spotify.com/: Spotify WEB API Endpoint.SPOTIFY_AUTH_API_URL: https://accounts.spotify.com/: Spotify Authentication API Endpoint.SPOTIFY_USER_FILTER: "": If set, only allow Spotify users with these ids to access the app. If empty, allow all users to access the app. Seperate ids with,eg.:231421323123,other_id.
Database
DB_HOST: Required, Database hostDB_USERNAME: Required, Database usernameDB_PASSWORD: Required, Database passwordDB_DATABASE: Required, Database databaseDB_POOL_MAX: 50, max concurrent database connections
Sentry
You can use Sentry to automatically detect and report any exceptions thrown.
SENTRY_ENABLED: false, Set totrueto enable Sentry.SENTRY_DSN: Required, but only ifSENTRY_ENABLEDistrue. The DSN for your Sentry project.
OpenTelemetry
We use OpenTelemetry to provide observability into Listory API.
The metrics will be exposed on a seperate port at :9464/metrics. Make sure that this endpoint is not publicly available in your deployment.
Traces will be sent to the specified endpoint.
To use observability tools locally, check out docker-compose setup in observability/.
OTEL_METRICS_ENABLED: false, Set totrueto activate metrics.OTEL_TRACES_ENABLED: false, Set totrueto activate traces.OTEL_EXPORTER_OTLP_ENDPOINT: Required, but only ifOTEL_TRACES_ENABLEDistrue. The endpoint that traces are sent to, see OpenTelemetry docsOTEL_EXPORTER_PROMETHEUS_PORT: 9464, Set to configure non-standard port for Prometheus metrics
Development
Configure Spotify API Access
Copy the file .env.sample to .env and add your Spotify API Key.
Starting the application
We use docker compose to provide a full local development environment.
$ docker compose up
You can now access the frontend at http://localhost:3000 and the API at http://localhost:3000/api.
Frontend and API will automatically reload on any code changes.
REPL Console
You can start the REPL console by starting the normal environment, and then running:
$ docker compose run console
Observability
If you want to start the observability suite (Metrics & Tracing) locally, you can use the observability docker compose profile:
$ docker compose --profile observability up
Grafana is then available at http://localhost:2345 and all sources are preconfigured.
Test
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
License
Listory is MIT licensed.
The listens report shows how many songs you have listened to during the last month (and all months prior to that).
Want to know which song you heard on your drive to work last tuesday? Now you can!
Find out what genres (or artists, albums, songs) you listen to the most!