mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
56 lines
1.7 KiB
Markdown
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
|