boris 391ecf1732
All checks were successful
CI (Gitea) / php-tests (push) Successful in 10m4s
CI (Gitea) / docker-image (push) Successful in 2m23s
Update Monolog action level to info, adjust Dockerfile permissions and logging configuration, and set supervisord user to root
2025-11-28 10:08:36 +00:00
erm
2025-11-28 03:23:52 +00:00
2025-11-28 08:14:13 +00:00
2025-10-31 22:17:43 +00:00
2025-11-28 08:14:13 +00:00
wtf
2025-11-28 02:00:11 +00:00
2025-11-28 08:14:13 +00:00
2025-11-28 08:47:17 +00:00
2025-11-28 08:47:17 +00:00
2025-11-28 08:14:13 +00:00
2025-11-27 23:42:17 +00:00
2025-11-28 02:16:00 +00:00
2025-10-31 21:45:09 +00:00
2025-11-28 08:14:13 +00:00

Tonehaus — Music Ratings (Symfony 7)

Discover albums via Spotify, write and manage reviews, and administer your site. Built with Symfony 7, Twig, Doctrine, and Bootstrap.

Quick start (Docker Compose)

  1. Start the stack
docker compose up -d --build
  1. Open the app
  • App URL: http://localhost:8085
  • Health: http://localhost:8085/healthz
  1. Create your first admin
  • Sign Up through Tonehaus
docker compose exec tonehaus php bin/console app:promote-admin you@example.com
  1. Configure Spotify
  • Go to http://localhost:8085/admin/settings and enter your Spotify Client ID/Secret, or
  • Set env vars in .env: SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET
  1. (Optional) Seed demo data
docker compose exec tonehaus php bin/console app:seed-demo-users --count=50
docker compose exec tonehaus php bin/console app:seed-demo-albums --count=40 --attach-users
docker compose exec tonehaus php bin/console app:seed-demo-reviews --cover-percent=70 --max-per-album=8

Notes:

  • The packaged image uses SQLite by default and runs Doctrine migrations on start (idempotent).
  • To switch to Postgres, set DATABASE_DRIVER=postgres and provide DATABASE_URL.

Features

  • Spotify search with advanced filters (album, artist, year range) and peralbum aggregates (avg/count)
  • Album page with details, tracklist, reviews list, and inline new review (logged-in)
  • Auth modal (Login/Sign up) with rememberme; no separate pages
  • Role-based access: authors manage their own reviews; moderators/admins can moderate content
  • Admin Site Settings: manage Spotify credentials and public registration toggle
  • User Dashboard: profile updates and password change
  • Light/Dark theme toggle (cookie-backed)

Documentation

  • Setup and configuration: docs/setup.md
  • Feature overview: docs/features.md
  • Authentication and users: docs/auth-and-users.md
  • Spotify integration: docs/spotify-integration.md
  • Reviews and albums: docs/reviews-and-albums.md
  • Admin & site settings: docs/admin-and-settings.md
  • Troubleshooting: docs/troubleshooting.md
  • Architecture: docs/architecture.md
  • Deployment: docs/deployment.md

Environment overview

  • APP_ENV (dev|prod), APP_SECRET (required)
  • SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET
  • APP_ALLOW_REGISTRATION (1|0) — DB setting can be overridden by env
  • DATABASE_DRIVER (sqlite|postgres), DATABASE_URL (when using Postgres)
  • DATABASE_SQLITE_PATH (optional, defaults to var/data/database.sqlite)
  • RUN_MIGRATIONS_ON_START (1|0, defaults to 1)

License

MIT

Description
A website for reviewing music albums using the Symfony PHP framework and related bundles.
https://tonehaus.dev.ntbx.io
Readme MIT 1.1 MiB
Languages
PHP 69.3%
Twig 25.8%
CSS 3.1%
Dockerfile 1.8%