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 项目文件夹下,直接创建,具体步骤不再赘述,会命令行的用户自然知道怎么做。

  1. 对于小白,大概率会部署 1panel 或者 宝塔面板,我建议可以直接通过面板,进入项目目录下,直接创建并配置这两个文件即可。比如我用的 1panel,文件 下直接进入 /root/data/docker/chronoframe 文件夹下,然后点击 创建 按钮,新建两个文件,命名分别为 docker-compose.yml.env
  1. 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 可以改为任意你喜欢的且没被占用的端口号,配置好后,确保防火墙有放行该端口号。

  1. .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_EMAILCFRAME_ADMIN_NAMECFRAME_ADMIN_PASSWORD 如果不填就是默认值,CFRAME_ADMIN_EMAIL 如果填写,需要确保是邮箱格式

如果你想将图片上传到 VPS,则可以保持 NUXT_STORAGE_PROVIDER 的配置,这样最简单,如果你想使用 s3,则可以访问官网文档自行研究(我没用过 s3)。

站点信息 等都是选填,按需填写即可。

  1. 配置好文件后,通过 ssh 连接服务器,并且 cd /path/to/chronofram_folder 进入到 docker-compose.yml 所在的文件夹下,然后运行 docker-compose up -d 即可运行该项目。 如果想要停止该项目,同样是进入到相同目录下,运行 docker-compose down 即可。 另外,项目所有的数据都会保存到 /path/to/chronofram_folder 目录下的 data 文件夹中。
  1. 部署好服务后,你就可以通过 http://ip:3000进行访问了,最好是用一个二级域名反向代理一下,便于访问,也更加安全。

上传 Live Photo

部署好服务后,只需输入账户密码即可进入后台上传照片。但是 Live photo 上传需要特别注意一下。

  1. 需要将 iPhone 通过 AirDrop 传到 Mac 上(其他方式也行)
  2. 选中 Live Photo 照片,点击左下角 分享 按钮,在顶部 选项 中,勾选最底部的 所有照片数据,这样 Mac 上接收到的就是一个文件夹,文件夹中包含一张图片和一个同名的 .mov文件。
  3. 进入 chronoframe 后台,上传照片时,需要同时上传这两个文件,这样就能在画廊看到 Live Photo 了

最后

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

20 评论

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注