All checks were successful
CI - Build Tonehaus Docker image / tonehaus-ci-build (push) Successful in 2m0s
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
- Start the stack
docker compose up -d --build
- 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
- Promote an admin (to access Site Settings)
docker compose exec php php bin/console app:promote-admin you@example.com
- Configure Spotify API credentials (admin only)
- Open
http://localhost:8000/admin/settingsand enter your Spotify Client ID/Secret. - Alternatively, set env vars for the PHP container:
SPOTIFY_CLIENT_ID,SPOTIFY_CLIENT_SECRET.
-
Visit
http://localhost:8000to search for albums. -
(Optional) Seed demo data
docker compose exec php php bin/console app:seed-demo-users --count=50
docker compose exec php php bin/console app:seed-demo-albums --count=40 --attach-users
docker compose exec php php bin/console app:seed-demo-reviews --cover-percent=70 --max-per-album=8
Database driver
- Set
DATABASE_DRIVER=postgres(default) to keep using the Postgres 16 container defined indocker-compose.yml. - Set
DATABASE_DRIVER=sqliteto run against a self-contained SQLite file stored atvar/data/database.sqlite. - When
DATABASE_DRIVER=sqlite, theDATABASE_URLenv var is ignored. Doctrine will automatically create and use the SQLite file; override the default location withDATABASE_SQLITE_PATHif 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
Description
A website for reviewing music albums using the Symfony PHP framework and related bundles.
https://tonehaus.dev.ntbx.io
Languages
PHP
69.3%
Twig
25.8%
CSS
3.1%
Dockerfile
1.8%