如果你热爱摄影,又有一定折腾能力,那么或许也希望拥有一座属于自己的精致在线画廊,用来与他人分享作品。近期在一位网友的推荐下,我了解到 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 了

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

杰哥拍的真不错

谢谢,老婆大人出场,不好好拍回去交不了差
看来这个又快人手一个了。
hhhh,我就是图一乐尝试一下,暂时还没长期保留这个服务的想法。
不错。如果加了图床功能更好。
二合一是一个不错的点子
博主,你这个相册 https://veryjack.com/gallery/ 是用wordpress什么插件做的? 看着排版很整齐,我的小宝照片https://www.xuanmiao363.cn/index.php/%e5%b0%8f%e5%ae%9d/看着排版底部不平整
直接用的 wordpress 插件,Meow Gallery,我的需求这个就足够了
看起来还不错,感谢推荐
回头有时间部署一个看看
—但是我发现首屏加在的图片缩略图似乎太消耗资源了
你是说我博客的首页吗?是有一点点,但我都是用的压缩的 webp,尽量去减轻负担了
。
这让我想起了innei最近在做的画廊项目,可以去看看 很全面
貌似做了挺久了吧,我之前看过他的项目,也很不错
。
chronoframe 是一个网友找到我,想让我帮忙尝试一下
效果不错,精美
是的,效果很好,我一度在思考要不要把我的相册换成这个🤔
实况照片也支持,不错
是的,这算是一大亮点
博主好像没有配置照片地球仪,这也是一个亮点
我目前只进行最简单的配置,其他的玩法就靠大家按需研究了
这个效果真不错啊(òωó)👍
是的,而且部署很简单,功能也挺全面的