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文件中填入以下信息1services: 2 chronoframe: 3 image: ghcr.io/hoshinosuzumi/chronoframe:latest 4 container_name: chronoframe 5 restart: unless-stopped 6 ports: 7 - '3000:3000' 8 volumes: 9 - ./data:/app/data 10 env_file: 11 - .env其中
'3000:3000'第一个 3000 可以改为任意你喜欢的且没被占用的端口号,配置好后,确保防火墙有放行该端口号。.env文件中填入以下信息1# 管理员邮箱(必须,默认 admin@chronoframe.com) 2CFRAME_ADMIN_EMAIL=example@mail.com 3# 管理员用户名(可选,默认 ChronoFrame) 4CFRAME_ADMIN_NAME=Your_name 5# 管理员密码(可选,默认 CF1234@!) 6CFRAME_ADMIN_PASSWORD=input_your_password 7 8# 站点信息(均可选) 9NUXT_PUBLIC_APP_TITLE= 10NUXT_PUBLIC_APP_SLOGAN= 11NUXT_PUBLIC_APP_AUTHOR= 12NUXT_PUBLIC_APP_AVATAR_URL= 13 14# 地图提供器 (maplibre/mapbox) 15NUXT_PUBLIC_MAP_PROVIDER=maplibre 16# 使用 MapLibre 需要 MapTiler 访问令牌 17NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN= 18# 使用 Mapbox 需要 Mapbox 访问令牌 19NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN= 20 21# Mapbox 无域名限制令牌(反向地理编码,可选) 22NUXT_MAPBOX_ACCESS_TOKEN= 23 24# 存储提供者(local、s3 或 openlist) 25NUXT_STORAGE_PROVIDER=local 26NUXT_PROVIDER_LOCAL_PATH=/app/data/storage 27 28# 会话密码(必须,32 位随机字符串) 29NUXT_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 了

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