diff --git a/server/src/migrations/1713337511945-AddAlbumUserRole.ts b/server/src/migrations/1713337511945-AddAlbumUserRole.ts
new file mode 100644
index 000000000..a8d0d3d68
--- /dev/null
+++ b/server/src/migrations/1713337511945-AddAlbumUserRole.ts
@@ -0,0 +1,14 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class AddAlbumUserRole1713337511945 implements MigrationInterface {
+ name = 'AddAlbumUserRole1713337511945'
+
+ public async up(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`ALTER TABLE "albums_shared_users_users" ADD "role" character varying NOT NULL DEFAULT 'editor'`);
+ }
+
+ public async down(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`ALTER TABLE "albums_shared_users_users" DROP COLUMN "role"`);
+ }
+
+}
diff --git a/server/Dockerfile b/server/Dockerfile
index 553084ed7..bbf0d5a98 100644
--- a/server/Dockerfile
+++ b/server/Dockerfile
@@ -1,5 +1,5 @@
# dev build
-FROM ghcr.io/immich-app/base-server-dev:20240416@sha256:ff2aadf54298e8ceca94031c6fed143236d8d82640fbbf422e0a9d2978e45923 as dev
+FROM ghcr.io/immich-app/base-server-dev:20240423@sha256:9a22bc96acf02421a46706c6e0b5871b812d896f97bced295f8b7089de3de160 as dev
RUN apt-get install --no-install-recommends -yqq tini
WORKDIR /usr/src/app
@@ -41,7 +41,7 @@ RUN npm run build
# prod build
-FROM ghcr.io/immich-app/base-server-prod:20240416@sha256:138f4d6fb74b282256583070339eaba6f39fcffa3569ae05b6823d5c37098242
+FROM ghcr.io/immich-app/base-server-prod:20240423@sha256:d6e65040afa2b45622af32ce5f4abbe59b15ca1fc79a078b3ec579d7742a2ebe
WORKDIR /usr/src/app
ENV NODE_ENV=production \
diff --git a/docker/example.env b/docker/example.env
index 234ba3a40..89fa415ec 100644
--- a/docker/example.env
+++ b/docker/example.env
@@ -2,6 +2,8 @@
# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
+# The location where your database files are stored
+DB_DATA_LOCATION=./postgres
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
@@ -11,9 +13,5 @@ DB_PASSWORD=postgres
# The values below this line do not need to be changed
###################################################################################
-DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
-DB_DATA_LOCATION=./postgres
-
-REDIS_HOSTNAME=immich_redis
diff --git a/docs/docs/install/environment-variables.md b/docs/docs/install/environment-variables.md
index dce9d4fa5..682610789 100644
--- a/docs/docs/install/environment-variables.md
+++ b/docs/docs/install/environment-variables.md
@@ -18,9 +18,10 @@ If this should not work, try running `docker compose up -d --force-recreate`.
## Docker Compose
| Variable | Description | Default | Services |
-| :---------------- | :-------------------- | :-------: | :-------------------------------------- |
+| :----------------- | :------------------------------ | :-------: | :-------------------------------------- |
| `IMMICH_VERSION` | Image tags | `release` | server, microservices, machine learning |
| `UPLOAD_LOCATION` | Host Path for uploads | | server, microservices |
+| `DB_DATA_LOCATION` | Host Path for Postgres database | | database |
:::tip
@@ -31,15 +32,18 @@ These environment variables are used by the `docker-compose.yml` file and do **N
## General
| Variable | Description | Default | Services |
-| :------------------------------ | :------------------------------------------- | :------------------: | :-------------------------------------- |
+| :------------------------------ | :------------------------------------------- | :----------------------: | :-------------------------------------- |
| `TZ` | Timezone | | microservices |
| `NODE_ENV` | Environment (production, development) | `production` | server, microservices, machine learning |
| `LOG_LEVEL` | Log Level (verbose, debug, log, warn, error) | `log` | server, microservices, machine learning |
-| `IMMICH_MEDIA_LOCATION` | Media Location | `./upload` | server, microservices |
+| `IMMICH_MEDIA_LOCATION` | Media Location | `./upload`<sup>\*1</sup> | server, microservices |
| `IMMICH_CONFIG_FILE` | Path to config file | | server, microservices |
| `IMMICH_WEB_ROOT` | Path of root index.html | `/usr/src/app/www` | server |
| `IMMICH_REVERSE_GEOCODING_ROOT` | Path of reverse geocoding dump directory | `/usr/src/resources` | microservices |
+\*1: With the default `WORKDIR` of `/usr/src/app`, this path will resolve to `/usr/src/app/upload`.
+It only need to be set if the Immich deployment method is changing.
+
:::tip
`TZ` should be set to a `TZ identifier` from [this list][tz-list]. For example, `TZ="Etc/UTC"`.
@@ -59,29 +63,32 @@ These environment variables are used by the `docker-compose.yml` file and do **N
## Database
| Variable | Description | Default | Services |
-| :---------------------------------- | :------------------------------------------------------------ | :----------: | :-------------------- |
+| :---------------------------------- | :----------------------------------------------------------------------- | :----------: | :-------------------------------------------- |
| `DB_URL` | Database URL | | server, microservices |
-| `DB_HOSTNAME` | Database Host | `localhost` | server, microservices |
+| `DB_HOSTNAME` | Database Host | `database` | server, microservices |
| `DB_PORT` | Database Port | `5432` | server, microservices |
-| `DB_USERNAME` | Database User | `postgres` | server, microservices |
-| `DB_PASSWORD` | Database Password | `postgres` | server, microservices |
-| `DB_DATABASE_NAME` | Database Name | `immich` | server, microservices |
-| `DB_VECTOR_EXTENSION`<sup>\*1</sup> | Database Vector Extension (one of [`pgvector`, `pgvecto.rs`]) | `pgvecto.rs` | server, microservices |
+| `DB_USERNAME` | Database User | `postgres` | server, microservices, database<sup>\*1</sup> |
+| `DB_PASSWORD` | Database Password | `postgres` | server, microservices, database<sup>\*1</sup> |
+| `DB_DATABASE_NAME` | Database Name | `immich` | server, microservices, database<sup>\*1</sup> |
+| `DB_VECTOR_EXTENSION`<sup>\*2</sup> | Database Vector Extension (one of [`pgvector`, `pgvecto.rs`]) | `pgvecto.rs` | server, microservices |
+| `DB_SKIP_MIGRATIONS` | Whether to skip running migrations on startup (one of [`true`, `false`]) | `false` | server, microservices |
+
+\*1: The values of `DB_USERNAME`, `DB_PASSWORD`, and `DB_DATABASE_NAME` are passed to the Postgres container as the variables `POSTGRES_USER`, `POSTGRES_PASSWORD`, and `POSTGRES_DB` in `docker-compose.yml`.
-\*1: This setting cannot be changed after the server has successfully started up
+\*2: This setting cannot be changed after the server has successfully started up.
:::info
-When `DB_URL` is defined, the other database (`DB_*`) variables are ignored, with the exception of `DB_VECTOR_EXTENSION`.
+When `DB_URL` is defined, the `DB_HOSTNAME`, `DB_PORT`, `DB_USERNAME`, `DB_PASSWORD` and `DB_DATABASE_NAME` database variables are ignored.
:::
## Redis
| Variable | Description | Default | Services |
-| :--------------- | :------------- | :------------: | :-------------------- |
+| :--------------- | :------------- | :-----: | :-------------------- |
| `REDIS_URL` | Redis URL | | server, microservices |
-| `REDIS_HOSTNAME` | Redis Host | `immich_redis` | server, microservices |
+| `REDIS_HOSTNAME` | Redis Host | `redis` | server, microservices |
| `REDIS_PORT` | Redis Port | `6379` | server, microservices |
| `REDIS_DBINDEX` | Redis DB Index | `0` | server, microservices |
| `REDIS_USERNAME` | Redis Username | | server, microservices |
@@ -100,6 +107,9 @@ More info can be found in the upstream [ioredis][redis-api] documentation.
Redis (Sentinel) URL example JSON before encoding:
+<details>
+<summary>JSON</summary>
+
```json
{
"sentinels": [
@@ -120,6 +130,8 @@ Redis (Sentinel) URL example JSON before encoding:
}
Command line interface for Immich
@@ -69,10 +69,15 @@ Commands:
help [command] display help for command
+</details>
+
## Commands
The upload command supports the following options:
+<details>
+<summary>Options</summary>
+
Usage: immich upload [paths...] [options]
@@ -94,19 +99,16 @@ Options:
--help display help for command
+</details>
+
Note that the above options can read from environment variables as well.
## Quick Start
-You begin by authenticating to your Immich server.
-
-```bash
-immich login [url] [key]
-```
-
-For instance,
+You begin by authenticating to your Immich server. For instance:
```bash
+# immich login [url] [key]
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
/home/runner/work/immich-distribution/immich-distribution
/tmp/tmp.rxSupQM3jQ removed
## Base image
Check the base images for recent relevant changes:
* https://github.com/immich-app/base-images/commits/main/
## Checklist
* Review the changes above
* Possible write a news entry (and push it to this PR)
* Wait for the CI to finish
* Merge the PR
ref #174
This PR bumps the version from v1.102.3 to v1.103.1. Please review the changes and merge this PR if everything looks good.
Upstream release notes
Monitored upstream files
+ +
Machine Learning
| Variable | Description | Default | Services |
+$ immich Usage: immich [options] [command]
Command line interface for Immich @@ -69,10 +69,15 @@ Commands: help [command] display help for command
Usage: immich upload [paths...] [options]
@@ -94,19 +99,16 @@ Options: --help display help for command