折腾记录:Gotab 新标签页私有化部署及扩展魔改指南
每次打开浏览器,面对默认的空白页或者各种臃肿的导航,总觉得差点意思。最近挖到了一个开源项目 Gotab,清爽好看还能自己部署。
我花了一点时间把它部署到了自己的服务器上,顺便把官方浏览器扩展的同步地址也改到了本地,算是彻底实现了数据自由。把部署和“魔改”扩展的过程记录下来,分享给同样喜欢折腾的朋友。
项目指路
- GitHub:https://github.com/dengxiwang/gotab-personal
- 官网:https://www.gotab.cn
- 在线预览:https://test.gotab.cn(体验账号:admin / 123456)
为什么选 Gotab?
先简单说下它的几个核心卖点,这也是我折腾它的原因:
- 颜值在线:自带很多精美的小组件(天气、倒数日、热搜等),看着就舒服。
- 搜索好用:支持多搜索引擎一键切换,还有个“群搜”功能,能一次打开多个搜索结果。
- 书签与排序:能批量导入本地书签;支持常规排序、交换位置,甚至全屏自由拖拽。
- 壁纸自由:标准/简约双模式,静态、动态、纯色、渐变壁纸随便换。
- 多端同步:支持多设备登录,自带“时光机”备份,换电脑也不怕数据丢。
- 资源库:内置了海量网站图标,添加书签时不用到处找 icon。
一、准备工作
部署前,你需要准备以下环境:
| 需求项 | 说明 |
|---|---|
| 服务器 | 一台 VPS、NAS 或任何能跑 Docker 的设备。 |
| MySQL | 必须提前单独安装好 MySQL,并建好一个数据库(比如命名为 gotab)。 |
| Docker | 强烈建议用 Docker 部署,最省事。 |
二、Docker 部署(最省事)
作者提供了官方镜像doxwant/gotab:latest,支持多平台。
方式 1:使用 docker run
docker run -d \
--name gotab-server \
-p 8080:8080 \
-e SERVER_PORT=8080 \
-v $(pwd)/uploads:/app/uploads \
-v $(pwd)/sourceStore:/app/sourceStore \
--mount type=bind,source=$(pwd)/config.toml,target=/app/config.toml \
--restart always \
doxwant/gotab:latest
方式 2:使用 docker-compose
新建一个 docker-compose.yml文件,填入以下内容:
version: "3.8"
services:
gotab-server:
image: doxwant/gotab:latest
container_name: gotab-server
ports:
- "8080:8080"
environment:
- SERVER_PORT=8080
volumes:
- ./uploads:/app/uploads
- ./sourceStore:/app/sourceStore
- type: bind
source: ./config.toml
target: /app/config.toml
restart: always
然后在终端执行 docker-compose up -d 即可。
⚠️ 目录映射避坑指南
为了数据持久化,一定要把下面这三个目录/文件映射出来,否则容器一重启数据就没了:
/app/uploads:你上传的壁纸等文件。/app/sourceStore:资源库的图标文件。/app/config.toml:程序的配置文件(注意:这是单文件映射,不是文件夹)。
三、网页初始化配置
容器跑起来后,首次访问 http://你的服务器IP:8080 会自动跳转到 /install 安装引导页。
按提示操作即可:
- 基本信息:填一下网站标题、Logo 等。
- 数据库配置:填入你提前准备好的 MySQL 地址、端口、账号、密码和数据库名。
- 邮件服务:配置 SMTP。如果不配,只是影响找回密码等邮件通知,不影响核心使用。
搞定后就能正常访问了。管理后台在 /console,或者在页面点击“管理员 - 我的 - 管理端”进入。
四、核心:魔改浏览器扩展实现私有同步
官方插件商店里的 Gotab 扩展,默认是连官方服务器的。既然咱们都自己部署了,肯定得把扩展里的 API 地址改成自己的。
核心思路:浏览器扩展本质就是个前端压缩包,我们只要找到配置文件里的服务器地址改掉,然后本地加载源码就行了。
步骤 1:下载源码并修改配置
去 GitHub 下载项目源码,找到/web 目录,这里面就是浏览器扩展的源码。
打开 /web/siteConfig.js 文件,把server_url 改成你部署的域名或 IP:
// 修改前
globalThis.siteConfig = {
bottomLinks: ``,
title: ``,
server_url: ``,
}
// 修改后
globalThis.siteConfig = {
bottomLinks: ``,
title: ``,
server_url: `http://你的域名或IP:端口`,
}
步骤 2:浏览器加载本地扩展
- 打开 Chrome 或 Edge 的扩展管理页面(地址栏输入
chrome://extensions/)。 - 右上角开启 「开发者模式」。
- 点击 「加载已解压的扩展程序」,选中刚才改好配置的
/web文件夹。
搞定!现在你的浏览器新标签页就会连接到你自己的私有服务器了。
补充说明:
这种本地加载的方式不会自动更新。如果以后官方扩展更新了新功能,你需要重新去 GitHub 拉取最新的 /web目录,再改一次配置重新加载。
最后 折腾完看着自己定制的清爽主页,并且数据全在自己手里,还是挺有成就感的。大家如果在部署过程中遇到问题,可以去 GitHub 提 Issue 或者参考官方文档。祝折腾愉快!
参考链接:
- dengxiwang, gotab-personal GitHub 仓库: https://github.com/dengxiwang/gotab-personal