用MiniPC搭建个人服务器
最近突然对小型电子产品产生的兴趣,经过一段时间调查,最终选择从迷你PC下手。因为类似树莓派的产品,还是有一定的上手门槛的。开发板类的产品也更偏硬件一点。而迷你PC除了小一点,其实就是一台电脑,我之前也有一些组装经验,还可以学习一下Linux和运维知识,技能点上也更契合我的职业。
硬件介绍
硬件规格
- CPU:英特尔13代处理器N100,4核4线程,最高频率3.4GHz,配备24个EU的核显,频率是750MHz,TDP 6W。
- 内存:单通道32G 3200mhz。
- 硬盘:1TB M2 2280 PCIE 3.0 SSD,还有一个M2 2242 SATA接口没有安装硬盘。
- 其他:支持WIFI6和蓝牙5.2
硬件展示
系统配置
Ubuntu安装
Ubuntu桌面版镜像下载:https://ubuntu.com/download/desktop
启动盘制作软件:https://www.balena.io/etcher
打开balenaEtcher后选择U盘和下载的iso文件即可,等待烧录完成。
后面安装Ubuntu网上有很多资料,就不仔细展示了。
SSH
在配置SSH时,一定要记得关闭防火墙,或者开放22端口。因为我这台机器还没有内网穿透,无法从外网访问,所以我关闭了防火墙,方便后续其他软件的安装。
接着可以下载连接SSH的工具,因为我是Windows系统,我选择的是Xshell。Xshell其实是有提供免费版的,访问这个网站,填入邮箱地址和姓名后,Xshell官方会把免费版的下载链接发送至你的邮箱。最好勾选两者,有时候也会用上Xftp。
软件安装
NetData - 硬件资源监控
页面非常炫酷的硬件资源监控工具,只需要一个命令即可安装启动。
bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)
随后在浏览器上访问:your_ip:19999 即可。
页面右手边就是可以监控的系统指标,还可以选择时间点,回看之前的系统资源使用情况。
Docker - 虚拟机容器
安装完Docker后,它是默认随系统自启动的,所以后面在启动Docker镜像时,最好也配上自动重启,这样主机重启后也不需要再次启动镜像了。在docker run命令后加上--restart=always
参数即可。
Portainer - Docker管理工具
参考文章:https://blog.csdn.net/qq_42411805/article/details/124506368
安装完后,浏览器访问:your_ip:9000,第一次访问需要注册、登录、配置。docker管理方式选择local就行,其他的保持默认就行。
Uptime Kuma - 服务监控工具
执行命令:docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
用浏览器访问:your_ip:3001。第一次访问也需要注册、登录。进入到主页后点击左上角【添加监控项】,配置一下服务的接口就行,它会定时去访问接口以确保服务正常。
本文启动的一些服务都很简单,没有什么鉴权机制,如果你的服务接口更复杂,里面的HTTP选项基本都能满足你的要求。
Flame - 应用和书签导航管理工具
执行如下命令
docker pull pawelmalak/flame
docker run -d --restart=always -p 5005:5005 -v /path/to/data:/app/data -e PASSWORD=123456 pawelmalak/flame
浏览器访问:your_ip:5005。第一次进入需要登录密码,密码就是上面命令中的123456。进到主页面选择添加应用,填入你的应用地址,选择图标即可。这个服务的主页就可以当一个导航页,把你的服务都添加进来,后续通过它进去就行了。
青龙面板 - 薅羊毛工具
青龙面板是一个基于Docker的定时任务执行系统,可以定时运行一些脚本。常用来薅羊毛,比如JD定时签到领取京豆。
这个工具安装过程相较于上面稍微有点复杂,不过上面这个教程写的非常详细,仔细看看,问题应该不大。
最后
效果展示
- 硬件资源监控
- 服务监控
- Docker管理
- 青龙面板
- Flame导航页
- 主机暂时就和WiFi搁一起吧
TODO
首先得明确一下需求,我暂时没有路由和NAS的需求。这台机器的需求主要是完全替代掉云服务器,毕竟差不多配置的云服务器价格也不便宜。目前计划的TODO如下:
- 内网穿透,非局域网也能访问。
- 使用Nginx代理服务,搞一个登录验证。
- 部署个人网站。
- 弄一套CICD系统,方便自己的代码快速编译、部署。不过为了数据安全起见,代码还是放在Github上,其余模块部署在MiniPC上。