78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# 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
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
2) Open the app
|
||
|
||
- App URL: `http://localhost:8085`
|
||
- Health: `http://localhost:8085/healthz`
|
||
|
||
3) Create your first admin
|
||
|
||
- Sign Up through Tonehaus
|
||
|
||
```bash
|
||
docker compose exec tonehaus php bin/console app:promote-admin you@example.com
|
||
```
|
||
|
||
4) 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`
|
||
|
||
5) (Optional) Seed demo data
|
||
|
||
```bash
|
||
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 per‑album aggregates (avg/count)
|
||
- Album page with details, tracklist, reviews list, and inline new review (logged-in)
|
||
- Auth modal (Login/Sign up) with remember‑me; 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
|
||
|