Bookmark

Chạy PhotoPrism trong Docker với MariaDB và thư mục ảnh persistent

PhotoPrism là ứng dụng ảnh có khả năng tự gắn tag và tìm ảnh, có thể chạy tại nhà, server riêng hoặc cloud.[13] Tutorial 0902 của i12bretro chạy PhotoPrism với MariaDB trong Docker, lưu storageoriginals ra host, rồi mở web UI ở cổng 2342.[13]

Youtube video player

Video gốc của tutorial được link trên YouTube.[13]

1. Cài Docker

  1. Đăng nhập thiết bị Linux.[13]
  2. Chạy:[13]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# install prerequisites
sudo apt install apt-transport-https ca-certificates git curl software-properties-common gnupg-agent -y
# add docker gpg key
curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
# add docker software repository
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
# install docker
sudo apt install docker-ce docker-compose containerd.io -y
# enable and start docker service
sudo systemctl enable docker && sudo systemctl start docker
# add the current user to the docker group
sudo usermod -aG docker $USER
# reauthenticate for the new group membership to take effect
su - $USER

Đăng nhập lại sau khi group Docker cập nhật.[13]

2. Tạo MariaDB và PhotoPrism

  1. Chạy các lệnh tạo thư mục, network, MariaDB và PhotoPrism; đặt các biến password theo secret riêng trước khi chạy.[13]

Đặt mật khẩu riêng cho các biến database trước khi chạy. Tôi dùng cùng giá trị password cho MariaDB và PhotoPrism:[13]

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# create working directories
mkdir ~/docker/photoprism/{storage,originals} -p && mkdir ~/docker/mariadb -p
# set owner of working directories
sudo chown "$USER":"$USER" ~/docker -R
# create docker network
docker network create containers
# run the mariadb docker container
docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=CHANGE_ME_ROOT_PASSWORD -e MYSQL_USER=photoprism_rw -e MYSQL_PASSWORD=CHANGE_ME_DB_PASSWORD -e MYSQL_DATABASE=photoprism -v ~/docker/mariadb:/var/lib/mysql --network containers --restart=unless-stopped mariadb:latest
# run photoprism container
docker run -d --name=photoprism --security-opt seccomp=unconfined --security-opt apparmor=unconfined -p 2342:2342 -e PHOTOPRISM_UPLOAD_NSFW="true" -e PHOTOPRISM_ADMIN_PASSWORD="CHANGE_ME_ADMIN_PASSWORD" -e PHOTOPRISM_DATABASE_DRIVER="mysql" -e PHOTOPRISM_DATABASE_SERVER="mariadb:3306" -e PHOTOPRISM_DATABASE_NAME="photoprism" -e PHOTOPRISM_DATABASE_USER="photoprism_rw" -e PHOTOPRISM_DATABASE_PASSWORD="CHANGE_ME_DB_PASSWORD" -v ~/docker/photoprism/storage:/photoprism/storage -v ~/docker/photoprism/originals:/photoprism/originals --network containers --restart=unless-stopped photoprism/photoprism

Giữ nguyên hai volume host: ~/docker/photoprism/storage cho dữ liệu ứng dụng và ~/docker/photoprism/originals cho ảnh gốc.[13] mariadb:3306 là tên service/port nội bộ trong network containers, không cần expose port database ra host.[13]

3. Mở giao diện và nạp ảnh

  1. Mở http://DNSorIP:2342.[13]
  2. Đăng nhập username admin và password được đặt trong PHOTOPRISM_ADMIN_PASSWORD.[13]
  3. Chép ảnh vào ~/docker/photoprism/originals, hoặc dùng chức năng upload trong web UI.[13]
  4. Kiểm tra PhotoPrism hiển thị ảnh và container vẫn chạy.[13]

Cảnh báo về isolation và nội dung

Tutorial dùng --security-opt seccomp=unconfined--security-opt apparmor=unconfined; đây là nới lỏng sandbox, tôi chỉ giữ khi image/workload yêu cầu và không mở ứng dụng thẳng ra Internet.[13] PHOTOPRISM_UPLOAD_NSFW="true" cho phép tải lên nội dung NSFW theo biến nguồn; tôi đặt policy riêng cho người dùng, backup và chia sẻ ảnh.[13]

Tôi thay CHANGE_ME_* trước khi chạy, không commit file .env có secret và không dùng lại password admin/database giữa các dịch vụ.[13] Backup cả storage, originals và database volume trước khi update image.[13] Nếu đổi password sau khi MariaDB đã khởi tạo, kiểm tra cơ chế đổi user/password thay vì chỉ sửa command rồi recreate mù.[13]

Video gốc của tutorial: [xem trên YouTube]1.[13]

Nguồn

Tài liệu gốc: [Run PhotoPrism - A Google Photos Alternative - In Docker]2, đăng/cập nhật 2024-08-12.[13]

[13] https://i12bretro.github.io/tutorials/0902.html — Run PhotoPrism in Docker


  1. https://www.youtube.com/watch?v=R2T89oz0jTA — video chính thức của i12bretro. ↩︎

  2. https://i12bretro.github.io/tutorials/0902.html — Run PhotoPrism - A Google Photos Alternative - In Docker. ↩︎


0 Bình luận

Góp Ý / Bình Luận / Đánh giá