Скрипт-обёртка для установки фотоархива Immich одной командой.
Не форк и не свой дистрибутив: скачивает официальные docker-compose.yml и example.env
из последнего релиза Immich, заполняет минимальные переменные и поднимает контейнеры.
| Компонент | Версия |
|---|---|
| Immich (server, machine-learning) | тег из IMMICH_VERSION в .env — upstream'ный мажор (сейчас v3) |
| Postgres (VectorChord / pgvecto-rs) | образ из официального docker-compose.yml |
| Redis / Valkey | образ из официального docker-compose.yml |
Собственных pinned-версий репозиторий не содержит — всё берётся из релиза Immich на момент запуска. Веб-интерфейс: порт 2283.
- Linux (основная платформа) или macOS с Docker Desktop.
- Docker Engine и Docker Compose plugin — ставятся заранее, скрипт их не устанавливает.
Есть фолбэк на legacy
docker-compose. curl, доступ к github.com.
git clone https://github.com/RoXyGeNOFF/immich-ALLinOne.git
cd immich-ALLinOne
chmod +x install-immich.sh
./install-immich.shЗатем откройте http://<IP-сервера>:2283. Первый зарегистрированный пользователь станет админом —
регистрируйтесь сразу, не оставляйте свежую установку доступной другим.
- Проверяет наличие
dockerиdocker compose(илиdocker-compose). - Создаёт рабочую директорию
immich-app/. - Скачивает
docker-compose.ymlиз последнего релиза Immich (каждый запуск — свежий). - Скачивает
.envизexample.envтолько если его ещё нет, и ставит на него права600. - Патчит
.env: пути к данным,TZ, при первой установке — случайныйDB_PASSWORD. - Создаёт
library/иpostgres/. - Запускает
docker compose up -dи печатает URL, путь к данным и пароль БД.
Повторный запуск безопасен: существующий .env сохраняется, пароль БД не меняется.
Файл лежит в immich-app/.env, редактируется вручную, скриптом не перезаписывается.
| Переменная | Значение от скрипта | Комментарий |
|---|---|---|
UPLOAD_LOCATION |
./library |
где лежат фото/видео; меняйте под свой диск/массив |
DB_DATA_LOCATION |
./postgres |
данные Postgres; сетевые шары не поддерживаются |
DB_PASSWORD |
случайные 20 символов A-Za-z0-9 |
генерируется один раз, при создании .env |
TZ |
из /etc/timezone, иначе из /etc/localtime, иначе Europe/Berlin |
часовой пояс контейнеров |
IMMICH_VERSION |
не трогается | остаётся значение из upstream example.env |
# Логи
docker compose -f immich-app/docker-compose.yml logs -f --tail 200
# Обновить образы в пределах текущего мажора
cd immich-app && docker compose pull && docker compose up -dМажорную версию меняйте осознанно: правьте IMMICH_VERSION в .env вручную,
предварительно прочитав release notes Immich и сделав бэкап postgres/.
./uninstall.shuninstall.sh только останавливает стек (docker compose down). Данные, тома и директория
immich-app/ остаются на месте — удаляйте вручную, если они больше не нужны:
rm -rf immich-app.envсодержит пароль БД. Скрипт ставитumask 077иchmod 600, но проверьте права, если переносили файл или правили его сторонними средствами.- Пароль БД печатается в stdout при установке — он останется в истории терминала и в логах CI.
- Immich слушает 2283 без TLS. Не выставляйте порт в интернет напрямую — только через reverse-proxy с HTTPS (Caddy/nginx/Traefik) или VPN.
- Бэкапов нет. Скрипт их не настраивает;
postgres/иlibrary/бэкапьте самостоятельно. - Смена
DB_PASSWORDв.envпосле установки не меняет пароль в самой БД — он зашит в данные тома при первой инициализации Postgres. Меняйте черезALTER USERвнутри контейнера. docker-compose.ymlперезаписывается при каждом запуске — свои правки вносите не в него, а вdocker-compose.override.yml.- Состав стека зависит от того, что upstream опубликовал на момент установки:
docker-compose.ymlи.envв репозитории не хранятся.
MIT.
