Daily record recommendation from your Discogs collection to your inbox
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
Once your record collection grows past a certain size, analysis paralysis begins to creep in each time you attempt to figure out what to listen to next. Sure, you could go through your collection alphabetically (or however you sort it), but where's the fun in always knowing what the future holds? Embrace uncertainty and eliminate record analysis paralysis with Spin Cycle!
The easiest way to run the app locally is with Docker Compose.
The only third-party dependency at the moment is Mailgun. You should be able to create a free account for development testing purposes.
- Install Docker Desktop / Engine
brew cask install docker
- Create a new Discogs API Application to obtain a key and secret
- To ensure you have test data, you'll want an active Discogs account with some items in a collection before running the app
- Clone the repo
git clone https://github.com/lrdiv/spin-cycle.git
- Create a .env file for Docker Compose to use
touch .env.docker
- Generate JWT and Session secrets (they should not be the same string)
npm run secret:gen
- Fill in the needed API keys / secrets in the .env file
export DISCOGS_KEY="discogs key" export DISCOGS_SECRET="discogs secret" export MAILGUN_KEY="mailgun key" export JWT_SECRET="jwt secret" export SESSION_SECRET="session secret"
- Start Docker Compose application stack
docker compose up --build
- The app will be accessible at
http://localhost:3000
- Follow steps 1-4 from above. The only difference is that your
.env
file should be named.env
(not.env.docker
) - Install global npm depencies
npm install -g nx@latest npm install -g @angular/cli@19
- Install local dependencies
npm install
- Run dockerized services
docker compose up -d db redis
- Add the correct
DATABASE_URL
andREDIS_URL
to.env
export DATABASE_URL="postgres://spincycle:[email protected]:54321/spincycle" export REDIS_URL="redis://127.0.0.1:63791"
- Start the local API and client servers
nx run-many -t serve
- The frontend app will be accessible at
http://localhost:4200
- Migrate from Nx to Turborepo
- Mailer Microservice
- NestJS Queues
- Advanced Customization
- Limit to media type (LP, CD, Cassette, etc)
- Filter out box sets and/or singles
- Specify time of day for email delivery
- Write tests
- Prettier pre-commit hook
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch
git checkout -b feature/amazing-feature
- Commit your Changes
git commit -m 'Add some Amazing Feature'
- Push to the Branch
git push origin feature/amazing-feature
- Open a Pull Request
Distributed under the project_license. See LICENSE.txt
for more information.
General Inquiries - [email protected]
Lawrence Davis - Maintainer - [email protected]
Project Link: https://github.com/lrdiv/spin-cycle