mirror of
https://github.com/immich-app/immich.git
synced 2026-06-05 21:02:58 +08:00
高性能自托管照片和视频管理解决方案。
| .vscode | ||
| docker | ||
| e2e | ||
| i18n | ||
| mobile | ||
| open-api | ||
| server | ||
| web | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
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
# 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