Files
immich/README.md
2026-02-06 22:00:56 +00:00

56 lines
1.7 KiB
Markdown

# Core Monorepo
A full-stack monorepo template with **NestJS** (server), **SvelteKit** (web), and **Flutter** (mobile), powered by **pnpm workspaces**.
## Architecture
```
server/ NestJS REST API with PostgreSQL + Redis
web/ SvelteKit frontend (static adapter)
mobile/ Flutter mobile app
e2e/ End-to-end tests (Vitest + Playwright)
open-api/ OpenAPI spec generation & TypeScript SDK
i18n/ Internationalization strings
docker/ Docker Compose for local development
```
## Quick Start
```bash
# Install dependencies
pnpm install
# Start Postgres + Redis
make dev
# Or individually:
make dev-down # Stop services
make build-server # Build NestJS server
make build-web # Build SvelteKit app
make open-api # Regenerate OpenAPI spec & SDK
```
## Development
| Command | Description |
|---------|-------------|
| `make dev` | Start Docker services + web + server |
| `make dev-down` | Stop all services |
| `make build-server` | Build the NestJS server |
| `make build-web` | Build the SvelteKit web app |
| `make open-api` | Regenerate OpenAPI spec & SDKs |
| `make test-server` | Run server unit tests |
| `make test-e2e` | Run end-to-end tests |
| `make lint-server` | Lint the server |
| `make lint-web` | Lint the web app |
| `make clean` | Remove containers, volumes, node_modules |
## Stack
- **Server**: NestJS, Kysely (query builder), PostgreSQL 18, Redis
- **Web**: SvelteKit 2, Svelte 5, TailwindCSS, @immich/ui
- **Mobile**: Flutter / Dart
- **API**: Auto-generated OpenAPI spec with TypeScript SDK via oazapfts
- **Auth**: JWT (access + refresh tokens), API keys, session management
- **i18n**: svelte-i18n with English base locale