The root README was a design handoff for a prototype that is not in this repo, web-player/README.md was the sv template, and deploy/README.md only covered development. Replace all three and document the production deploy: its prerequisites, what up.sh does and why nginx sits in front. The docs under docs/ still used the pre-monorepo project paths, Ardalis.Result instead of ErrorOr and the player.html test console that no longer exists.
48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# Musify
|
|
|
|
Music streaming platform: upload your own tracks (or import them from YouTube),
|
|
process them asynchronously (audio transcoded to `.m4a`, thumbnails generated)
|
|
and stream them without the bytes ever going through the API.
|
|
|
|
```
|
|
backend/ .NET 10 — Domain / Application / Infrastructure / Api / Worker / StreamingGateway
|
|
web-player/ SvelteKit 2 + Svelte 5 + Tailwind 4 web client
|
|
deploy/ Docker Compose stacks and the scripts that bootstrap them
|
|
docs/ What each piece does and why (in Spanish)
|
|
```
|
|
|
|
## Run it
|
|
|
|
Development (Windows, Docker Desktop):
|
|
|
|
```powershell
|
|
./deploy/up.ps1 # infrastructure; the apps run from the IDE
|
|
./deploy/up.ps1 -Apps # everything in Docker
|
|
```
|
|
|
|
Production, on a server with a domain:
|
|
|
|
```sh
|
|
./deploy/up.sh # fill in deploy/.env.prod and the TLS certs when it asks
|
|
```
|
|
|
|
Both are idempotent and print what they did. See
|
|
[deploy/README.md](deploy/README.md) for the details, the port map and the
|
|
production prerequisites.
|
|
|
|
## Components
|
|
|
|
| Service | Port (dev) | Role |
|
|
|---|---|---|
|
|
| `Musify.Api` | 5111 | REST API, issues presigned upload URLs and stream tickets |
|
|
| `Musify.StreamingGateway` | 8081 | YARP proxy that validates the stream ticket and serves the audio |
|
|
| `Musify.Worker` | — | MassTransit consumers: transcoding, thumbnails, YouTube downloads |
|
|
| `web-player` | 5173 / 3000 | Web client (SvelteKit, server-side OIDC session) |
|
|
| Zitadel | 8080 | Identity (OIDC/OAuth2) |
|
|
| PostgreSQL / RabbitMQ / SeaweedFS / Jaeger | 59000 / 5672 / 8333 / 16686 | Metadata, messaging, object storage, traces |
|
|
|
|
More in [docs/](docs/README.md): [architecture](docs/architecture.md),
|
|
[authentication](docs/authentication.md), [storage](docs/storage.md),
|
|
[streaming](docs/streaming.md), [media processing](docs/media-processing.md),
|
|
[development](docs/development.md).
|