之前写一篇怎么发布插件或者包到私有服务器,《Flutter发布Package(Pub.dev或私有Pub仓库)》,后面也一直没有写写怎么搭建私有Pub.dev服务器。正好上次服务器挂了,重新搭建,这次记录下。挺简单的。
一、首先我们要在Mac上安装MongoDB
1.1 安装MongoDB
安装MongoDB网上一大堆的方法,这里就不展开了。建议安装5.0版本,我是安装的5.0.8版本。Mac上可以:
- 官网下载MongoDB安装包安装;
- 可以通过brew工具安装;
- 可以通过Docker安装;
最推荐的是通过Docker安装MongoDB,以为如果以后要迁移会更加方便点。
但是我的Mac Mini是13.4版本,貌似Docker暂时不支持,安装不了。所以通过官网下载压缩包安装的。解压缩后,将文件夹复制到/usr/local下。
然后就是配置环境变量了。打开.zsh.rc文件加入MongoDB的bin目录路径。
1.2 启动MongoDB
使用命令启动mongodb服务
// --dbpath表示 db的路径
// --logpath 表示log的保存位置
mongod --dbpath /Users/Shared/pub_dev_server/data/db --logpath /Users/Shared/pub_dev_server/data/log/mongodb.log --logappend
然后再另外一个终端窗口输入命令:
连接数据库
mongo
MongoDB这就启动起来了,万事俱备,只欠东风了~
安装参考:mac安装mongoDB详细步骤
二、然后激活启动私有pub.dev服务
2.1 unpub包
在官方pub.dev上我们可以搜索下unpub,它其实是字节开源的一个私有pub.dev服务包。
2.2 启动私有pub.dev
不得不说字节的包真是太方便,两行命令启动自己的私有服务:
pub global activate unpub
unpub --database mongodb://localhost:27017/dart_pub
如图就启动了私有pub.dev服务,这是可以在浏览器上输入http://localhost:4000或者http://ip:4000来打开私有pub.dev网页。
如果还有一些想要去掉鉴权等操作可以看看这篇文章基于unpub的Flutter私有组件库搭建
三、开机启动pub.dev
前面我们是用命令先启动了mongoDB,然后再通过命令启动了私有pub.dev服务。那如果下次服务器重启之后,pub.dev就不能直接自动启动了,还要手动启动,比较麻烦。这里就来设置下开机自启动私有pub.dev服务。
3.1 设置MongoDB开机启动
- 首先创建个mongodb.plist文件
sudo vim /Library/LaunchDaemons/mongodb.plist
- 根据自己的实际情况设置MongoDB的一些配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>mongodb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mongodb/bin/mongod</string>
<string>run</string>
<string>--dbpath</string>
<string>/Users/Shared/pub_dev_server/data/db</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local/mongodb</string>
<key>StandardErrorPath</key>
<string>/usr/local/mongodb/log/error.log</string>
<key>StandardOutPath</key>
<string>/usr/local/mongodb/log/output.log</string>
<key>HardResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>64000</integer>
</dict>
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>64000</integer>
</dict>
</dict>
</plist>
- 将mongodb.plist文件载入到Launchd
sudo launchctl load /Library/LaunchDaemons/mongodb.plist
以上设置完成后,就设置了MongoDB的开机启动。
在通用 > 登录项中已经看到了mongodb
3.2 设置私有pub.dev开机启动
这个和前面设置Jenkins开机启动一致:
- 新建个pubdev.sh文件,将启动命令填入;
- 将pubdev.sh设置打开方式为终端;
-
最后在设置 > 通用 > 登录项中将pubdev.sh文件加入;
以上两项都设置后,重启也能自动启动私有pub.dev服务了。一级棒O(∩_∩)O哈哈~