惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

阿杰 Jack ,作者Jack's Space

我做了一个免费的在线图片压缩工具——VeryPixel | Jack's Space 从学校到公司,从上海到成都 是时候,走出象牙塔了 一款自用三年的“小众”记账 App —— Cookie 记账 7 刀 VPS 照样玩转 Clawdbot (Moltbot) COC 跑团初体验 AI翻译这么强,我为什么还在学英语? 哪怕没人看,也要给毛孩子开个账号 注册美区 Apple ID 越来越难,不到 48 小时就“翻车” 2025 年度幸福感好物分享 一年一度的黑五又来了
Docker 部署一个精美的画廊 —— ChronoFrame
阿杰 Jack · 2025-12-08 · via 阿杰 Jack ,作者Jack's Space

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

目录

  1. 效果展示
  2. 优势
  3. 需要什么
  4. 项目地址
  5. 开始部署
  6. 上传 Live Photo
  7. 最后

效果展示

我的网站(不打算长期保留):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 了

最后

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