69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
# Setup
|
|
|
|
## Prerequisites
|
|
- Docker + Docker Compose
|
|
- Last.fm API key
|
|
- A unique `APP_SECRET` value in your environment (for prod builds)
|
|
|
|
## 1) Start the stack
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
App: `http://localhost:8085`
|
|
Health: `http://localhost:8085/healthz`
|
|
|
|
## 2) Create an admin
|
|
```bash
|
|
docker compose exec tonehaus php bin/console app:promote-admin you@example.com
|
|
```
|
|
|
|
## 3) Configure Last.fm
|
|
- Preferred: open `/admin/settings` and enter your Last.fm API key (stored in DB)
|
|
- Env fallback (in `.env` or your shell):
|
|
```bash
|
|
LASTFM_API_KEY=your_api_key
|
|
```
|
|
|
|
## 4) JWT auth keys
|
|
- API login endpoint: `POST /api/v1/auth/login`
|
|
- JWT keys are generated automatically on container start into `config/jwt/`.
|
|
- Set `JWT_PASSPHRASE` in `.env` to your production 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
|
|
```
|
|
|
|
## Database drivers
|
|
- SQLite (default): set `DATABASE_DRIVER=sqlite` (default) — data stored at `var/data/database.sqlite`
|
|
- Postgres: set `DATABASE_DRIVER=postgres` and provide `DATABASE_URL`
|
|
- If you enable the commented `db` service in `docker-compose.yml`, a typical URL is:
|
|
```
|
|
postgresql://symfony:symfony@db:5432/symfony?serverVersion=16&charset=utf8
|
|
```
|
|
|
|
## Environment variables
|
|
- `APP_ENV=dev|prod`
|
|
- `APP_SECRET=<random_string>`
|
|
- `LASTFM_API_KEY`
|
|
- `JWT_PASSPHRASE=<random_string>`
|
|
- `APP_ALLOW_REGISTRATION=1|0` (env can override DB setting)
|
|
- `DATABASE_DRIVER=sqlite|postgres`
|
|
- `DATABASE_SQLITE_PATH` (optional)
|
|
- `RUN_MIGRATIONS_ON_START=1|0` (default 1)
|
|
|
|
## Useful commands
|
|
```bash
|
|
# Symfony cache
|
|
docker compose exec tonehaus php bin/console cache:clear
|
|
|
|
# Inspect routes
|
|
docker compose exec tonehaus php bin/console debug:router
|
|
|
|
# Promote moderator
|
|
docker compose exec tonehaus php bin/console app:promote-moderator mod@example.com
|
|
```
|