ChronoFrame个人画廊服务器部署教程!小白也能轻松部署分享照片!

ChronoFrame个人画廊服务器部署教程!小白也能轻松部署分享照片!

本文详细介绍在雨云平台部署自托管个人照片库应用Chronoframe的完整流程。首先注册雨云账号并使用优惠码“techaser”享受5折优惠,购买推荐配置香港2H4G按流量计费云服务器;通过SSH连接服务器后,更新系统并安装Docker及Docker Compose环境。随后获取Chronoframe镜像,创建包含管理员邮箱、存储路径等关键配置的.env文件,使用docker-compose.yml定义容器参数(端口映射3000、数据卷挂载)。最后启动容器,通过公网IP:3000访问验证,即可实现照片在线管理、相册创建及地理位置识别等功能。

 次点击
24 分钟阅读

目录

一、前言

二、 准备工作

  • 注册云服务平台

  • 购买并配置云服务器

  • 连接并管理云服务器

三、服务器环境配置

  • 更新系统并安装基础软件

  • 安装Docker 和Docker Compose

  • (可选)安装Nginx 用于反向代理

四、Chronoframe 安装步骤

  • 获取Chronoframe 镜像

  • 创建环境配置文件

  • 运行Chronoframe 容器

  • 验证安装

前言

Chronoframe 是一个自托管的个人照片库应用,支持在线管理照片、相册,并具备地理位置识别等高级功能。对于摄影爱好者和需要管理大量照片的用户来说,

将Chronoframe 部署在自己的云服务器上,可以完全掌控数据,并享受灵活的扩展性。本教程将手把手教您如何在雨云平台上购买云服务器,并完成Chronoframe 的部署。我们将采用模块化的章节结构,循序渐进地讲解每一步, 确保新手也能轻松跟上。

准备工作

1.注册雨云账号并使用优惠码

首先,您需要在雨云平台注册一个账号。雨云是一家国内云服务提供商,提供云服务器、游戏云等多种产品。

点击网页右上角,进行注册

注册时输入优惠码(如果提示了已通过优惠通道注册就不用输入啦) techaser 可以享受5折优惠!这个优惠码新用户专享的,可以为您节省后续的开服成本。完成注册后,建议绑定微信,以便领取我发布的五折券和永久八折券

购买并配置云服务器

登录雨云控制台后,进入“云服务器”模块,点击“购买云服务器”开始选购。

对于部署Chronoframe这类照片管理应用,一台配置适中的云服务器即可满足需求。推荐选择2核CPU、2GB内存的入门配置,这已经能够流畅运行

Chronoframe 并处理一定量的照片访问。如果预算允许,也可以选择更高配置获得更好的性能和扩展空间。

在购买页面,您需要选择服务器的地域。雨云提供了包括国内(如江苏宿迁、湖北十堰)和海外(如香港、美国洛杉矶)在内的多个机房。请根据您的目标用户群体选择合适的机房:如果主要面向国内用户,建议选择国内机房以获得更低的延迟;如果需要免备案或面向海外用户,则可选择香港或美国机房。确认配置和地域后,如果你使用了我的优惠码注册,下方就可以选择5折优惠券,点击“立即购买”并完成支付。

推荐配置:香港2H4G 按流量计费

购买成功后,系统将自动为您创建一台云服务器,并跳转到管理页面。此时,您需要等待服务器状态变为“运行中”。一旦服务器运行起来,您就可以开始配置和使用它了。

连接并管理云服务器

在服务器列表中找到您刚购买的实例,点击“管理”进入详情页面。在管理页面中,您可以查看服务器的公网IP地址、远程登录端口以及初始的登录凭证(用户名和密码)。接下来,您需要通过SSH 客户端连接到这台服务器进行环境配置。

推荐使用Windows自带的OpenSSH 客户端或第三方工具如FinalShell、MobaXterm 等来连接服务器。打开SSH 客户端,输入服务器的公网IP和端口(默认为22),然后使用提供的用户名(通常为 root ) 和密码进行登录。

成功连接后,您将进入服务器的命令行界面。接下来,我们将对服务器环境进行 必要的配置,为部署Chronoframe 做好准备。

服务器环境配置

更新系统并安装基础软件

在开始安装Chronoframe 之前,确保服务器的操作系统和软件包都是最新状态。 首先,更新系统的软件包索引和已安装的包:

apt update
apt udgrade -y

上述命令将更新软件包列表并升级系统中的所有包到最新版本。在执行过程中, 如果出现询问是否继续的提示,请输入Y 确认。

接下来,安装一些基础但必要的软件。Chronoframe 运行在Docker 容器中,因此我们需要安装Docker 以及用于管理Docker的Docker Compose工具。此外,为了后续方便地管理文件和编辑配置,我们还可以安装 wget (用于下载文件)和 nano (一个简单的文本编辑器)等工具:

安装完成后,启动Docker 服务并设置其开机自启:

systemctl docker
systemctl enable
docker

为了验证Docker 是否安装成功,可以运行以下命令查看Docker 版本:

docker --version

如果输出了Docker 的版本信息,则说明Docker 已正确安装并运行。

安装Docker Compose(雨云)

在上一步中,我们已经通过 apt 安装了Docker 。 不过,为了确保我们使用的是最新版本的Docker Compose, 推荐采用雨云提供的安装方式。 Docker Compose 是一个用于定义和运行多容器Docker 应用的工具,通过一个YAML 文件来配置应用服务,非常适合用于部署Chronoframe 这样的应用。

直接打开云服务器管理页面→重装和安装软件→选择Docker和Docker Compose即可。

(可选)安装Nginx 用于反向代理

在生产环境中,通常会在Chronoframe 前端部署一个反向代理服务器(如Nginx) 来处理HTTPS 加密、负载均衡和静态文件缓存等。不过,对于新手入门 阶段,这一步是可选的。如果您希望先让Chronoframe 以HTTP 方式运行,可以 跳过本节,待熟悉流程后再配置反向代理和SSL。

如果您决定现在就安装Nginx, 可以通过以下命令进行安装:

apt install -y nginx

安装完成后,启动Nginx 并设置开机自启动

systemctl start nginx
systemctl enable
nginx

此时,Nginx 已经以默认配置运行在服务器的80端口上。您可以通过浏览器访问 服务器的公网IP 地址,应该能看到Nginx 的欢迎页面。这表明Nginx 安装成功。我 们将在后续章节中配置Nginx, 使其作为Chronoframe 的反向代理。

Chronoframe安装步骤

现在,我们进入最激动人心的部分——安装Chronoframe 。我们将使用Docker来运行Chronoframe, 因为这是官方推荐的部署方式,能够简化环境配置并保证应用的一致性。

获取Chronoframe镜像

Chronoframe 的官方镜像托管在GitHub Container Registry(GHCR) 和Docker Hub上。您可以根据网络情况选择拉取其中一个源的镜像。以下是使用 GHCR 源的命令:

docker pull ghcr.io/hoshinosuzumi/chronoframe:latest

或者,使用Docker Hub源:

docker pull hoshinosuzumi/chronoframe:latest

上述命令会从镜像仓库拉取Chronoframe 的最新镜像到本地。拉取过程可能需要 一些时间,取决于您的网络速度。请耐心等待直到镜像下载完成。

创建环境配置文件

Chronoframe 通过环境变量来进行配置。为了方便管理,我们创建一个 .env 文 件来存储这些配置。在服务器的 /root 目录下,使用 nano 编辑器创建并打开 .env 文件:

nano .env

在 .env 文件中,至少需要配置以下几项:

● 管理员邮箱(必填) : 设置Chronoframe 管理员的邮箱地址,用于接收通知等。

● 管理员用户名(可选) :自定义管理员的用户名,如果不设置,默认为 Chronoframe 。

● 管理员密码(可选): 自定义管理员的登录密码,如果不设置,默认 为 CF1234@! 。

● 站点元数据(可选) :可以设置站点的标题、标语、作者等信息,用于个性化界面。

● 地图访问令牌(可选) : Chronoframe 内置了地图功能,需要地图服务的访问令牌。您可以选择使用MapLibre 或Mapbox 作为地图提供商。如果使用Mapbox, 需要提供一个公共访问令牌;如果需要逆地理编码功能,还需要提供一个无限制的令牌。这些令牌需要您提前在 相应平台申请并填入。如果您暂时不需要地图功能,可以留空。

● 存储提供者(必填) : Chronoframe 支持多种存储后端,包括本地文 件系统和S3 兼容的对象存储。对于新手入门,我们推荐使用本地文件 系统存储,即设置 NUXT_STORAGE_PROVIDER=local 。 同时,需要指定本地存储的路径,例如

NUXT_PROVIDER_LOCAL_PATH=/app/data/storage

● 会话密码(必填) :设置一个32位的随机字符串作为会话加密密钥, 用于保障用户登录状态的安全。您可以使用 openssl rand -hex 16 命令生成一个随机的32字符字符串,并将其填入。

下面是一个 .env 文件的示例内容:

# 管理员邮箱(必须)
CFRAME_ADMIN_EMAIL=
# 管理员用户名(可选,默认 ChronoFrame)
CFRAME_ADMIN_NAME=
# 管理员密码(可选,默认 CF1234@!)
CFRAME_ADMIN_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=

# 存储提供者(local 或 s3 或 openlist)
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage

# 会话密码(必须,32 位随机字符串)
NUXT_SESSION_PASSWORD=

请根据您的实际情况修改上述配置。特别是管理员邮箱和会话密码这两项,请务必正确设置。会话密码可以使用以下命令生成:

# Linux / macOS
openssl rand -base64 32

# Windows (pwsh)
[Convert]::ToBase64String((1..32|%{[byte](Get-Random -Max 256)}))

将生成的32字符字符串填入 NUXT_SESSION_PASSWORD 即可。完成编辑后,按 Ctrl+0 保存文件,然后按 Ctrl+X 退出nano 编辑器。

运行Chronoframe 容器

有了镜像和配置文件,我们就可以启动Chronoframe 容器了。推荐使用Docker Compose 来管理容器,这样可以方便地定义容器的各种参数(如端口映射、数据卷挂载等)并一键启动。在 /root 目录下,创建一个 docker-compose.yml 文件:

nano 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

在 docker-compose.yml 中,我们定义一个服务 chronoframe , 使用刚才拉取的镜像,并指定容器的名称、重启策略、端口映射、数据卷挂载以及环境变量文件。

上述配置的含义如下:

· image : 指定使用的镜像,这里我们使用GHCR 的镜像。如果您使用的是 Docker Hub的镜像,可以替换为 hoshinosuzumi/chronoframe:latest 。

· container_name : 为容器指定一个名称,方便管理。

· restart:unless-stopped : 设置容器的重启策略为“除非手动停止,否则总是重启”,确保服务在意外退出后自动重启

· ports : 将容器内部的3000端口映射到宿主机的3000端口。Chronoframe默认运行在3000端口,通过这样的映射,您可以通过宿主机的3000端口访问 Chronoframe 服务。

· volumes : 将宿主机当前目录下的 data 目录挂载到容器内的 /app/data目录。这样,Chronoframe 存储的照片、数据库等数据就会保存在宿主机data 目录中,即使容器销毁重建,数据也不会丢失。

· env_file : 指定环境变量文件为当前目录下的 .env 文件,这样 Chronoframe 容器启动时会读取其中的配置。

保存并退出 docker-compose.yml 文件。接下来,在 /root目录下运行以下命令 来操作Chronoframe 容器:

# 启动服务
docker compose up -d

# 查看日志
docker compose logs -f chronoframe

# 停止服务
docker compose down

# 更新到最新版本
docker compose pull
docker compose up -d

验证安装

现在,Chronoframe 应该已经在您的服务器上运行了。打开浏览器,访问以下地址:

http://<IP>:3000

将 <IP> 替换为您实际的IP 地址。如果一切顺利,您将看到Chronoframe 的界面。这表明Chronoframe 已经成功部署并运行在您的云服务器上。

如果您在本地无法访问,请检查以下几点:

●确保服务器的防火墙允许3000端口的访问。如果您的服务器开启了防火墙 (如 ufw ), 请运行 ufw allow 3000 开放端口。

●如果您使用了雨云提供的防火墙/安全组,请确保入站规则允许3000端口的流量。

●确认您在浏览器中输入的地址和端口号正确无误。

一旦能够访问Chronoframe 的界面,恭喜您!您已经成功完成了Chronoframe的部署。接下来,您可以点击Chronoframe的图标登陆,然后,就可以开始上传照片、创建相册,享受 Chronoframe 带来的强大功能了!

© 本文著作权归作者所有,未经许可不得转载使用。