experimental_monorepo_root = true [monorepo] config_roots = [ "packages/plugins", "server", "packages/cli", "deployment", "mobile", "e2e", "web", "docs", ".github", "machine-learning", ] [tools] node = "24.15.0" flutter = "3.41.9" pnpm = "10.33.1" terragrunt = "1.0.3" opentofu = "1.11.6" java = "21.0.2" "npm:oazapfts" = "7.5.0" [tools."github:CQLabs/homebrew-dcm"] version = "1.37.0" bin = "dcm" postinstall = "chmod +x \"$MISE_TOOL_INSTALL_PATH/dcm\" || true" [tools."github:jellyfin/jellyfin-ffmpeg"] version = "7.1.3-6" [tools."github:jellyfin/jellyfin-ffmpeg".platforms] linux-x64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_linux64-gpl.tar.xz" } linux-arm64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_linuxarm64-gpl.tar.xz" } macos-x64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_mac64-gpl.tar.xz" } macos-arm64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_macarm64-gpl.tar.xz" } [settings] experimental = true pin = true [tasks.open-api-typescript] run = [ "oazapfts --optimistic --argumentStyle=object --useEnumType --allSchemas open-api/immich-openapi-specs.json packages/sdk/src/fetch-client.ts", { task = "//:sdk:install" }, { task = "//:sdk:build" }, ] [tasks.open-api-dart] dir = "open-api" run = "bash ./bin/generate-dart-sdk.sh" [tasks.open-api] env = { SHARP_IGNORE_GLOBAL_LIBVIPS = true } run = [ { task = "//server:install" }, { task = "//server:build" }, { task = "//server:sync-open-api" }, { task = ":open-api-typescript"}, { task = ":open-api-dart"}, ] [tasks.sql] dir = "server" run = "node ./dist/bin/sync-sql.js" # SDK tasks [tasks."sdk:install"] dir = "packages/sdk" run = "pnpm --filter @immich/sdk install --frozen-lockfile" [tasks."sdk:build"] dir = "packages/sdk" run = "pnpm build" # i18n tasks [tasks."i18n:format"] run = "pnpm format" [tasks."i18n:format-fix"] run = "pnpm format:fix"