Language: bg
Immich: създаване на собствен облак за снимки и видеоклипове на VPS
Immich е self-hosted услуга за съхраняване и автоматично качване на снимки и видеоклипове. Тя предлага мобилни приложения, уеб интерфейс, албуми, интелигентно търсене и разпознаване на лица, като библиотеката остава на избран от вас сървър.
По-долу ще разгледаме изискванията на Immich, инсталирането му в Ubuntu с Docker Compose, настройката на HTTPS, свързването на телефона и външните резервни копия.
Immich в шест стъпки
- Създайте Linux VPS с достатъчно RAM и дисково пространство.
- Насочете поддомейн, например
photos.example.com, към IP адреса на сървъра. - Инсталирайте Docker и изтеглете официалната конфигурация на Immich.
- Посочете пътищата към медийната библиотека и базата данни, след което стартирайте контейнерите.
- Затворете вътрешния порт и активирайте HTTPS.
- Инсталирайте мобилното приложение и конфигурирайте външно резервно копие.
Какво представлява Immich
Immich е приложение с отворен код за управление на собствена библиотека със снимки и видеоклипове. Снимките се показват във времева линия, могат да се групират в албуми, да се намират чрез търсене и автоматично да се качват от телефона към сървъра.
Основната разлика спрямо обикновена облачна услуга за снимки е контролът върху сървърната страна. Файловете се съхраняват на вашия VPS или домашен сървър, но собственикът отговаря за свободното пространство, актуализациите, сигурността и резервните копия.
| Параметър | Облачна услуга за снимки | Immich |
|---|---|---|
| Къде се съхраняват файловете | В инфраструктурата на доставчика | На вашия сървър |
| Поддръжка | Извършва се от доставчика | Извършва се от собственика |
| Разходи | План според обема за съхранение | VPS, дисково пространство и резервни копия |
Immich сам по себе си не е резервно копие. Ако снимките съществуват само на един VPS, повреда на диска или случайно изтриване може да унищожи архива.
Основни функции на Immich
- Автоматични качвания. Приложенията за Android и iOS качват снимки и видеоклипове от избрани албуми. По подразбиране се използва Wi-Fi, а вече наличните файлове се пропускат според техния checksum.
- Интелигентно търсене. Услугата може да търси по хора, местоположение, дата, камера, текст в изображение и описание на съдържанието. Лицата се групират и след това могат да им се зададат имена.
- Албуми и споделяне. Immich поддържа няколко потребители, споделени албуми, споделяне с партньор и публични връзки с парола и срок на валидност.
- Карта и метаданни. Immich чете EXIF данни, показва къде е направена снимката, създава спомени и поддържа любими, архив и външни библиотеки.
Машинното обучение натоварва най-силно CPU и RAM при първоначалния импорт. След създаването на миниатюрите и индексите ежедневното използване на ресурси обикновено е по-ниско.
Изисквания към сървъра за Immich
Официалните изисквания за актуалните версии са:
- 64-битова Linux или Unix-подобна система;
- поне 2 CPU ядра, като се препоръчват 4;
- поне 6 GB RAM, като се препоръчват 8 GB;
- Docker Engine с плъгина
docker compose; - локален SSD за базата данни PostgreSQL;
- място за оригиналните файлове, миниатюрите и транскодираните видеоклипове.
Immich може да работи на сървър с 4 GB RAM, ако функциите за машинно обучение са изключени. За разпознаване на лица и интелигентно търсене е по-добре отначало да изберете 8 GB.
Миниатюрите и транскодираните файлове добавят средно 10–20% към размера на медийната библиотека. За архив от 200 GB отделете поне 240–260 GB. Директорията на базата данни DB_DATA_LOCATION трябва да се намира на локален SSD, а не на мрежов диск.
Практична начална конфигурация е 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS и SSD с 20–30% по-голям капацитет от изходната библиотека. Отделна графична карта не е необходима, макар че може да ускори обработката на голям архив.
Как да инсталирате Immich на VPS
В примера се използват Ubuntu 24.04 и поддомейнът photos.example.com.
1. Конфигурирайте DNS и подгответе Ubuntu
Създайте A DNS запис, който сочи към IPv4 адреса на VPS. След това се свържете по SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableНе затваряйте текущата SSH сесия, докато не проверите, че новата връзка работи.
2. Инсталирайте Docker и Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionИзползвайте конкретно командата docker compose: остарялата команда docker-compose вече не се поддържа от проекта.
3. Изтеглете и конфигурирайте Immich
mkdir -p /opt/immich /srv/immich-data
cd /opt/immich
curl -L -o docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
https://github.com/immich-app/immich/releases/latest/download/example.envОтворете файла:
nano /opt/immich/.envПроменете основните параметри:
UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORDВъведете собствената си часова зона. Паролата за PostgreSQL трябва да съдържа латински букви и цифри; командата openssl rand -hex 24 ще генерира случайна стойност. Оставете останалите редове както са в текущия файл example.env.
4. Затворете вътрешния порт и стартирайте контейнерите
В docker-compose.yml намерете порта за услугата immich-server:
ports:
- '2283:2283'Заменете го със:
ports:
- '127.0.0.1:2283:2283'Портът вече е достъпен само от самия VPS. Стартирайте услугата:
cd /opt/immich
docker compose up -d
docker compose psЗа диагностика използвайте docker compose logs --tail=200.
5. Активирайте HTTPS с Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
reverse_proxy 127.0.0.1:2283
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyCaddy ще заяви сертификат автоматично, ако DNS сочи към VPS и портове 80 и 443 са достъпни. Immich трябва да работи в корена на домейн или поддомейн; адрес като example.com/immich не се поддържа.
6. Създайте администратор и свържете телефона
Отворете https://photos.example.com. Първият регистриран потребител става администратор и може да създава допълнителни акаунти.
Инсталирайте Immich от App Store или Google Play. На екрана за вход въведете адреса без /api:
https://photos.example.comИзберете албумите и активирайте backup. Първият импорт може да отнеме време: сървърът създава миниатюри, разпознава лица, индексира данните за търсене и обработва видеоклипове.
Актуализиране на Immich
Преди актуализация прочетете бележките към изданието, особено при преминаване към нова основна версия:
cd /opt/immich
docker compose pull
docker compose up -d
docker image pruneПърво актуализирайте мобилните приложения, а след това сървъра. Връщането на базата данни към по-стара версия може да не се поддържа, освен ако няма отделни инструкции.
Резервни копия на Immich
Immich автоматично създава PostgreSQL dump-ове, но те съдържат само базата данни и метаданните, а не снимките и видеоклиповете. За пълно възстановяване запазете:
- цялата директория
/srv/immich-data; /opt/immich/.envиdocker-compose.yml;- конфигурацията на Caddy.
Копие на същия VPS не защитава от повреда на диска или изтриване на сървъра. Изпращайте данните към отделен сървър, NAS или обектно хранилище и следвайте стратегията за резервиране 3-2-1. Периодично тествайте възстановяване, вместо само да проверявате дали файловете с backup съществуват.
Кой VPS да изберете за Immich
За пълна функционалност с разпознаване на лица и интелигентно търсене е разумно да изберете VPS с поне 4 vCPU и 8 GB RAM. Изчислете размера на диска според медийната библиотека и добавете място за миниатюри, видеоклипове и растежа на архива.
Linux VPS от tropic.host със статичен IP адрес и SSD хранилище е подходящ за тази задача. Можете да започнете с конфигурация с 8 GB RAM и да увеличите ресурсите с разрастването на библиотеката. Дръжте базата PostgreSQL на бърз локален диск, а backup извън този VPS.
VPS е удобен за денонощен достъп от всяка мрежа. За архив от няколко терабайта домашният сървър може да е по-евтин, но ще трябва сами да осигурите електрозахранване, външен достъп и резервираност.
Ограничения на Immich
Self-hosting не гарантира надеждност. Слаба парола, отворен порт 2283, остарели контейнери или липса на външен backup създават риск от загуба на данни.
Immich също не е точно копие на Google Photos или iCloud: възможностите за редактиране и фоновата синхронизация са различни, а скоростта на анализа зависи от хардуера. Преди да преместите единствения си архив, тествайте услугата с малка библиотека.
Заключение
Immich ви позволява да създадете собствена фотогалерия с качване от мобилен телефон, албуми, разпознаване на лица, търсене и споделяне. За актуална версия е добре да подготвите Linux VPS с 4 ядра, 8 GB RAM и SSD с поне 20–30% свободен капацитет.
След инсталирането конфигурирайте HTTPS, актуализации и външен backup на медийната директория заедно с базата данни. Именно backup-ът, а не self-hosting сам по себе си, защитава снимките от загуба.
FAQ
Безплатен ли е Immich?
Сървърът Immich е с отворен код и може да работи без задължителен абонамент. Все пак ще плащате за VPS, домейн, дисково пространство и резервни копия.
Колко RAM е необходим на Immich?
Официалният минимум е 6 GB RAM, а препоръчителното количество е 8 GB. При 4 GB ще трябва да изключите машинното обучение.
Може ли Immich да се инсталира без домейн?
Технически да, но за постоянен достъп от телефон е по-добре да използвате домейн и HTTPS. Това защитава удостоверяването и прехвърлянето на файлове.
Замества ли Immich резервното копие на снимките?
Не. Копирайте медийната библиотека и базата данни отделно на друго устройство или в друга локация.
Мога ли да мигрирам съществуващ фотоархив?
Да. Файловете могат да се качат през уеб интерфейса или CLI, или дадена директория да се свърже като външна библиотека. Направете копие на изходните данни преди мащабен импорт.
