Nx monorepo for the Sick Fansubs website.
- Angular 21 frontend
- NestJS 11 API
- MongoDB Atlas
- MinIO object storage for managed media uploads
- Nx workspace orchestration
- Docker Compose for local and production-style container runs
- Account profile management with avatar upload or manual avatar URL entry
- Blog-post create and edit flows with managed thumbnail uploads
- Project create and edit flows with managed thumbnail uploads
- Project batch downloads with named torrent and magnet links plus optional 4K links
- Public media delivery through
/media/*proxied to MinIO
pnpm installpnpm run docker:devThis starts the Angular app, the NestJS API, and MinIO. MongoDB is expected to be provided through Atlas via DATABASE_URL_DEV.
For local media previews, development compose overrides MINIO_PUBLIC_BASE_URL to http://localhost:4200 for the API container. This ensures upload responses return local /media/... URLs instead of the production domain.
Dockerfile.api: API production image (api) and API development image (api-dev)Dockerfile.web: web production image (web) and web development image (web-dev)
docker build -f Dockerfile.api --target api -t sick-api:test .
docker build -f Dockerfile.web --target web -t sick-web:test .The workspace no longer uses a single root Dockerfile.
-
Old pattern:
docker build -f Dockerfile --target api ... -
New pattern:
docker build -f Dockerfile.api --target api ... -
Old pattern:
docker build -f Dockerfile --target web ... -
New pattern:
docker build -f Dockerfile.web --target web ... -
Old compose builds:
dockerfile: Dockerfile -
New compose builds:
dockerfile: Dockerfile.apiforapi,dockerfile: Dockerfile.webforweb
Use pnpm run docker:dev and pnpm run docker:prod as before; those scripts now resolve through the split Dockerfiles via compose.
pnpm run build:allpnpm nx run-many -t lint -p web,api- Swagger is available at
/api-docs. - Managed uploads are accepted through
POST /api/media/images. - Public media URLs are served from
/media/images/<key>. - Production container startup uses
pnpm run docker:prod.
docs/atlas-minio-setup-checklist.mddocs/account-pages-next-plan.md