mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	feat(server): move authentication to tokens stored in the database (#1381)
* chore: add typeorm commands to npm and set default database config values * feat: move to server side authentication tokens * fix: websocket should emit error and disconnect on error thrown by the server * refactor: rename cookie-auth-strategy to user-auth-strategy * feat: user tokens and API keys now use SHA256 hash for performance improvements * test: album e2e test remove unneeded module import * infra: truncate api key table as old keys will no longer work with new hash algorithm * fix(server): e2e tests (#1435) * fix: root module paths * chore: linting * chore: rename user-auth to strategy.ts and make validate return AuthUserDto * fix: we should always send HttpOnly for our auth cookies * chore: remove now unused crypto functions and jwt dependencies * fix: return the extra fields for AuthUserDto in auth service validate --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
		@@ -24,7 +24,7 @@ All the services are packaged to run as with single Docker Compose command.
 | 
			
		||||
 | 
			
		||||
1. Clone the project repo.
 | 
			
		||||
2. Run `cp docker/example.env docker/.env`.
 | 
			
		||||
3. Edit `docker/.env` to provide values for the required variables `UPLOAD_LOCATION` and `JWT_SECRET`.
 | 
			
		||||
3. Edit `docker/.env` to provide values for the required variable `UPLOAD_LOCATION`.
 | 
			
		||||
4. From the root directory, run:
 | 
			
		||||
 | 
			
		||||
```bash title="Start development server"
 | 
			
		||||
 
 | 
			
		||||
@@ -63,15 +63,6 @@ UPLOAD_LOCATION=absolute_location_on_your_machine_where_you_want_to_store_the_ba
 | 
			
		||||
 | 
			
		||||
LOG_LEVEL=simple
 | 
			
		||||
 | 
			
		||||
###################################################################################
 | 
			
		||||
# JWT SECRET
 | 
			
		||||
###################################################################################
 | 
			
		||||
 | 
			
		||||
# This JWT_SECRET is used to sign the authentication keys for user login
 | 
			
		||||
# You should set it to a long randomly generated value
 | 
			
		||||
# You can use this command to generate one: openssl rand -base64 128
 | 
			
		||||
JWT_SECRET=
 | 
			
		||||
 | 
			
		||||
###################################################################################
 | 
			
		||||
# Reverse Geocoding
 | 
			
		||||
####################################################################################
 | 
			
		||||
@@ -102,11 +93,6 @@ PUBLIC_LOGIN_PAGE_MESSAGE="My Family Photos and Videos Backup Server"
 | 
			
		||||
 | 
			
		||||
- Populate custom database information if necessary.
 | 
			
		||||
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets.
 | 
			
		||||
- Populate a secret value for `JWT_SECRET`. You can use the command below to generate a secure key:
 | 
			
		||||
 | 
			
		||||
```bash title="Command to generate secure JWT_SECRET key"
 | 
			
		||||
openssl rand -base64 128
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Step 3 - Start the containers
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,11 +40,6 @@ Install Immich using Portainer's Stack feature.
 | 
			
		||||
 | 
			
		||||
* Populate custom database information if necessary.
 | 
			
		||||
* Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets.
 | 
			
		||||
* Populate a secret value for `JWT_SECRET`. You can use the command below to generate a secure key:
 | 
			
		||||
 | 
			
		||||
```bash title="Generate secure JWT_SECRET key"
 | 
			
		||||
openssl rand -base64 128
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
11. Click on "**Deploy the stack**".
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,6 @@ alt="Select Plugins > Compose.Manager > Add New Stack > Label it Immich"
 | 
			
		||||
6.  Select the cog ⚙️ next to Immich, click "**Edit Stack**", then click "**Env File**"
 | 
			
		||||
7.  Past the entire contents of the [Immich example.env](https://raw.githubusercontent.com/immich-app/immich/main/docker/example.env) file into the Unraid editor, then **before saving** edit the following:
 | 
			
		||||
 | 
			
		||||
    - `JWT_SECRET`: Generate a unique secret and paste the value here > Can be generated by either typing `openssl rand -base64 128` in your terminal or copying from [uuidgenerator](https://www.uuidgenerator.net/version1)
 | 
			
		||||
    - `UPLOAD_LOCATION`: Create a folder in your Images Unraid share and place the **absolute** location here > For example my _"images"_ share has a folder within it called _"immich"_. If I browse to this directory in the terminal and type `pwd` the output is `/mnt/user/images/immich`. This is the exact value I need to enter as my `UPLOAD_LOCATION`
 | 
			
		||||
 | 
			
		||||
      <img
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user