Files
tonehaus/README.md
boris 1c98a634c3
All checks were successful
CI - Build Tonehaus Docker image / tonehaus-ci-build (push) Successful in 1m57s
eerrrrrr
2025-11-27 23:42:17 +00:00

2.4 KiB

Tonehaus — Music Ratings

Discover albums from Spotify, read and write reviews, and manage your account. Built with Symfony 7, Twig, Doctrine, and Bootstrap.

Quick start

  1. Start the stack
docker compose up -d --build
  1. Create the database schema
docker compose exec php php bin/console doctrine:database:create --if-not-exists
docker compose exec php php bin/console doctrine:migrations:diff --no-interaction
docker compose exec php php bin/console doctrine:migrations:migrate --no-interaction
  1. Promote an admin (to access Site Settings)
docker compose exec php php bin/console app:promote-admin you@example.com
  1. Configure Spotify API credentials (admin only)
  • Open http://localhost:8000/admin/settings and enter your Spotify Client ID/Secret.
  • Alternatively, set env vars for the PHP container: SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET.
  1. Visit http://localhost:8000 to search for albums.

Database driver

  • Set DATABASE_DRIVER=postgres (default) to keep using the Postgres 16 container defined in docker-compose.yml.
  • Set DATABASE_DRIVER=sqlite to run against a self-contained SQLite file stored at var/data/database.sqlite.
  • When DATABASE_DRIVER=sqlite, the DATABASE_URL env var is ignored. Doctrine will automatically create and use the SQLite file; override the default location with DATABASE_SQLITE_PATH if needed.

Features

  • Spotify search with Advanced filters (album, artist, year range) and per-album aggregates (avg/count)
  • Album page with details, reviews list, and inline new review (logged in)
  • Auth modal (Login/Sign up) with remember-me cookie, no separate pages
  • Role-based access: authors manage their own reviews, admins can manage any
  • Admin Site Settings to manage Spotify credentials in DB
  • User Dashboard to update profile and change password (requires current password)
  • Light/Dark theme toggle in Settings (cookie-backed)
  • Bootstrap UI

Rate limiting & caching

  • Server-side Client Credentials; access tokens are cached.

Docs

See /docs for how-tos and deeper notes:

  • Setup and configuration: docs/01-setup.md
  • Features and UX: docs/02-features.md
  • Authentication and users: docs/03-auth-and-users.md
  • Spotify integration: docs/04-spotify-integration.md
  • Reviews and albums: docs/05-reviews-and-albums.md
  • Admin & site settings: docs/06-admin-and-settings.md
  • Troubleshooting: docs/07-troubleshooting.md

License

MIT