Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update(docs): Update documentation #6430

Merged
merged 33 commits into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
b1472bb
Documentation corrections
aviv926 Jan 16, 2024
c8eb7df
fix import
aviv926 Jan 16, 2024
926e5d6
add firewall note
aviv926 Jan 16, 2024
115ac6c
npm run format:fix
aviv926 Jan 16, 2024
7a3cfa5
fixs
aviv926 Jan 17, 2024
429d407
npm run format:fix
aviv926 Jan 17, 2024
ca24071
space
aviv926 Jan 17, 2024
a8084d1
fix note
aviv926 Jan 17, 2024
9f83c6d
admin-jobs.png image update + fixes
aviv926 Jan 19, 2024
9f4e24f
Storage Template.md update
aviv926 Jan 19, 2024
7534f26
Add new Troubleshooting about symbolic link in library
aviv926 Jan 21, 2024
83dd696
Updating the libraries.md
aviv926 Jan 21, 2024
b4d6a90
Updating the libraries.md
aviv926 Jan 21, 2024
0c1ecee
Corrections
aviv926 Jan 21, 2024
9fd80db
add `/`
aviv926 Jan 21, 2024
a51ef49
...
aviv926 Jan 21, 2024
a94e907
Add Python script to remove-offline-files.md
aviv926 Jan 22, 2024
ba74a6d
npm run format:fix
aviv926 Jan 22, 2024
b7da0dd
Add info about HDR in FAQ
aviv926 Jan 24, 2024
b04d89c
Merge branch 'main' of https://github.com/aviv926/immich into Documen…
aviv926 Jan 24, 2024
6cc8eb2
My wrong merge
aviv926 Jan 24, 2024
6e8e792
add info about symlink
aviv926 Jan 24, 2024
0523046
[Community] + PowerShell
aviv926 Jan 24, 2024
efe2697
add 360 photo support to Features in README
aviv926 Jan 24, 2024
b13cc26
add info about remote ML and info about orphaned files from the exter…
aviv926 Jan 24, 2024
517b61c
Typo
aviv926 Jan 24, 2024
9e4a22b
add note about storage locations
aviv926 Jan 24, 2024
7a46617
add info about Purge for portainer and link to info about asset types…
aviv926 Jan 24, 2024
4feb308
npm run format:fix
aviv926 Jan 24, 2024
09dc5cf
Add FAQ about "faces" that aren't faces
aviv926 Jan 25, 2024
d348340
Update docs/docs/administration/backup-and-restore.md
jrasm91 Jan 25, 2024
42b9107
Update docs/docs/administration/backup-and-restore.md
jrasm91 Jan 25, 2024
c2a67f5
Merge remote-tracking branch 'origin/main' into pr/aviv926/6430
jrasm91 Jan 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,12 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM

## Features


| Features | Mobile | Web |
| -------------------------------------------- | ------ | --- |
| :--------------------------------------------- | -------- | ----- |
| Upload and view videos and photos | Yes | Yes |
| Auto backup when the app is opened | Yes | N/A |
| Prevent duplication of assets | Yes | Yes |
| Selective album(s) for backup | Yes | N/A |
| Download photos and videos to local device | Yes | Yes |
| Multi-user support | Yes | Yes |
Expand All @@ -89,6 +91,7 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
| OAuth support | Yes | Yes |
| API Keys | N/A | Yes |
| LivePhoto/MotionPhoto backup and playback | Yes | Yes |
| Support 360 degree image display | No | Yes |
| User-defined storage structure | Yes | Yes |
| Public Sharing | No | Yes |
| Archive and Favorites | Yes | Yes |
Expand Down Expand Up @@ -118,6 +121,7 @@ If you feel like this is the right cause and the app is something you are seeing
- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

## Contributors

<a href="https://github.com/alextran1502/immich/graphs/contributors">
<img src="https://contrib.rocks/image?repo=immich-app/immich" width="100%"/>
</a>
16 changes: 15 additions & 1 deletion docs/docs/FAQ.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ Also, there are additional jobs for person (face) thumbnails.

There are no requirements for assets to be unique across users. If multiple users upload the same image they are processed as if they were distinct assets and jobs run and thumbnails are generated accordingly.

### Why do HDR videos appear pale in Immich player but look normal after download?

Immich uses a player with known HDR color display issues. We are experimenting with a different player that provides better color profiles for HDR content for future improvements.

### How can I delete transcoded videos without deleting the original?

The transcode of an asset can be deleted by setting a transcode policy that makes it unnecessary, then running a transcoding job for that asset. This can be done on a per-asset basis by starting a transcoding job for an asset (with the _Refresh encoded videos_ button in the asset viewer options. Or, for all assets by running transcoding jobs for all assets.
Expand Down Expand Up @@ -210,6 +214,11 @@ On the other hand, Immich does scan video thumbnails for faces, so it can perfor

No.

### I'm getting a lot of "faces" that aren't faces, what can I do?
aviv926 marked this conversation as resolved.
Show resolved Hide resolved

You can increase the MIN DETECTION SCORE to 0.8 to help prevent bad thumbnails. However, a score of 0.9 might filter out too many real faces depending on the library used. If you just want to hide specific faces, you can adjust the 'MIN FACES DETECTED' setting in the administration panel
to increase the bar for what the algorithm considers a "core face" for that person, reducing the chance of bad thumbnails being chosen.

### The immich_model-cache volume takes up a lot of space, what could be the problem?

If you installed several models and chose not to use some of them, it might be worth deleting the old models that are in immich_model-cache.
Expand Down Expand Up @@ -286,14 +295,19 @@ The non-root user/group needs read/write access to the volume mounts, including
Data for Immich comes in two forms:

1. **Metadata** stored in a postgres database, persisted via the `pg_data` volume
2. **Files** (originals, thumbs, profile, etc.), stored in the `UPLOAD_LOCATION` folder.
2. **Files** (originals, thumbs, profile, etc.), stored in the `UPLOAD_LOCATION` folder, more [info](/docs/administration/backup-and-restore#asset-types-and-storage-locations).

To remove the **Metadata** you can stop Immich and delete the volume.

```bash title="Remove Immich (containers and volumes)"
docker compose down -v
```

:::note Portainer
If you use portainer, bring down the stack in portainer. Go into the volumes section
and remove all the volumes related to immcih then restart the stack.
:::

After removing the containers and volumes, the **Files** can be cleaned up (if necessary) from the `UPLOAD_LOCATION` by simply deleting any unwanted files or folders.

### Why does the machine learning service report workers crashing?
Expand Down
94 changes: 82 additions & 12 deletions docs/docs/administration/backup-and-restore.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Backup and Restore

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

A [3-2-1 backup strategy](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) is recommended to protect your data. You should keep copies of your uploaded photos/videos as well as the Immich database for a comprehensive backup solution. This page provides an overview on how to backup the database and the location of user-uploaded pictures and videos. A template bash script that can be run as a cron job is provided [here](/docs/guides/template-backup-script.md)

## Database
Expand All @@ -14,7 +17,10 @@ Refer to the official [postgres documentation](https://www.postgresql.org/docs/c

The recommended way to backup and restore the Immich database is to use the `pg_dumpall` command.

```bash title='Backup'
<Tabs>
<TabItem value="Linux system based Backup" label="Linux system based Backup" default>

```bash title='Bash'
docker exec -t immich_postgres pg_dumpall -c -U postgres | gzip > "/path/to/backup/dump.sql.gz"
```

Expand All @@ -28,6 +34,26 @@ gunzip < "/path/to/backup/dump.sql.gz" | docker exec -i immich_postgres psql -U
docker compose up -d # Start remainder of Immich apps
```

</TabItem>
<TabItem value="Windows system based Backup" label="Windows system based Backup">

```powershell title='Backup'
docker exec -t immich_postgres pg_dumpall -c -U postgres > "\path\to\backup\dump.sql"
```

```powershell title='Restore'
docker compose down -v # CAUTION! Deletes all Immich data to start from scratch.
docker compose pull # Update to latest version of Immich (if desired)
docker compose create # Create Docker containers for Immich apps without running them.
docker start immich_postgres # Start Postgres server
sleep 10 # Wait for Postgres server to start up
gc "C:\path\to\backup\dump.sql" | docker exec -i immich_postgres psql -U postgres -d immich # Restore Backup
docker compose up -d # Start remainder of Immich apps
```

</TabItem>
</Tabs>

Note that for the database restore to proceed properly, it requires a completely fresh install (i.e. the Immich server has never run since creating the Docker containers). If the Immich app has run, Postgres conflicts may be encountered upon database restoration (relation already exists, violated foreign key constraints, multiple primary keys, etc.).

The database dumps can also be automated (using [this image](https://github.com/prodrigestivill/docker-postgres-backup-local)) by editing the docker compose file to match the following:
Expand Down Expand Up @@ -64,34 +90,78 @@ gunzip < db_dumps/last/immich-latest.sql.gz | docker exec -i immich_postgres psq
Immich stores two types of content in the filesystem: (1) original, unmodified content, and (2) generated content. Only the original content needs to be backed-up, which includes the following folders:

1. `UPLOAD_LOCATION/library`
1. `UPLOAD_LOCATION/upload`
1. `UPLOAD_LOCATION/profile`
2. `UPLOAD_LOCATION/upload`
3. `UPLOAD_LOCATION/profile`

### Asset Types and Storage Locations

Some storage locations are impacted by the Storage Template. See below for more details.

<Tabs>
<TabItem value="Storage Template Off (Default)." label="Storage Template Off (Default)." default>

:::note
`UPLOAD_LOCATION/library` folder is not used by default on new machines running version 1.92.0. These are if the system administrator activated the storage template engine, for [more info](https://github.com/immich-app/immich/releases#:~:text=the%20partner%E2%80%99s%20assets.-,Hardening%20storage%20template,-We%20have%20further).
:::

**1. User-Specific Folders:**

- Each user has a unique string representing them.
- The main user is "Admin" (but only for `\library\library\`)
- You can find your user ID in Account Account Settings -> Account -> User ID.

**2. Asset Types and Storage Locations:**

- **Source Assets:**
- Original assets uploaded through the browser interface & mobile & CLI.
- Stored in `/library/upload/<userID>`.
- **Avatar Images:**
- User profile images.
- Stored in `/library/profile/<userID>`.
- **Thumbs Images:**
- Preview images (blurred, small, large) for each asset and thumbnails for recognized faces.
- Stored in `/library/thumbs/<userID>`.
- **Encoded Assets:**
- By default, unless otherwise specified re-encoded video assets for wider compatibility.
- Stored in `/library/encoded-video/<userID>`.

</TabItem>
<TabItem value="Storage Template On" label="Storage Template On">

:::note
If you choose to activate the storage template engine, it will move all assets to `UPLOAD_LOCATION/library/<userID>`.

When you turn off the storage template engine, it will leave the assets in `UPLOAD_LOCATION/library/<userID>` and will not return them to `/library/upload`.
**New assets** will be saved to `/library/upload`.
:::

**1. User-Specific Folders:**

- Each user has a unique string representing them.
- The main user is "Admin" (but only for `UPLOAD_LOCATION/library`)
- Other users have different string identifiers.
- You can find your user ID in Account Account Settings > Account > User ID.
- You can find your user ID in Account Account Settings -> Account -> User ID.

**2. Asset Types and Storage Locations:**

- **Source Assets:**
- Original assets uploaded through the browser interface&mobile&CLI.
- Stored in `\library\library\<userID>`.
- Original assets uploaded through the browser interface & mobile & CLI.
- Stored in `UPLOAD_LOCATION/library/<userID>`.
- **Avatar Images:**
- User profile images.
- Stored in `\library\profile\<userID>`.
- Stored in `/library/profile/<userID>`.
- **Thumbs Images:**
- Preview images (blurred, small, large) for each asset and thumbnails for recognized faces.
- Stored in `\library\thumbs\<userID>`.
- Stored in `/library/thumbs/<userID>`.
- **Encoded Assets:**
- By default, unless otherwise specified re-encoded video assets for wider compatibility .
- Stored in `\library\encoded-video\<userID>`.
- Stored in `/library/encoded-video/<userID>`.
- **Files in Upload Queue (Mobile):**
- Files uploaded through mobile apps.
- Temporarily located in `\library\upload\<userID>`.
- Transferred to `\library\library\<userID>` upon successful upload.
- Temporarily located in `/library/upload/<userID>`.
- Transferred to `UPLOAD_LOCATION/library/<userID>` upon successful upload.

</TabItem>
</Tabs>

:::danger
Do not touch the files inside these folders under any circumstances except taking a backup, changing or removing an asset can cause untracked and missing files.
Expand Down
Binary file modified docs/docs/administration/img/admin-jobs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 6 additions & 1 deletion docs/docs/features/libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,11 @@ Sometimes, an external library will not scan correctly. This can happen if the i
- In the docker-compose file, are the volumes mounted correctly?
- Are the volumes identical between the `server` and `microservices` container?
- Are the import paths set correctly, and do they match the path set in docker-compose file?
- Are you using symbolic link in your import library?
- Are the permissions set correctly?
- Are you using forward slashes everywhere? (`/`)
- Are you using symlink across docker mounts?
- Are you using [spaces in the internal path](/docs/features/libraries#:~:text=can%20be%20accessed.-,NOTE,-Spaces%20in%20the)?

If all else fails, you can always start a shell inside the container and check if the path is accessible. For example, `docker exec -it immich_microservices /bin/bash` will start a bash shell. If your import path, for instance, is `/data/import/photos`, you can check if the files are accessible by running `ls /data/import/photos`. Also check the `immich_server` container in the same way.

Expand Down Expand Up @@ -121,7 +124,9 @@ First, we need to plan how we want to organize the libraries. The christmas trip
The `ro` flag at the end only gives read-only access to the volumes. While Immich does not modify files, it's a good practice to mount read-only.
:::

_Remember to bring the container down/up to register the changes. Make sure you can see the mounted path in the container._
:::info
_Remember to bring the container `docker compose down/up` to register the changes. Make sure you can see the mounted path in the container._
:::

### Set External Path

Expand Down
13 changes: 11 additions & 2 deletions docs/docs/guides/database-gui.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,17 @@ A short guide on connecting [pgAdmin](https://www.pgadmin.org/) to Immich.

:::note

- In order to connect to the database the immich_postgres container **must be running**.
- The passwords and usernames used below match the ones specified in the example `.env` file. If changed, please use actual values instead.
In order to connect to the database the immich_postgres container **must be running**.

The passwords and usernames used below match the ones specified in the example `.env` file. If changed, please use actual values instead.

**Optional:** To connect to the database **outside** of your Docker's network:
aviv926 marked this conversation as resolved.
Show resolved Hide resolved

- Expose port 5432 in your `docker-compose.yml` file.
- Edit the PostgreSQL [`pg_hba.conf`](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) file.
jrasm91 marked this conversation as resolved.
Show resolved Hide resolved
- Make sure your firewall does not block access to port 5432.
Note that exposing the database port increases the risk of getting attacked by hackers.
Make sure to remove the binding port after finishing the database's tasks.

:::

Expand Down
4 changes: 4 additions & 0 deletions docs/docs/guides/remote-machine-learning.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ To alleviate [performance issues on low-memory systems](/docs/FAQ.mdx#why-is-imm
- Copy the following `docker-compose.yml` to your ML system.
- Start the container by running `docker-compose up -d` or `docker compose up -d` (depending on your Docker version).

:::note Info
Starting with version v1.93.0 face detection work and face recognize were split. From now on face detection is done in the immich_machine_learning service, but facial recognition is done in the immich_microservices service.
:::

```yaml
version: '3.8'

Expand Down
Loading
Loading