需要一套开发者常用工具的自托管方案。IT-Tools这个项目聚合了JSON格式化、编码转换、UUID生成、加解密等200+工具,适合内网部署,避免频繁访问外网工具站。
环境准备
– 服务器:雨云2C4G实例,CentOS 7.9,每月59元那档,跑这个服务绰绰有余
– Docker + Docker Compose(版本不低于20.10)
– 域名(可选,非必须,IP直接访问也行)
部署步骤
1. 安装Docker
curl -fsSL https://get.docker.com | bash
systemctl enable docker && systemctl start docker
2. 创建项目目录
mkdir -p /opt/it-tools && cd /opt/it-tools
3. 编写docker-compose.yml
version: '3.8'
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
ports:
- "8080:80"
restart: unless-stopped
这里映射宿主机8080端口到容器80端口。如果8080被占用,换一个,比如8081。注意防火墙放行对应端口。
4. 启动容器
docker-compose up -d
等几十秒拉取镜像。看日志确认启动正常:
docker logs -f it-tools
看到类似 `Listening on port 80` 就成功了。
5. 验证
浏览器访问 `http://服务器IP:8080`,首页展示所有工具分类。随便点个Base64编解码,页面响应应该在毫秒级。
反向代理配置(推荐)
直接用IP+端口能跑,但加个域名+HTTPS更稳。用Nginx做代理:
server {
listen 80;
server_name tools.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name tools.yourdomain.com;
ssl_certificate /etc/nginx/ssl/tools.yourdomain.com.pem;
ssl_certificate_key /etc/nginx/ssl/tools.yourdomain.com.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
SSL证书用acme.sh自动续签就行,这里不展开。
数据持久化(可选)
IT-Tools本身不存用户数据,所有操作都在前端完成。但如果你改了默认配置或加了自定义工具,需要挂载volumes。官方镜像默认配置在`/app/data`目录,可以这么做:
version: '3.8'
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
ports:
- "8080:80"
volumes:
- ./data:/app/data
restart: unless-stopped
升级维护
拉取最新镜像,重建容器:
docker-compose pull
docker-compose up -d
IT-Tools更新频繁,基本每月都有新工具加进来。雨云那台机器带宽5M,拉镜像大概1-2分钟,不影响现有服务。
坑点记录
– 镜像默认时区是UTC,日志时间不对。加环境变量解决:`environment: – TZ=Asia/Shanghai`
– 如果服务器内存低于2G,首次启动时容器可能被OOM killer干掉。在docker-compose里限制内存:`mem_limit: 512m`,够用
– 部分工具(比如二维码生成)依赖前端canvas,浏览器版本太低会白屏。让用户升级Chrome/Firefox
实际使用感受
部署后扔给团队用了三个月,最常用的是JSON对比、正则测试、JWT解码。之前大家各自装插件或开网页,现在统一入口,省了沟通成本。雨云这台机器还同时跑了Nginx和Prometheus node_exporter,CPU占用常年不超过15%,内存剩1.8G,完全够用。
如果想让工具支持离线使用,可以把整个镜像导出成tar包,内网其他机器直接docker load导入,连外网都不需要。但更新时得重新拉包,麻烦点。
附:快速排查命令
# 检查容器是否在跑
docker ps | grep it-tools
# 看实时日志
docker logs -f it-tools
# 重启容器
docker restart it-tools
# 进入容器内部
docker exec -it it-tools sh
就这么简单,从拉镜像到跑起来不超过5分钟。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容