mirror of
https://github.com/immich-app/immich.git
synced 2026-02-09 19:29:27 +03:00
a6ba86b04de6b53d2646c3f2d8f5120138af4edb
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
Description
High performance self-hosted photo and video management solution.
backup-toolfluttergoogle-photosgoogle-photos-alternativejavascriptmobile-appnestjsnodejsphoto-galleryphotosphotos-managementself-hostedsveltesveltekittypescriptvideos
Readme
523 MiB
Languages
TypeScript
46.9%
Dart
34.5%
Svelte
12.3%
Kotlin
1.8%
Swift
1.7%
Other
2.5%