mtphotos-nodb

mtphotos-nodb

Docker app from baofeidyz's Repository

Overview

MT Photos 是面向 NAS 用户的私有照片与视频管理系统,支持导入已有图库、手机备份、缩略图、预览、人脸识别和地理位置元数据。本模板使用 mtphotos/mt-photos:nodb-latest,不内置数据库,需另行配置数据库服务并单独备份。 English: MT Photos is a private photo and video management system for NAS users. It supports importing existing libraries, mobile photo backup, thumbnails, previews, face recognition and location metadata. This template uses mtphotos/mt-photos:nodb-latest, which does not bundle a database. Configure and back up a separate database service.

MT Photos Unraid Templates

English | 简体中文

This repository contains an Unraid Docker template for MT Photos, a private photo and video management system for NAS users.

Repository contents

  • templates/mtphotos.xml — Unraid Docker template (v2) with bundled PostgreSQL
  • templates/mtphotos-nodb.xml — NoDB template for external PostgreSQL
  • templates/mtphotos-ai.xml — MT Photos AI recognition API (ONNX) template
  • templates/mtphotos-insightface-api.xml — MT Photos InsightFace facial recognition API template
  • ca_profile.xml — Community Applications maintainer profile
  • icons/mtphotos.png — Repository/application icon
  • README.md — English documentation (default)
  • README_CN.md — Simplified Chinese documentation
  • LICENSE — Template repository license

Image and configuration

  • mtphotos uses mtphotos/mt-photos:latest with bundled PostgreSQL; its database is persisted under /config.
  • mtphotos-nodb uses mtphotos/mt-photos:nodb-latest. Configure POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DATABASE, POSTGRES_USER and POSTGRES_PASSWORD, and back up the external database separately.

Both main apps default to the same WebUI port, upload path and library path. Do not run both with unchanged defaults. For a parallel installation, change one app's host port and its /config and /upload host paths.

Optional recognition services

App Image Port Configuration
mtphotos-ai mtphotos/mt-photos-ai:onnx-latest 8060/tcp API_AUTH_KEY
mtphotos-insightface-api devfox101/mt-photos-insightface-unofficial:latest 8066/tcp API_AUTH_KEY

Neither API container requires a storage mapping. After installation, add their API addresses in MT Photos, for example http://NAS-LAN-IP:8060 and http://NAS-LAN-IP:8066, using the matching API_AUTH_KEY from each template. InsightFace uses a community image and is not an official MT Photos image.

Setting Container target and host default
WebUI 8063/tcp
Tailscale WebUI port 8063
Settings and cache /config ← /mnt/user/appdata/mtphotos
Mobile uploads /upload ← /mnt/user/photos/MTPhotos-Upload
Existing library /photos ← /mnt/user/photos
Timezone TZ=Asia/Shanghai
Temporary storage (optional; transcoding use unverified) /temp ← /mnt/user/appdata/mtphotos/temp

Requirements

Recommended hardware: x86_64, at least 4 GB RAM and a dual-core 2.0 GHz CPU, following the official installation guide.

The bundled-database template persists PostgreSQL through /config. NoDB requires a separate PostgreSQL service; face recognition and text-to-image search require pgvector support.

Temporary storage: verification pending

The optional temp mapping is shown in advanced settings and exposes writable storage at /temp. It does not by itself select MT Photos' transcoding directory. Automatic use of this path has not been established from official documentation or a running image. There is no verified application setting or environment variable supplied here to redirect transcoding.

Before relying on this mapping, run a transcoding task and confirm the actual temporary output path from logs or process arguments and newly created files. If the application uses a different path, map that confirmed path instead. Do not treat completed transcodes in the permanent cache as proof that temporary files used /temp.

Required before publishing

Repository: baofeidyz/unraid-template-mtphotos. Maintainer: baofeidyz. Template support: GitHub Issues.

Publish the files to the main branch and verify these raw URLs:

https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/templates/mtphotos-nodb.xml
https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/templates/mtphotos.xml
https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/templates/mtphotos-ai.xml
https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/templates/mtphotos-insightface-api.xml
https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/icons/mtphotos.png
https://raw.githubusercontent.com/baofeidyz/unraid-template-mtphotos/main/README.md

The main application icon is icons/mtphotos.png. If you replace it, use an image you are authorized to publish and update both main app templates and ca_profile.xml if the path changes.

Validate and test

Validate the XML files from the repository root:

xmllint --noout ca_profile.xml templates/*.xml

Before submitting to Community Applications:

  1. Push to the main branch of a public GitHub repository.
  2. Check the URLs referenced by Icon, TemplateURL, ReadMe, Support, Project, WebPage, and Forum; ensure they are accessible and contain no placeholders.
  3. Install manually on Unraid and verify the main app's startup, WebUI access, database persistence under /config, backup restoration, mobile backup to /upload, and library access under /photos.
  4. Start each optional API, check it with the corresponding key, and verify AI and facial recognition jobs from MT Photos.
  5. Verify the actual temporary transcoding path and, if using the optional temp mapping, confirm temporary files are written to its host directory. Check host paths and timezone; use a read-only library mapping to prevent changes to originals, and verify separate database backups.
  6. Submit the public repository through the Unraid Community Applications submission portal.

Notes

  • The WebUI URL uses [PORT:8063], which Unraid resolves to the mapped host port.
  • /config stores the bundled database, settings, thumbnails, previews and cache; /upload stores mobile photo and video backups. Keep both mappings persistent and writable.
  • Add further path mappings in Unraid for additional libraries.
  • This repository packages only Community Applications metadata. MT Photos and its Docker image remain subject to their respective upstream terms.

Upstream references

Requirements

需要 x86_64 系统及独立 PostgreSQL 服务;人脸识别和以文搜图需要 pgvector 支持。建议系统内存至少 4 GB、双核 2.0 GHz CPU。 English: Requires x86_64 and a separate PostgreSQL service; face recognition and text-to-image search require pgvector support. Recommended: at least 4 GB RAM and a dual-core 2.0 GHz CPU.

Download Statistics

1,061,296
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
mtphotos/mt-photos:nodb-latest
Last Updated2026-09-28
First Seen2026-09-10

Runtime arguments

Web UI
http://[IP]:[PORT:8063]
Network
bridge
Shell
bash
Privileged
false

Template configuration

网页端口 / WebUI PortPorttcp

MT Photos 网页访问端口,可按需修改宿主机端口。 English: MT Photos web interface port; change the host port if needed.

Target
8063
Default
8063
配置目录 / ConfigPathrw

保存应用配置、缩略图、预览及缓存,请备份此目录。外部数据库需单独备份。 English: Stores settings, thumbnails, previews and cache. Back up this directory and the external database separately.

Target
/config
Default
/mnt/user/appdata/mtphotos-nodb
上传目录 / UploadPathrw

保存通过 MT Photos 手机 App 备份的照片和视频,需要可写权限。 English: Writable destination for photos and videos backed up from the MT Photos mobile app.

Target
/upload
Default
/mnt/user/photos/MTPhotos-Upload
图库目录 / PhotosPathrw

已有照片和视频所在目录,请将宿主机路径改为实际图库路径。如不允许修改原文件,请改为只读模式。 English: Existing photo and video library. Set the host path to your library; use read-only mode to prevent changes to originals.

Target
/photos
Default
/mnt/user/photos
临时目录(可选) / temp (optional)Pathrw

可选的临时文件目录映射,需要可写权限及足够空间。尚未确认 MT Photos 会自动将临时转码文件写入 /temp;仅添加映射不代表转码路径已设置。 English: Optional writable temporary storage with sufficient free space. Automatic use of /temp for transcoding has not been verified; this mapping alone does not configure the transcoding path.

Target
/temp
Default
/mnt/user/appdata/mtphotos/temp
时区 / TimezoneVariable

容器时区,使用 IANA 格式,例如 Asia/Shanghai 或 Europe/London。 English: Container timezone in IANA format, for example Asia/Shanghai or Europe/London.

Target
TZ
Default
Asia/Shanghai
数据库地址 / POSTGRES_HOSTVariable

必填。bridge 网络请填写 NAS 局域网 IP 和数据库发布端口;使用容器名需加入同一自定义网络。不要填写 localhost 或 127.0.0.1。 English: Required. On bridge, use the NAS LAN IP and published database port. Container names require a shared custom network. Do not use localhost or 127.0.0.1.

Target
POSTGRES_HOST
数据库端口 / POSTGRES_PORTVariable

从本容器访问 PostgreSQL 使用的端口。 English: PostgreSQL port reachable from this container.

Target
POSTGRES_PORT
Default
5432
数据库名称 / POSTGRES_DATABASEVariable

PostgreSQL 数据库名称。 English: PostgreSQL database name.

Target
POSTGRES_DATABASE
Default
postgres
数据库用户 / POSTGRES_USERVariable

PostgreSQL 用户名。 English: PostgreSQL username.

Target
POSTGRES_USER
Default
postgres
数据库密码 / POSTGRES_PASSWORDVariable

PostgreSQL 用户密码。本配置不会修改数据库密码。 English: PostgreSQL user password. This setting does not change the database password.

Target
POSTGRES_PASSWORD