Skip to content

🚀 使用 Docker Compose 部署 xBrowserSync(私有书签同步服务)

🚀 使用 Docker Compose 部署 xBrowserSync

xBrowserSync 是一个开源的、可自行架设的浏览器书签同步工具。它允许你在不同设备和浏览器之间安全地同步书签,而无需依赖第三方商业服务,确保你的书签数据掌握在自己手中。

下面将详细介绍如何使用 Docker Compose 部署 xBrowserSync。

📦 项目简介

xBrowserSync 的核心特点可以概括为下表:

特点类别 具体说明
核心功能 安全同步:书签数据在同步前会在你的设备上进行加密,服务器端存储的是加密后的数据,有效保护隐私。跨平台与跨浏览器:支持多种浏览器(如 Chrome、Firefox)以及移动设备。开源与自托管:代码开源,允许用户自行审查和部署,不依赖于任何中心化的商业服务。
部署与集成 API 驱动:其核心是一个提供同步功能的 RESTful API 服务。容器化部署:官方提供了 Docker 镜像,便于通过 Docker Compose 快速部署。
数据管理 每个同步网络由一个唯一的 Sync ID 标识。你可以选择将书签数据同步到官方的公共服务器,或者像本教程一样,部署自己的私有服务器。

自建优势 * 数据完全自主:所有书签数据存储在你自己的服务器和数据库中,无需担心隐私泄露或服务商停止服务的风险。 * 定制化:你可以完全控制服务版本和配置。 * 学习与实践:这是一个很好的 Docker Compose 和微服务架构的实践案例。


📦 项目简介2

xBrowserSync 是一款开源的 跨浏览器书签同步工具,核心功能是将不同浏览器(Chrome、Firefox、Edge 等)的书签统一同步到私有服务器,避免依赖第三方书签同步服务(如 Chrome 同步),保障书签数据隐私与自主可控。

本次部署为 完整生产级方案,包含三大核心组件,协同实现书签同步功能:

组件名称 作用说明
db(MongoDB) 存储书签数据、用户同步密钥等核心信息,采用数据卷持久化,避免数据丢失。
api(xBrowserSync API) 处理书签同步逻辑(上传 / 下载 / 更新书签),提供健康检查接口,依赖 MongoDB 运行。
reverse-proxy(Caddy) 反向代理 API 服务,自动申请并配置 HTTPS 证书(Let’s Encrypt),无需手动管理证书。

核心特点

  1. 隐私优先:书签数据存储在私有服务器,不经过第三方,避免数据泄露风险;
  2. 自动 HTTPS:基于 Caddy 反向代理,自动获取并续期 Let’s Encrypt 证书,访问更安全;
  3. 跨浏览器兼容:支持 Chrome、Firefox、Edge、Safari 等主流浏览器(需安装 xBrowserSync 插件);
  4. 数据持久化:MongoDB 数据与 Caddy 配置均通过 Docker 卷存储,容器删除后数据不丢失;
  5. 健康检查:API 服务内置健康检查,确保服务异常时可及时发现;
  6. 轻量低耗:整体资源占用低(1 核 1GB 内存即可稳定运行),适合个人服务器或 NAS 部署。

📋 部署前准备

  1. 环境要求 确保你的服务器已安装 DockerDocker Compose。你可以通过在终端执行 docker -vdocker compose version 来验证。

  2. 资源检查

    • 端口:确认宿主机上的 80443 端口未被其他程序(如 Nginx、Apache)占用。如果已被占用,你需要修改 docker-compose.ymlreverse-proxy 服务的端口映射,例如将 "80:80" 改为 "8080:80"
    • 域名与 DNS:准备一个域名(例如示例中的 xbrowsersync.clxr-25.top),并将其 DNS A 记录解析到你的服务器 IP 地址。这是 Caddy 服务器自动申请 SSL 证书所必需的。
    • 磁盘空间与权限:确保部署目录有足够的空间,并且当前用户对部署目录有读写权限,以便创建和挂载 Docker 卷。

3. 关键依赖准备

(1)域名解析(必须!)

Caddy 自动 HTTPS 依赖公网域名,需将 .env 中的 API_HOSTNAME(如 xbrowsersync.clxr-25.top)解析到服务器公网 IP:

  1. 登录你的域名服务商(如阿里云、腾讯云);
  2. 进入 “DNS 解析” 页面,添加一条 A 记录
    • 主机记录:按需填写(如 xbrowsersync,对应域名 xbrowsersync.clxr-25.top);
    • 记录值:填写服务器公网 IP;
    • TTL:默认 10 分钟(解析生效后再部署服务)。
(2)端口开放

需开放 80(HTTP,Caddy 用于验证域名并申请证书)和 443(HTTPS,书签同步服务端口):

  • Linux(UFW 防火墙):
    sudo ufw allow 80/tcp  # Caddy 证书申请
    sudo ufw allow 443/tcp # HTTPS 服务

- 云服务器:在 “安全组” 中添加 “TCP 80/443 入站规则”。

⚙️ 配置 Docker Compose

1.创建项目目录 创建一个目录(如 xBrowserSync)用于存放所有相关文件,并进入该目录。

    mkdir xBrowserSync && cd xBrowserSync

2.创建环境变量文件 (.env) 将用户提供的环境变量内容保存到新创建的 .env 文件中。此文件为 docker-compose.yml 中的变量提供值,是配置的核心。

# 公网域名(已解析到服务器IP,需替换为你的域名)
API_HOSTNAME=xbrowsersync.clxr-25.top
# MongoDB 数据库名(可自定义,建议保留默认)
DB_NAME=admino
# MongoDB 密码(必须修改!默认密码不安全,建议含字母+数字+符号,如 XBS_DB@2024!)
DB_PASSWORD=adminadmino
# MongoDB 用户名(可自定义,建议与 DB_NAME 对应)
DB_USERNAME=xbsdb
# Windows 兼容配置(Linux 环境无需修改)
COMPOSE_CONVERT_WINDOWS_PATHS=1

**关键配置说明**:
*   **`API_HOSTNAME`**:这是最重要的配置项,必须是你可以完全控制的域名。Caddy 将自动为该域名申请并配置 SSL 证书。
*   **数据库凭据**:`DB_PASSWORD` 建议修改为更复杂的强密码。`DB_NAME` 和 `DB_USERNAME` 可按需修改。
*   在 `.env` 文件所在目录执行以下命令,确保文件权限正确:
        chmod 600 .env  # 限制文件权限,保护敏感信息

3.创建 docker-compose.yml 文件 将用户提供的配置内容保存到新创建的 docker-compose.yml 文件中。此配置定义了三个服务:db (MongoDB)、api (xBrowserSync API) 和 reverse-proxy (Caddy)。

#version: "3.7"

services:
  # 1. MongoDB 数据库服务
  db:
    image: "mongo:4.4.4" #27017/tcp   # 固定 MongoDB 版本,确保兼容性
    container_name: "xbs-db"  # 容器名,便于管理
    environment:
      # MongoDB 初始化配置(与 .env 变量对应)
      - "MONGO_INITDB_DATABASE=$DB_NAME"
      - "MONGO_INITDB_ROOT_PASSWORD=$DB_PASSWORD"
      - "MONGO_INITDB_ROOT_USERNAME=$DB_USERNAME"
      - "XBS_DB_NAME=$DB_NAME"
      - "XBS_DB_PASSWORD=$DB_PASSWORD"
      - "XBS_DB_USERNAME=$DB_USERNAME"
    restart: "unless-stopped"  # 容器异常退出后自动重启(手动停止不重启)
    volumes:
      - "xbs-db-data:/data/db"  # 数据库数据持久化(核心卷,不可删除)
      - "xbs-db-backups:/data/backups"  # 数据库备份目录(可选)
      - "./mongoconfig.js:/docker-entrypoint-initdb.d/mongoconfig.js"  # 初始化脚本挂载

  # 2. xBrowserSync API 服务
  api:
    image: "xbrowsersync/api:1.1.13" #8080/tcp   # 官方 API 镜像(与 Dockerfile 版本一致)
    # 若需自定义构建 API 镜像,注释上方 image,启用下方 build
    # build: .
    container_name: "xbs-api"
    depends_on:
      - "db"  # 依赖 DB 服务启动后再启动 API
    environment:
      # API 连接 MongoDB 的配置(与 .env 变量对应)
      - "XBROWSERSYNC_DB_PWD=$DB_PASSWORD"
      - "XBROWSERSYNC_DB_USER=$DB_USERNAME"
    healthcheck:
      # 健康检查配置(调用 healthcheck.js)
      test: [ "CMD", "node", "/usr/src/api/healthcheck.js" ]
      interval: "1m"  # 每 1 分钟检查一次
      timeout: "10s"  # 超时时间 10 秒
      retries: "5"    # 失败 5 次后标记服务异常
      start_period: "30s"  # 服务启动 30 秒后再开始检查
    restart: "unless-stopped"
    volumes:
      - "./settings.json:/usr/src/api/config/settings.json"  # API 自定义配置(可选,默认无需修改)
      - "./healthcheck.js:/usr/src/api/healthcheck.js"  # 健康检查脚本挂载

  # 3. Caddy 反向代理服务(自动 HTTPS)
  reverse-proxy:
    # Caddy 命令:将域名请求转发到 API 服务(api:8080)
    image: "caddy:2.3.0-alpine"  # 固定 Caddy 版本,确保稳定性
    container_name: "xbs-reverse-proxy"
    depends_on:
      - "api"  # 依赖 API 服务启动后再启动反向代理
    #0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 2019/tcp
    command: "caddy reverse-proxy --from $API_HOSTNAME --to api:8080"
    ports:
      - "443:443"  # HTTPS 端口映射(主机 443 → 容器 443)
      - "80:80"    # HTTP 端口映射(用于证书申请,不可删除)
    restart: "unless-stopped"
    volumes:
      - "xbs-caddy-config:/config"  # Caddy 配置持久化(含证书)
      - "xbs-caddy-data:/data"      # Caddy 数据持久化(含证书缓存)

# 定义 Docker 卷(自动创建,无需手动管理)
volumes:
  xbs-caddy-config:  # Caddy 配置与证书
  xbs-caddy-data:    # Caddy 运行数据
  xbs-db-backups:    # MongoDB 备份
  xbs-db-data:       # MongoDB 核心数据(最重要,不可删除)

**关键配置说明**:
*   **服务依赖**:`api` 服务依赖于 `db`,`reverse-proxy` 服务依赖于 `api`,Docker Compose 会按此顺序启动服务。
*   **数据持久化**:所有 `volumes` 确保了数据库文件、备份以及 Caddy 的配置和 SSL 证书在容器重启后不会丢失。
*   **健康检查**:`api` 服务配置了健康检查,有助于 Docker 监控服务状态。
*   **反向代理**:Caddy 服务器简化了配置,**自动处理 SSL 证书的申请和续期**,无需手动配置。

3.1编写 Dockerfile(API 服务构建脚本) 作用:自定义构建 xBrowserSync API 服务镜像(用户配置中 API 用现成镜像,此文件用于进阶自定义,如修改依赖版本)。 赖版本)。

FROM node:14.16.0-alpine

# 设置 API 版本(与 docker-compose.yml 中 API 镜像版本一致) # Set environment variables
ENV XBROWSERSYNC_API_VERSION 1.1.13

WORKDIR /usr/src/api

# 下载并解压 API 源码 # Download release and unpack
RUN wget -q -O release.tar.gz https://github.com/xBrowserSync/api/archive/v$XBROWSERSYNC_API_VERSION.tar.gz \
    && tar -C . -xzf release.tar.gz \
    && rm release.tar.gz \
    && mv api-$XBROWSERSYNC_API_VERSION/* . \
    && rm -rf api-$XBROWSERSYNC_API_VERSION/

# 安装生产依赖 # Install dependencies
RUN npm install --only=production

# 暴露 API 服务端口(与容器内端口一致)# Expose port and start api
EXPOSE 8080

# 启动 API 服务
CMD [ "node", "dist/api.js"]

4.(可选) 自定义配置 如果需要更精细地控制 API 行为,可以创建 settings.jsonhealthcheck.js 文件并挂载到 api 容器中。基本的健康检查文件 healthcheck.js 可以参考官方仓库的示例。对于绝大多数部署,默认配置已足够。


在上面docker-compose.yml文件定义了三个配置文件,在这里必须创建这些文件以方便服务能够正常的启动。

① 创建 mongoconfig.js(MongoDB 初始化脚本)

作用:创建 .env 中配置的数据库用户,并赋予读写权限(确保 API 能正常连接数据库)。

// 内容如下,无需修改(变量会自动匹配 .env 配置)
db.auth(process.env.MONGO_INITDB_ROOT_USERNAME, process.env.MONGO_INITDB_ROOT_PASSWORD);

// 切换到目标数据库(与 .env 中 DB_NAME 一致)
const xbsDb = db.getSiblingDB(process.env.XBS_DB_NAME);

// 创建 API 访问用户(与 .env 中 DB_USERNAME/DB_PASSWORD 一致)
xbsDb.createUser({
  user: process.env.XBS_DB_USERNAME,
  pwd: process.env.XBS_DB_PASSWORD,
  roles: [{ role: "readWrite", db: process.env.XBS_DB_NAME }]
});

// 验证用户创建成功
print("MongoDB 用户初始化完成!");
#原件备注上
db.newsynclogs.createIndex( { "expiresAt": 1 }, { expireAfterSeconds: 0 } );
db.newsynclogs.createIndex( { "ipAddress": 1 } );
db.bookmarks.createIndex( { "lastAccessed": 1 }, { expireAfterSeconds: 21*86400 } );
② 创建 healthcheck.js(API 健康检查脚本)

作用:Caddy 反向代理依赖此脚本判断 API 服务是否正常,避免转发到异常服务。

// 内容如下,无需修改
const http = require('http');

const options = {
  host: 'localhost',
  port: 8080,
  path: '/health',
  timeout: 10000
};

const request = http.request(options, (res) => {
  console.log(`健康检查状态码:${res.statusCode}`);
  process.exit(res.statusCode === 200 ? 0 : 1);
});

request.on('error', (err) => {
  console.log(`健康检查失败:${err.message}`);
  process.exit(1);
});

request.end();
#原件备注上

const http = require('http');

const response = http.request(
  {
    host: '0.0.0.0',
    method: 'GET',
    path: '/info',
    port: 8080,
    timeout: 2000,
  },
  (res) => {
    let body = '';
    res.setEncoding('utf8');

    res.on('data', (chunk) => {
      body += chunk;
    });

    res.on('end', () => {
      if (res.statusCode === 200) {
        const payload = JSON.parse(body);
        switch (payload.status) {
          case 1:
          case 3:
            console.log('HEALTHCHECK: online');
            process.exit(0);
          case 2:
          default:
            console.log('HEALTHCHECK: offline');
        }
      } else {
        console.log('HEALTHCHECK: offline');
      }
      process.exit(1);
    });
  }
);

response.on('error', function (err) {
  console.log('HEALTHCHECK: offline');
  process.exit(1);
});

response.end();

③ 创建 settings.json(设置)

作用:?

#原件备注上

{
  "db": {
    "host": "db"
  }
}

关键配置说明(新手必知)

配置项 作用与注意事项
DB_PASSWORD(.env) 必须修改!默认 adminadmin- 安全性极低,建议改为强密码(如 XBS@DB2024!),否则数据库可能被未授权访问。
mongoconfig.js 挂载 不可删除!缺少此文件会导致 MongoDB 未创建 API 访问用户,API 服务无法连接数据库。
Caddy 命令 --from $API_HOSTNAME 必须与 .env 中 API_HOSTNAME 一致,否则无法正确申请 HTTPS 证书。
depends_on 依赖 确保服务启动顺序:db → api → reverse-proxy,避免 “依赖服务未就绪” 错误。

🚀 启动与验证

1.启动服务 在包含 docker-compose.yml.env 文件的目录下,执行以下命令来后台启动所有服务:

    docker-compose up -d

此命令会拉取镜像、创建网络和卷,并启动所有容器。

2.检查服务状态 使用以下命令查看所有容器是否正常运行:

    docker-compose ps

如果所有服务的 State 栏均显示为 Up,则表明容器已成功启动。特别是 api 服务,在首次启动时可能需要一些时间进行初始化。

3.查看日志 如果某个服务启动异常,可以通过日志来排查问题:

    docker-compose logs db    # 查看数据库日志
    docker-compose logs api   # 查看 API 服务日志
    docker-compose logs reverse-proxy  # 查看反向代理日志
    # 或者查看所有服务的日志
    docker-compose logs

成功启动的日志中,Caddy 通常会显示类似 "successfully acquired certificate" 的信息,表示 SSL 证书申请成功。

4.验证服务 在浏览器中访问 https://你的域名 (例如 https://xbrowsersync.clxr-25.top)。如果看到 xBrowserSync API 的欢迎信息(可能是一个简单的 JSON 响应或提示页面),说明服务已成功部署并配置了 HTTPS。


(2)验证核心功能是否正常

① 验证 API 健康状态

执行以下命令,若返回 {"status":"ok"},说明 API 服务正常:

# 替换为你的域名(API_HOSTNAME)
curl https://xbrowsersync.clxr-25.top/health
② 验证 Caddy HTTPS 证书

打开浏览器,输入 https://你的域名(如 https://xbrowsersync.clxr-25.top):

  • 地址栏显示 “小绿锁”,说明 HTTPS 证书生效;
  • 页面显示 {"error":"Not found"}(正常,API 仅处理书签同步接口,根路径无页面)。
③ 验证 MongoDB 连接

进入 MongoDB 容器,确认用户已创建成功:

# 进入 MongoDB 容器
docker exec -it xbs-db mongo -u $DB_USERNAME -p $DB_PASSWORD --authenticationDatabase $DB_NAME

# 执行后若显示 "MongoDB shell version v4.4.4",说明连接成功
# 输入 exit 退出容器

🔧 基础配置与使用

  1. 配置浏览器扩展

    • 在 Chrome Web Store 或 Firefox Add-ons 商店中安装 xBrowserSync 扩展。
    • 安装后,点击扩展图标,首次使用时会提示你设置同步服务器。
    • 关键步骤:在设置中,将 "Sync URL" 修改为你部署的服务地址,即 https://你的域名 (例如 https://xbrowsersync.clxr-25.top)。
    • 之后,你可以创建一个新的同步网络(会生成一个 Sync ID),或者使用已有的 Sync ID 恢复书签。
  2. 管理同步网络

    • 请务必妥善保管你的 Sync ID,这是你恢复书签的唯一凭证。
    • 在你的所有设备上安装 xBrowserSync 扩展,并配置相同的 Sync URLSync ID,即可实现书签的跨设备同步。

🔧 基础配置与使用2

xBrowserSync 需通过 浏览器插件 连接私有服务,实现书签同步,步骤如下:

1. 安装 xBrowserSync 浏览器插件

根据你的浏览器选择安装方式:

  • Chrome/Edge:在 Chrome 网上应用店搜索 “xBrowserSync”;
  • Firefox:在 Firefox 附加组件商店搜索 “xBrowserSync”;
  • Safari:在 App Store 下载 “xBrowserSync” 扩展。

2. 配置插件连接私有服务

  1. 打开 xBrowserSync 插件,点击 “开始使用”;
  2. 选择 “自定义服务”(默认是官方服务,需切换到私有服务);
  3. 输入私有服务地址:https://你的域名(如 https://xbrowsersync.clxr-25.top),点击 “验证”;
  4. 验证通过后,点击 “创建新同步”,生成 同步密钥(务必保存!用于在其他浏览器恢复同步);
  5. 点击 “开始同步”,插件会自动上传当前浏览器的书签到私有服务器。

3. 多浏览器同步书签

在另一台浏览器(如 Firefox)重复上述步骤:

  1. 安装插件,选择 “自定义服务”,输入相同域名;
  2. 点击 “恢复同步”,输入之前保存的 同步密钥
  3. 插件会自动下载服务器上的书签,实现多浏览器书签统一。

4. 查看同步状态与管理

在插件界面可查看:

  • 同步进度(上传 / 下载的书签数量);
  • 同步历史(最近同步时间、设备信息);
  • 清除同步数据(如需重置,可删除服务器上的书签)。

🔄 维护与管理

1.更新服务 当有新版本发布时,可以按以下步骤更新:

    # 进入项目目录
    cd /path/to/your/xBrowserSync
    # 拉取最新的镜像 (注意:版本号已在 docker-compose.yml 中固定,如需更新新版本,请先修改 yml 文件中的镜像标签)
    docker-compose pull
    # 或者直接重新构建并启动
    docker-compose up -d
    # 清理无用的旧镜像
    docker image prune

注意:更新前,建议确保你的数据卷(Volumes)有有效的备份。

2.数据备份 * xBrowserSync 的所有书签数据都存储在 MongoDB 数据库中,而数据库数据通过 Docker 卷 xbs-db-data 持久化。 * 定期备份 Docker 卷至关重要。你可以使用 docker volume inspect xbs-db-data 查找卷在宿主机上的实际路径并进行备份,或者使用 docker exec 执行 mongodump 命令来导出数据库。 * 同样,备份 xbs-db-backups 卷也是一个好习惯。

3.服务卸载 如需卸载 xBrowserSync,在项目目录下执行:

    docker-compose down

此命令会停止并移除所有容器和网络,但会保留数据卷,以便日后恢复。 如果希望彻底删除所有数据(包括数据库和配置),在上述命令后加上 -v 参数:

    docker-compose down -v

警告:此操作不可逆,请确保你已备份重要数据。

🐛 常见问题排查

问题现象 可能原因与解决方案
容器启动失败 1. 检查 docker-compose.yml.env 文件语法是否正确,特别是缩进和引号。
2. 执行 docker-compose logs [服务名] 查看具体错误日志。
无法通过域名访问 (https://你的域名) 1. 确认域名解析已正确指向服务器 IP(可使用 ping yourdomain.com 检查)。
2. 检查服务器防火墙/安全组是否开放了 80443 端口。
3. 查看 reverse-proxy 容器的日志,确认 SSL 证书是否申请成功。
浏览器扩展无法连接服务器 1. 在扩展设置中检查 "Sync URL" 是否完全正确,确保是 https:// 开头且没有多余的斜杠或空格。
2. 确认 apireverse-proxy 容器运行正常。
3. 检查 Caddy 容器的日志,看是否有错误信息。
健康检查失败 1. api 服务可能仍在启动初始化中,请等待片刻。
2. 检查 api 容器与 db 容器的网络连接是否正常,确认数据库凭据是否正确。
书签同步失败 1. 在所有设备上确认使用的是相同的 Sync IDSync URL
2. 检查网络连接是否稳定。

希望这篇教程能帮助你顺利搭建属于自己的 xBrowserSync 书签同步服务,享受安全、跨设备的书签同步体验!如果在部署和使用过程中遇到更多问题,xBrowserSync 的官方 GitHub 仓库是寻求帮助和查阅文档的好去处。


🐛 常见问题排查2

1. Caddy 证书申请失败(日志显示 “acme: authorization failed”)

  • 原因 1:域名未解析到服务器 IP,或解析未生效。解决:在服务器执行 ping $API_HOSTNAME,确认返回服务器 IP;若未生效,等待 DNS 解析刷新(通常 10-30 分钟)。

  • 原因 2:80 端口被占用(Caddy 需 80 端口验证域名所有权)。解决:停止占用 80 端口的服务(如 Nginx):sudo fuser -k 80/tcp,重启 Caddy:docker compose restart xbs-reverse-proxy

  • 原因 3:服务器在国内,Let’s Encrypt 证书申请被屏蔽。解决:为 Caddy 配置国内 CA 证书(如阿里云 CA),或使用代理服务器。

2. API 服务无法连接 MongoDB(日志显示 “Authentication failed”)

  • 原因 1.env 中 DB_PASSWORD 与 mongoconfig.js 初始化的密码不一致。解决:确保 .env 中 DB_PASSWORD 与 mongoconfig.js 中 process.env.XBS_DB_PASSWORD 一致,重建 MongoDB 数据卷:
    # 停止服务并删除旧数据卷(会丢失书签数据,需先备份)
    docker compose down -v
    # 重新启动服务,初始化新数据卷
    docker compose up -d
  • 原因 2:MongoDB 初始化脚本未执行(mongoconfig.js 挂载路径错误)。解决:确认 docker-compose.yml 中 mongoconfig.js 挂载路径为 ./mongoconfig.js:/docker-entrypoint-initdb.d/mongoconfig.js,路径错误需修正后重启。

3. 浏览器插件无法连接私有服务(提示 “服务不可用”)

  • 原因 1:HTTPS 证书无效(如自签名证书,浏览器不信任)。解决:确保 Caddy 成功申请 Let’s Encrypt 证书(地址栏显示小绿锁),避免使用自签名证书。

  • 原因 2:服务地址输入错误(如多写 “/” 或端口)。解决:插件中输入的地址应为 https://你的域名(无端口,Caddy 自动处理 443 端口)。

4. 同步书签时提示 “空间不足”

  • 原因:xBrowserSync API 默认限制书签存储大小(默认 10MB)。

    解决:修改 API 配置文件 settings.json,增大存储限制:

    {
      "maxBookmarkSize": 52428800  // 改为 50MB(单位:字节,50*1024*1024=52428800)
    }

重启 API 服务:docker compose restart xbs-api

通过以上步骤,新手可成功部署 xBrowserSync 私有书签同步服务,实现跨浏览器书签统一管理。该服务适合注重数据隐私的个人用户,后续可根据需求扩展存储容量、配置备份脚本等,具体进阶功能可参考 xBrowserSync 官方文档