mirror of
https://github.com/immich-app/immich.git
synced 2025-07-01 21:40:10 +02:00
* minor * add image * PR feedback * npm run format:fix of course 4_4 * Remove what is not relevant * pr feedback * PR feedback * revert npm run format * Update docs/docs/FAQ.mdx Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> * Update FAQ.mdx --------- Co-authored-by: Alex <alex.tran1502@gmail.com> Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
110 lines
4.9 KiB
Text
110 lines
4.9 KiB
Text
---
|
|
sidebar_position: 30
|
|
---
|
|
|
|
import CodeBlock from '@theme/CodeBlock';
|
|
import ExampleEnv from '!!raw-loader!../../../docker/example.env';
|
|
|
|
# Docker Compose [Recommended]
|
|
|
|
Docker Compose is the recommended method to run Immich in production. Below are the steps to deploy Immich with Docker Compose.
|
|
Immich requires Docker Compose version 2.x.
|
|
|
|
### Step 1 - Download the required files
|
|
|
|
Create a directory of your choice (e.g. `./immich-app`) to hold the `docker-compose.yml` and `.env` files.
|
|
|
|
```bash title="Move to the directory you created"
|
|
mkdir ./immich-app
|
|
cd ./immich-app
|
|
```
|
|
|
|
Download [`docker-compose.yml`][compose-file] and [`example.env`][env-file], either by running the following commands:
|
|
|
|
```bash title="Get docker-compose.yml file"
|
|
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
|
```
|
|
|
|
```bash title="Get .env file"
|
|
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
|
|
```
|
|
|
|
```bash title="(Optional) Get hwaccel.transcoding.yml file"
|
|
wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml
|
|
```
|
|
|
|
```bash title="(Optional) Get hwaccel.ml.yml file"
|
|
wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
|
|
```
|
|
|
|
or by downloading from your browser and moving the files to the directory that you created.
|
|
|
|
Note: If you downloaded the files from your browser, also ensure that you rename `example.env` to `.env`.
|
|
|
|
:::info
|
|
Optionally, you can enable hardware acceleration for machine learning and transcoding. See the [Hardware Transcoding](/docs/features/hardware-transcoding.md) and [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md) guides for info on how to set these up.
|
|
:::
|
|
|
|
### Step 2 - Populate the .env file with custom values
|
|
|
|
<details>
|
|
<summary>
|
|
Example <code>.env</code> content
|
|
</summary>
|
|
<CodeBlock language="bash">{ExampleEnv}</CodeBlock>
|
|
</details>
|
|
|
|
- Populate custom database information if necessary.
|
|
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets.
|
|
- Consider changing `DB_PASSWORD` to something randomly generated
|
|
|
|
### Step 3 - Start the containers
|
|
|
|
From the directory you created in Step 1, (which should now contain your customized `docker-compose.yml` and `.env` files) run `docker compose up -d`.
|
|
|
|
```bash title="Start the containers using docker compose command"
|
|
docker compose up -d
|
|
```
|
|
|
|
:::info Docker version
|
|
If you get an error `unknown shorthand flag: 'd' in -d`, you are probably running the wrong Docker version. (This happens, for example, with the docker.io package in Ubuntu 22.04.3 LTS.) You can correct the problem by `apt remove`ing Ubuntu's docker.io package and installing docker and docker-compose via [Docker's official repository](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository).
|
|
|
|
Note that the correct command really is `docker compose`, not `docker-compose`. If you try the latter on vanilla Ubuntu 22.04 it will fail in a different way:
|
|
|
|
```
|
|
The Compose file './docker-compose.yml' is invalid because:
|
|
'name' does not match any of the regexes: '^x-'
|
|
```
|
|
|
|
See the previous paragraph about installing from the official docker repository.
|
|
:::
|
|
|
|
:::tip
|
|
For more information on how to use the application, please refer to the [Post Installation](/docs/install/post-install.mdx) guide.
|
|
:::
|
|
|
|
:::note GitHub Authentication
|
|
Downloading container images might require you to authenticate to the GitHub Container Registry ([steps here](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry)).
|
|
:::
|
|
|
|
### Step 4 - Upgrading
|
|
|
|
:::danger Breaking Changes
|
|
It is important to follow breaking updates to avoid problems. You can see versions that had breaking changes [here](https://github.com/immich-app/immich/discussions?discussions_q=label%3Abreaking-change+sort%3Adate_created).
|
|
:::
|
|
|
|
If `IMMICH_VERSION` is set, it will need to be updated to the latest or desired version.
|
|
|
|
When a new version of Immich is [released](https://github.com/immich-app/immich/releases), the application can be upgraded with the following commands, run in the directory with the `docker-compose.yml` file:
|
|
|
|
```bash title="Upgrade Immich"
|
|
docker compose pull && docker compose up -d
|
|
```
|
|
|
|
:::caution Automatic Updates
|
|
Immich is currently under heavy development, which means you can expect [breaking changes](https://github.com/immich-app/immich/discussions?discussions_q=label%3Abreaking-change+sort%3Adate_created) and bugs. Therefore, we recommend reading the release notes prior to updating and to take special care when using automated tools like [Watchtower][watchtower].
|
|
:::
|
|
|
|
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
|
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
|
|
[watchtower]: https://containrrr.dev/watchtower/
|