Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Immich через Docker, автоматическое резервное копирование фото и видео, распознавание лиц, вид на карте, общие альбомы, мобильное приложение и self-hosted альтернатива Google Photos.
Immich — это self-hosted платформа для резервного копирования фото и видео, разработанная как open-source альтернатива Google Photos. Предлагает современные функции: автоматическое резервное копирование через мобильные приложения, распознавание лиц, вид на карте и общие альбомы.
Immich позволяет хранить коллекцию фото и видео на собственном сервере:
version: '3.8'
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- "2283:2283"
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: redis:6.2-alpine
restart: always
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
volumes:
pgdata:
model-cache:
UPLOAD_LOCATION=/data/immich/upload
DB_PASSWORD=StrongPass123!
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
mkdir -p /data/immich/upload
docker compose up -d
docker logs immich_server -f
Доступ к веб-интерфейсу Immich: http://IP_СЕРВЕРА:2283. При первом входе необходимо создать учётную запись администратора.
server {
listen 443 ssl http2;
server_name photos.example.com;
ssl_certificate /etc/letsencrypt/live/photos.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/photos.example.com/privkey.pem;
client_max_body_size 50000M;
location / {
proxy_pass http://127.0.0.1:2283;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
}
}
https://photos.example.comservices:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /mnt/photos:/mnt/photos:ro
# Резервное копирование базы данных
docker exec immich_postgres pg_dumpall -U postgres | \
gzip > /backups/immich-db-$(date +%Y%m%d).sql.gz
# Резервное копирование директории загрузок
rsync -avz /data/immich/upload/ /backups/immich-upload/
docker exec immich_postgres pg_dumpall -U postgres > immich-backup.sql
docker compose pull
docker compose up -d
Immich находится в активной разработке. Крупные обновления версий могут содержать несовместимые изменения. Всегда делайте резервную копию базы данных перед обновлением и читайте release notes.
Immich — мощная self-hosted альтернатива Google Photos. С 8 ГБ RAM на серверах REXE вы можете управлять тысячами фотографий без проблем.
Дисковое пространство полностью зависит от размера вашей коллекции фото/видео. Immich хранит оригинальные файлы и создаёт дополнительные миниатюры (~10-15% дополнительного пространства). Для 10 000 фотографий ожидайте около 50-100 ГБ; значительно больше при наличии видеоколлекций. Кэш ML-моделей требует дополнительно ~2 ГБ.
Проверьте: 1) URL сервера корректен (включая https://), 2) Порт 2283 открыт в брандмауэре, 3) При использовании Nginx reverse proxy включена поддержка WebSocket, 4) SSL-сертификат действителен (самоподписанные сертификаты могут вызывать проблемы на мобильных устройствах).
Проверьте, что ML-контейнер запущен (docker ps). Первое сканирование может занять часы для больших коллекций. Требуется минимум 4 ГБ RAM (рекомендуется 8 ГБ). Убедитесь, что распознавание лиц включено в Administration → Machine Learning.
Два метода: 1) Внешняя библиотека — смонтируйте директорию с фотографиями как read-only volume и просканируйте из Administration → External Libraries. 2) CLI-инструмент — массовая загрузка с immich-cli: npx immich upload --recursive /path/to/photos. Внешняя библиотека читает файлы на месте без копирования.
Если есть резервная копия базы данных, можно восстановить. Остановите все контейнеры: docker compose down. Загрузите образы заново: docker compose pull. Запустите: docker compose up -d. Проверьте логи: docker logs immich_server.
Преимущества Immich: данные остаются у вас, нет ограничений хранилища, бесплатный и open source. Недостатки: нужно управлять собственным сервером, не так продвинут как AI-функции Google (но быстро развивается), ещё не достиг стабильной версии 1.0. Основные функции (резервное копирование, распознавание лиц, поиск, обмен) доступны.
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.