部署实战3 min read0 views

Lychee 部署教程:Docker 部署的高颜值家庭相册

Lychee v7 用 FrankenPHP 打包,一个应用容器加 MariaDB 就能跑。本文覆盖 Compose、APP_KEY、反代、共享链接与升级注意事项。

Lychee 部署教程:Docker 部署的高颜值家庭相册

Lychee 是开源相册里公认「好看」的那一类:Laravel 编写,v7 起用 FrankenPHP 提供运行时,一个应用容器加一个 MariaDB 就能跑。它没有沉重的 AI 流水线,但相册、标签、共享链接、权限、水印、人脸识别都齐全,适合想要干净家庭相册的人。

一、镜像与端口

项目值
应用镜像ghcr.io/lycheeorg/lychee:latest(或 Docker Hub lycheeorg/lychee)
人脸识别(可选)ghcr.io/lycheeorg/lychee-facial-recognition:latest
数据库mariadb:10
Web 端口8000

v7 的镜像结构有变化,旧教程里的 nginx + php-fpm 双容器写法已经过时,直接按官方新的 Compose 来。

二、下载官方 Compose

mkdir -p /opt/lychee && cd /opt/lychee
curl -O https://raw.githubusercontent.com/LycheeOrg/Lychee/master/docker-compose.minimal.yaml
mv docker-compose.minimal.yaml docker-compose.yml
mkdir -p lychee/uploads lychee/logs lychee/tmp

三、生成密钥并配置

openssl rand -base64 32
# 输出类似:Xb7...= ,前面加 base64: 填进 APP_KEY

编辑 docker-compose.yml 顶部的公共环境变量:

APP_KEY: "base64:把刚才生成的值填在这里"
APP_URL: "https://photos.example.com"
APP_FORCE_HTTPS: "true"
DB_PASSWORD: "请替换成数据库强密码"
DB_ROOT_PASSWORD: "请替换成 root 强密码"
TIMEZONE: "Asia/Shanghai"

如果你不需要人脸识别,可以把 lychee_facial_recognition 整个服务删掉,并去掉 AI_VISION_* 环境变量,能省 1GB 左右内存。

四、启动

docker compose up -d
docker compose ps
docker compose logs -f lychee_api

浏览器打开 http://服务器IP:8000,首次访问会引导创建管理员账号。登录后进入「相册」新建相册并上传照片。

五、反向代理与 HTTPS

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 2000M;
    proxy_read_timeout 600s;

    location / {
        proxy_pass http://127.0.0.1:8000;
        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;
    }
}

若用宝塔面板,直接在站点设置里加反向代理到 http://127.0.0.1:8000,再开 SSL 即可。

Lychee 相册界面
Lychee 的相册与照片浏览界面

六、日常使用

  • 共享:相册右上角「分享」,可设公开、密码、过期时间,适合发给亲戚。
  • 权限:设置里创建用户,分配「可上传 / 只读」角色。
  • 水印与版权:设置 → 图片处理,可批量加水印。
  • 人脸识别:保留 facial-recognition 容器后,在设置里开启并等待扫描。

七、备份与升级

  • 备份 lychee/uploads(原图与缩略图)、lychee/logs,以及 MariaDB 数据卷。
  • 升级:docker compose pull && docker compose up -d。v6 → v7 这类大版本务必先读官方 Upgrade Guide,镜像结构变过。
  • APP_KEY 必须保留,换机时一起带走。

八、常见问题

上传大图报错? 反代 client_max_body_size 与 PHP 侧 upload_max_filesize 都要放开;FrankenPHP 镜像可通过环境变量调整。

页面样式丢失? APP_URL 与实际访问地址不一致,改成正式域名并重启。

内存吃紧? 关掉 facial-recognition 服务,Lychee 本体 512MB 左右就够。

九、小结

Lychee 是「够用、好看、好维护」的平衡点。它不试图接管你的手机备份,但作为一个家庭共享相册,界面和分享体验都相当舒服。

相关阅读:Piwigo 部署教程 · 2026 开源家庭相册横评

MORE / 03

Keep reading

ChronoFrame Docker Deployment: A One-Command Self-Hosted Portfolio
部署实战

ChronoFrame Docker Deployment: A One-Command Self-Hosted Portfolio

2026.11.14 · 3 min read

Piwigo Docker Deployment: The Veteran Open-Source Family Gallery
部署实战

Piwigo Docker Deployment: The Veteran Open-Source Family Gallery

2026.11.14 · 3 min read

Lychee Docker Deployment: A Beautiful Family Photo Album
部署实战

Lychee Docker Deployment: A Beautiful Family Photo Album

2026.11.14 · 3 min read

StarCode

Discover and share great open-source projects. We serve developers and carry the spirit of the internet forward.

Contact

WeChat / advertising: ITcloub (please mention StarCode)

Disclaimer: Resources on this site remain the property of their original authors and are for learning and exchange only. For copyright concerns, contact us via About us → Copyright complaints.

Powered by Nuxt · Deployed on Cloudflare