Skip to content

自部署指南

自从 v1.7.0 以来,我们放弃了使用服务器渲染,而只使用静态文件。这使得自部署变得更加容易。

静态部署

由于是静态网站,所以只要将生成的文件部署到任何支持静态文件的服务器上即可, 无论是放到 GitHub Pages,还是放到自己的服务器上。

可以在 Release 页面 下载 static.tar.gz,解压后就是静态文件。

Caddyfile 配置示例:

caddy
your.domain {
    # 设置网站根目录为解压的文件夹
    root * /your_path_to_files
    # 启用文件服务器
    file_server
    # 启用压缩
    encode zstd gzip
}

Nginx 配置示例(AI 编写,未测试,如果有更好的示例请提 PR):

nginx
server {
    listen 80;
    server_name your_domain.com;  # 替换为你的域名或 IP

    # 静态文件目录配置
    location / {
        root /your_path;  # 替换为你的静态文件目录
        index index.html index.htm;

        # 启用目录浏览(可选)
        autoindex on;

        # 尝试寻找文件,如果不存在则返回 404
        try_files $uri $uri/ =404;
    }

    # 启用 gzip 压缩
    gzip on;
    gzip_types text/plain text/css application/javascript application/json image/svg+xml;
    gzip_min_length 1000;
}

Docker 部署(不再推荐)

为什么不再推荐?

自从本项目变成静态网站以来,Docker 部署陷入了一个比较尴尬的境地:用户终究需要使用 Nginx、Caddy 或者其他 Web 服务器来提供 HTTPS 访问,但是这些工具本身就支持直接部署静态文件,用 Docker 先 serve 这些静态文件到一个端口,再用 Nginx 或者 Caddy 反向代理到这个端口,有些多此一举了。

因此,我们推荐直接使用 Nginx、Caddy 或者其他 Web 服务器来直接部署静态文件。

为了向后兼容,我们依旧提供 Docker 部署的方式。

自 v1.8.1 开始,我们提供的 Docker 镜像仅仅是一个简单的 python http.server,体积非常小,内部使用 3000 端口。

直接运行:

bash
docker run -p 3000:3000 -d yunfinibol/s3-image-port:latest

Docker compose 配置:

yaml
name: s3-image-port
services:
  s3-image-port:
    ports:
      - 3000:3000
    image: yunfinibol/s3-image-port:latest

之后使用 Nginx 或者 Caddy 反向代理 3000 端口即可。