Track your Spotify listens
Find a file
Julian Tölle b4a15e8b14 ci: remove unnecessary code cov archiving
Code coverage is now uploaded and saved to codecov
2021-07-27 17:53:20 +02:00
.github/workflows ci: remove unnecessary code cov archiving 2021-07-27 17:53:20 +02:00
assets feat(frontend): add favicon 2020-05-14 03:10:24 +02:00
charts/listory chore(release): 1.13.0 [skip ci] 2021-05-25 17:37:42 +00:00
frontend chore(deps): upgrade to npm7 lockfile format 2021-05-25 19:33:11 +02:00
src test: create initial unit tests 2021-07-18 21:57:38 +02:00
test test: create initial unit tests 2021-07-18 21:57:38 +02:00
.dockerignore feat(frontend): add footer with version number 2021-05-24 19:00:07 +02:00
.env.sample feat: add docs and polish 2020-05-03 21:10:31 +02:00
.eslintrc.js chore(lint): switch to eslint 2021-05-25 18:12:42 +02:00
.gitignore feat: serve frontend from api container in prod build 2020-05-03 21:10:31 +02:00
.prettierignore style(helm): run prettier and add templates to prettierignore 2020-11-21 15:53:51 +01:00
.releaserc.yml fix(ci): Helm chart still not properly released 2020-05-12 02:06:40 +02:00
CHANGELOG.md chore(release): 1.13.0 [skip ci] 2021-05-25 17:37:42 +00:00
docker-compose.yml chore(frontend): upgrade to tailwind v2 2021-05-22 17:36:03 +02:00
Dockerfile chore(deps): upgrade to node 16 2021-05-24 20:41:36 +02:00
LICENSE feat: add docs and polish 2020-05-03 21:10:31 +02:00
nest-cli.json feat(api): setup nestjs 2020-05-03 21:00:20 +02:00
package-lock.json chore(release): 1.13.0 [skip ci] 2021-05-25 17:37:42 +00:00
package.json test: create initial unit tests 2021-07-18 21:57:38 +02:00
README.md feat: add optional basic auth for metrics endpoint 2020-12-06 03:03:33 +01:00
renovate.json chore(deps): configure renovate 2020-05-07 01:48:30 +02:00
tsconfig.build.json feat(api): setup nestjs 2020-05-03 21:00:20 +02:00
tsconfig.json build: fix issue where frontend was included in backend tsc build 2021-06-22 21:06:35 +02:00

Listory

Login with Spotify and Listory will save all tracks you listen to.

Installation

End-user Installation of Listory is not yet fully supported and the docs in this section are not complete.

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 of HS256, HS384, HS512
  • JWT_EXPIRATION_TIME: 1d: Lifetime of signed JWTs. Accepts strings like 1d, 2h, 15m.

Spotify

  • SPOTIFY_CLIENT_ID: Required, Spotify App Client ID
  • SPOTIFY_CLIENT_SECRET: Required, Spotify App Client Secret
  • SPOTIFY_FETCH_INTERVAL_SEC: 60: Interval for fetching recently listened tracks from Spotify.
  • 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 host
  • DB_USERNAME: Required, Database username
  • DB_PASSWORD: Required, Database password
  • DB_DATABASE: Required, Database database

Sentry

You can use Sentry to automatically detect and report any exceptions thrown.

  • SENTRY_ENABLED: false, Set to true to enable Sentry.
  • SENTRY_DSN: Required, but only if SENTRY_ENABLED is true. The DSN for your Sentry project.

Prometheus

You can use Prometheus to track various metrics about your Listory deployment.

The metrics will be exposed on the /api/metrics endpoint. Make sure that this endpoint is not publicly available in your deployment.

  • PROMETHEUS_ENABLED: false, Set to true to enable Prometheus Metrics.
  • PROMETHEUS_BASIC_AUTH: false, Set to true to require basic auth to access the metrics endpoint.
  • PROMETHEUS_BASIC_AUTH_USERNAME: Required, if PROMETHEUS_BASIC_AUTH is true.
  • PROMETHEUS_BASIC_AUTH_PASSWORD: Required, if PROMETHEUS_BASIC_AUTH is true.

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.

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

License

Listory is MIT licensed.