Docker 部署一个精美的画廊 —— ChronoFrame
如果你热爱摄影,又有一定折腾能力,那么或许也希望拥有一座属于自己的精致在线画廊,用来与他人分享作品。近期在一位网友的推荐下,我了解到 ChronoFrame —— 一款开源、自托管的个人云相册解决方案。借助 Docker,即便是新手也能够相对轻松地部署属于自己的独立画廊网站。
效果展示

我的网站(不打算长期保留):https://gallery.veryjack.com
官方示例:https://lens.bh8.ga
优势
- 自部署,数据属于你自己
- 优雅的浏览体验
- 多格式兼容,甚至支持 Live photo
需要什么
- 准备一台 VPS(NAS 也可以)
- 一个域名(可选,但建议有)
- 若干照片
项目地址
https://github.com/HoshinoSuzumi/chronoframe/blob/main/README_zh.md
开始部署
我们采用 docker compose 的方式进行部署,这样最简单,也方便后期管理。一共需要配置两个 docker-compose.yml 和 .env 文件。
你可以通过 ssh 连接上服务器,然后 cd /path/to/chronofram_folder 进入chronoframe 项目文件夹下,直接创建,具体步骤不再赘述,会命令行的用户自然知道怎么做。
- 对于小白,大概率会部署 1panel 或者 宝塔面板,我建议可以直接通过面板,进入项目目录下,直接创建并配置这两个文件即可。比如我用的 1panel,
文件下直接进入/root/data/docker/chronoframe文件夹下,然后点击创建按钮,新建两个文件,命名分别为docker-compose.yml和.env。
docker-compose.yml文件中填入以下信息
services:
chronoframe:
image: ghcr.io/hoshinosuzumi/chronoframe:latest
container_name: chronoframe
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- ./data:/app/data
env_file:
- .env
其中 '3000:3000'第一个 3000 可以改为任意你喜欢的且没被占用的端口号,配置好后,确保防火墙有放行该端口号。
.env文件中填入以下信息
# 管理员邮箱(必须,默认 admin@chronoframe.com)
CFRAME_ADMIN_EMAIL=example@mail.com
# 管理员用户名(可选,默认 ChronoFrame)
CFRAME_ADMIN_NAME=Your_name
# 管理员密码(可选,默认 CF1234@!)
CFRAME_ADMIN_PASSWORD=input_your_password
# 站点信息(均可选)
NUXT_PUBLIC_APP_TITLE=
NUXT_PUBLIC_APP_SLOGAN=
NUXT_PUBLIC_APP_AUTHOR=
NUXT_PUBLIC_APP_AVATAR_URL=
# 地图提供器 (maplibre/mapbox)
NUXT_PUBLIC_MAP_PROVIDER=maplibre
# 使用 MapLibre 需要 MapTiler 访问令牌
NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN=
# 使用 Mapbox 需要 Mapbox 访问令牌
NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN=
# Mapbox 无域名限制令牌(反向地理编码,可选)
NUXT_MAPBOX_ACCESS_TOKEN=
# 存储提供者(local、s3 或 openlist)
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage
# 会话密码(必须,32 位随机字符串)
NUXT_SESSION_PASSWORD=Q7RZjHCLGiZhUj24hJYUCW1AlCJ6NngQ
其中,务必修改 NUXT_SESSION_PASSWORD 中的随机字符串。CFRAME_ADMIN_EMAIL 、CFRAME_ADMIN_NAME 和 CFRAME_ADMIN_PASSWORD 如果不填就是默认值,CFRAME_ADMIN_EMAIL 如果填写,需要确保是邮箱格式。
如果你想将图片上传到 VPS,则可以保持 NUXT_STORAGE_PROVIDER 的配置,这样最简单,如果你想使用 s3,则可以访问官网文档自行研究(我没用过 s3)。
站点信息 等都是选填,按需填写即可。
- 配置好文件后,通过 ssh 连接服务器,并且
cd /path/to/chronofram_folder进入到docker-compose.yml所在的文件夹下,然后运行docker-compose up -d即可运行该项目。 如果想要停止该项目,同样是进入到相同目录下,运行docker-compose down即可。 另外,项目所有的数据都会保存到/path/to/chronofram_folder目录下的data文件夹中。
- 部署好服务后,你就可以通过
http://ip:3000进行访问了,最好是用一个二级域名反向代理一下,便于访问,也更加安全。
上传 Live Photo
部署好服务后,只需输入账户密码即可进入后台上传照片。但是 Live photo 上传需要特别注意一下。
- 需要将 iPhone 通过 AirDrop 传到 Mac 上(其他方式也行)
- 选中 Live Photo 照片,点击左下角
分享按钮,在顶部选项中,勾选最底部的所有照片数据,这样 Mac 上接收到的就是一个文件夹,文件夹中包含一张图片和一个同名的.mov文件。 - 进入 chronoframe 后台,上传照片时,需要同时上传这两个文件,这样就能在画廊看到 Live Photo 了

最后
教程非常简单,其余的功能就留给大家自行探索啦~