Новое Распределяем каналы MAX по категориям и территориям. Читать новость 
Загружаем изображение…

Immich - альтернатива Google Photos



Фото на телефоне заканчиваются одинаково: память кончается, облако просит подписку, а «просто посмотреть семейный архив» превращается в передачу личных данных третьей стороне. Immich — self-hosted система хранения и каталогизации фото и видео. Ваше оборудование, ваш сервер, ваши правила. По ощущению — та же облачная галерея, только поиск по лицам и сценам считается дома, а не на чужой машине.

Ветка на момент написания — 3.x. Ставил 3.2.4 поверх 3.1.

Как это устроено

Immich — не один контейнер, а четыре. Лучше знать это до первой поломки:

- immich-server — веб-интерфейс, API, вся логика;
- immich-machine-learning — нейросети: распознавание лиц, семантический поиск, текст на снимках;
- database — PostgreSQL с расширением под векторный поиск;
- redis — очередь задач. Миниатюры, транскодинг видео и скан библиотек уходят в очередь и не считаются в момент вашего запроса.

Порт по умолчанию — 2283. Состояние живёт в двух местах: каталог хранилища (library, upload, thumbs, encoded-video, backups, profile) и каталог данных базы. Удалить одно без другого — получить базу без файлов или файлы без базы.

Установка

Каталог проекта и два файла. Все пути в примерах условные — подставьте свои.

.env:

``
UPLOADLOCATION=/srv/immich/storage
DBDATALOCATION=/srv/immich/db
DBHOSTNAME=database
DBPORT=5432
DBUSERNAME=immich
DBDATABASENAME=immich
DBPASSWORD=
REDISHOSTNAME=redis
REDISPORT=6379
TZ=Europe/Moscow
`

Внимание: этот файл хранит пароль базы открытым текстом. Доступ к каталогу проекта ограничьте, в систему контроля версий он попадать не должен.

docker-compose.yml — сокращённо, показаны сервер и машинное обучение с монтированиями (полный шаблон берётся из официальной документации):

`yaml
services:
immich-server:
containername: immichserver
image: ghcr.io/immich-app/immich-server:${IMMICHVERSION:-release}
ports:
- "2283:2283"
volumes:
- ${UPLOADLOCATION}:/data
- /srv/photos/existing-archive:/mnt/archive:ro
envfile: .env
dependson:
database:
condition: servicehealthy
redis:
condition: servicehealthy

immich-machine-learning:
containername: immichmachinelearning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICHVERSION:-release}
volumes:
- ${UPLOADLOCATION}:/usr/src/app/upload
- /srv/photos/existing-archive:/mnt/archive:ro
envfile: .env

redis:
containername: immichredis
image: docker.io/redis:6.2-alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 10
restart: always

database:
containername: immichpostgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRESPASSWORD:
POSTGRESUSER: ${DBUSERNAME}
POSTGRESDB: ${DBDATABASENAME}
volumes:
- ${DBDATALOCATION}:/var/lib/postgresql/data
envfile: .env
healthcheck:
test: ["CMD-SHELL", "pgisready -U $${POSTGRESUSER} -d $${POSTGRESDB}"]
interval: 5s
timeout: 3s
retries: 30
restart: always
`

Обратите внимание на :ro во втором монтировании — об этом ниже.

Запуск:

`bash
docker compose pull
docker compose up -d
`

Первый заход на http://<адрес-сервера>:2283 — мастер попросит создать аккаунт администратора.
…

https://esin48.ru/blog/post.php?post=2026-10-02-immich-alternativa-google-photos
#полезное
Просмотры: 87
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти