Dillo 浏览器作为一个经典的轻量级图形化网页浏览器,以其极小的体积和高效性能著称,源代码仅约 600 KB,静态二进制约 980 KB,使用 C/C++ 编写并基于 FLTK GUI 库构建。它支持多平台运行,包括 Linux、BSD、MacOS 和 Windows,支持 HTTP/HTTPS/FTP 等协议,并通过插件扩展如 Gemini、Gopher 等协议。该项目强调降低网页访问门槛、支持老旧设备和慢速连接,同时注重个人隐私与软件效率。
然而,许多开源项目如 Dillo 最初托管在 GitHub 上,虽然便利但存在供应商锁定风险:平台政策变动可能中断访问,数据隐私依赖第三方,且免费服务随时可能收费或限流。对于追求最小化开发的 Dillo 团队,自托管 Git 仓库是理想方案,能实现完全平台独立、避免 vendor lock-in,并持续最小化开发流程。自托管还能自定义权限、集成本地 CI/CD,并降低长期维护成本。
自托管 Git 的核心优势
选择自托管 Git 服务如 Gitea 或 Forgejo(Gitea 的社区 fork),这些工具轻量级、易部署,支持完整 Git 功能包括代码审查、Issue 跟踪、Wiki 和 CI/CD。相比 GitHub,它们资源占用低:Gitea 单实例只需几十 MB 内存,适合 Raspberry Pi 等嵌入式设备,与 Dillo 的“高效”理念高度契合。
证据显示,Dillo 项目已部分转向自托管:其主仓库位于 https://git.dillo-browser.org/dillo/,而 GitHub 仅用于 Issue 跟踪。这证明迁移可行,且能维持开发连续性。自托管避免了 GitHub 的潜在中断,如 2024 年开源项目资金争议中暴露的依赖风险。
迁移前的准备清单
-
备份现有仓库:克隆 Dillo GitHub 仓库(https://github.com/dillo-browser/dillo)。
git clone --mirror https://github.com/dillo-browser/dillo.git dillo-backup.git
cd dillo-backup.git
git bundle create ../dillo-full.bundle --all
这生成完整 bundle 文件,包含所有分支、标签和历史。
-
选择自托管工具:
| 工具 |
优势 |
资源需求 |
推荐场景 |
| Gitea |
功能丰富、API 完整、易迁移 |
CPU: 1核, RAM: 256MB |
团队协作 |
| Forgejo |
纯社区驱动、轻量、安全优先 |
CPU: 1核, RAM: 128MB |
单人/最小化 |
优先 Forgejo,其设计聚焦“轻量软件锻造”,与 Dillo 匹配。
-
服务器环境:
详细迁移步骤
-
安装并初始化 Forgejo/Gitea:
-
推送裸仓库:
-
迁移 Issue/PR/Wiki(关键,避免丢失元数据):
- Forgejo/Gitea 支持内置迁移:Web 界面“新建仓库”→“从 GitHub 迁移”,输入 GitHub clone URL 和 Personal Access Token(repo 权限)。
- 参数:启用“Wiki”、“Issues”、“Pull Requests”、“Milestones”、“Labels”、“Releases”。
- 超时阈值:若仓库大,设
MIGRATE_TIMEOUT=3600 环境变量。
- 脚本自动化(Python + API):
import requests
headers = {'Authorization': 'token YOUR_FORGEJO_TOKEN'}
data = {
'clone_addr': 'https://github.com/dillo-browser/dillo.git',
'uid': 1,
'repo_name': 'dillo',
'private': False,
'wiki': True, 'issues': True, 'pull_requests': True
}
requests.post('http://your-server:3000/api/v1/repos/migrate', json=data, headers=headers)
-
插件与 CI 配置:
-
权限与访问控制:
- 团队:创建组织“Dillo”,协作员读写,维护者合并 PR。
- Webhooks:集成 IRC/Mastodon(Dillo 已用),URL: https://fosstodon.org/@dillo。
- 备份策略:cron 每日
gitea dump -c /data/gitea/conf/app.ini,存 S3 或本地。
风险规避与监控参数
- 风险:迁移中断(网络/ token 失效)→ 分步执行,先代码后元数据;测试环境验证。
- 回滚:保留 GitHub 镜像,DNS TTL 设 300s 快速切换。
- 监控:
| 指标 |
阈值 |
工具 |
| 仓库大小 |
<500MB |
du -sh /data/git |
| 响应时间 |
<200ms |
Prometheus + Grafana |
| 磁盘使用 |
80% 告警 |
df -h |
| Uptime |
99.9% |
Uptime Kuma |
生产阈值:PostgreSQL 连接池 50,缓存 Redis(可选)。
迁移后,Dillo 开发可持续:插件开发者推送 PR,本地构建测试,低资源服务器年成本 <100 元。Dillo 官网已指向自托管 Git,此举强化其“高效独立”哲学。
资料来源:
(正文约 1250 字)