# 家庭内网服务分享
## 目录
[部署原则](#principles)
[Sun-Panel](#sunpanel)
[虚拟化平台](#virtualization)
[NAS 存储系统](#nas)
[Wireguard](#wireguard)
[Adguard Home](#adguardhome)
[Nginx Proxy Manager](#npm)
[Uptime Kuma](#uptimekuma)
[Slink](#slink)
[Code Serfer](#codeserfer)
[Portainer](#portainer)
[Docker Copilot](#dockercopilot)
[GitLab](#gitLab)
[Gitea](#gitea)
[Calibre-Web](#calibreweb)
[Navidrome](#navidrome)
[Emby](#emby)
[Flatnotes](#flatnotes)
[Memos](#memos)
[Wiki.js](#wikijs)
[Excalidraw](#excalidraw)
[DrawIo](#drawio)
[Mind-Map](#mindmap)
[Stash](#stash)
[网站推荐](#recommend)
[结尾](#endding)
## 部署原则 <a name="principles"></a>
个人认为家庭内网服务应该尽量遵守以下 2 个原则:
+ 开源
+ Docker 化部署
开源意味着所有人都能查看其源代码,至少在一定程度上能够尽可能的避免安全相关的问题。同时开源往往也意味着免费使用。
Docker 化部署屏蔽了硬件、环境以及其它依赖相关的各种问题,不用和特定的平台相互绑定,使得服务的后续迁移也非常便捷。
## Sun-Panel <a name="sunpanel"></a>
Sun-Panel 是一个漂亮的服务器、NAS 导航面板、Homepage 、浏览器首页。
```curl
Github: https://github.com/hslr-s/sun-panel
```
部署效果如下:
![sunpanel]( https://img.binhome.cn/home_service/sunpanel.png)
类似比较出名的个人导航页还有 Heimdall 。( https://github.com/linuxserfer/Heimdall)
Sun-Panel 支持局域网和互联网 2 种模式,UI 更加简洁美观,个人更加倾向于使用 Sun-Panel 。
## 虚拟化平台 <a name="virtualization"></a>
All in one 的玩家对虚拟化平台应该都非常熟悉。现在主流的虚拟化平台有 VMware ESXi 、PVE 、Unraid 、Hyper-V 等等。
个人使用过一段时间的 ESXi ,体验还是非常不错的。
但是 ESXi 存在**对新硬件的支持不太友好**的问题。个人就遇到过最新版本的 ESXi 无法原生驱动螃蟹网卡的问题。加上 ESXi 是需要付费使用的,所以最后放弃了 ESXi 。相对的,PVE 对新的硬件支持程度非常好。
遵从开源免费的原则,毫无疑问应该使用 PVE 。
另一方面,虚拟机的开销往往比较大,PVE 的 CT 容器是虚拟机的轻量级替代品。
没有特殊情况,**推荐使用 CT 容器,而不是虚拟机。**
```curl
PVE: https://pve.proxmox.com/wiki/Main_Page
```
部署效果如下:
![PVE]( https://img.binhome.cn/home_service/pve.png)
## NAS 存储系统 <a name="nas"></a>
个人长期使用的 NAS 存储是极空间 Z4 Pro 以及一台自己组装的黑群晖。
单纯的个人体验方面,极空间虽然存在一些无关紧要的小毛病,但是综合体验是大于群晖的,特别是手机应用方面。
上述只是个人体验方面的观点,为了避免引战,这里不再展开叙述。
![极空间]( https://img.binhome.cn/home_service/zspace.png)
黑群晖是自己组装的,机箱使用的是乔思伯 N2 ,PCIE 扩展了万兆网卡。
慢慢开始以极空间作为主力 NAS ,黑群晖只是当做备份存储。
![黑群晖]( https://img.binhome.cn/home_service/synology.png)
## Wireguard <a name="wireguard"></a>
Wireguard 是 Linus Torvalds 为数不多夸过的技术,称赞它是:it's a work of art 。
Wireguard 也是我个人使用体验过的最好的内网穿透软件。
```curl
Github: https://github.com/wg-easy/wg-easy
```
**后面会专门写一篇文章来介绍《在外访问家庭内网服务的最佳姿势》。**
部署使用的是 Docker 部署的方式:部署效果如下:
![Wireguard]( https://img.binhome.cn/home_service/wireguard.png)
## AdGuard Home <a name="adguardhome"></a>
AdGuard Home 是一款非常出色的 DNS 服务器,支持广告过滤和拦截,可以和软路由中的 MosDNS 等 DNS 软件搭配使用。
```curl
Github: https://github.com/AdguardTeam/AdGuardHome
```
部署效果如下:
![AdGuard Home]( https://img.binhome.cn/home_service/adguard_home.png)
同样出色的 DNS 服务还有 Pi-hole ( https://github.com/pi-hole/pi-hole)。
之所以不选择 Pi-Hole ,是因为 Pi-Hole 的 DNS 重写不支持泛域名,而 AdGuard Home 支持。
![DNS Rewrite]( https://img.binhome.cn/home_service/dns_rewrite.png)
## Nginx Proxy Manager <a name="npm"></a>
Nginx Proxy Manager 是一款极其简单易用的 Nginx 反向代理软件。
```curl
Github: https://github.com/NginxProxyManager/nginx-proxy-manager
```
NPM 需要绑定 80 和 443 端口,推荐基于 PVE 的 CT 容器来部署。
部署效果如下:
![NPM]( https://img.binhome.cn/home_service/npm.png)
除了反向代理之外,NPM 还支持泛域名 SSL 证书的申请,简单易操作。
![NPM SSL]( https://img.binhome.cn/home_service/npm_ssl.png)
## Uptime Kuma <a name="uptimekuma"></a>
Uptime Kuma 是一款简单易用的服务监控软件,界面非常的简洁,易上手。
```
Github: https://github.com/louislam/uptime-kuma
```
部署效果如下:
![Uptime Kuma]( https://img.binhome.cn/home_service/uptime_kuma.png)
**此外当服务出现异常的时候,Uptime Kuma 还支持微信消息提醒。**
下面是升级 Wireguard 镜像的过程中,Uptime Kuma 检测到家庭内网 wireguard 服务不可用,自动发出的微信报警提醒:
![Uptime Kuma Alter]( https://img.binhome.cn/home_service/uptime_kuma_alter.jpg)
## Slink <a name="slink"></a>
Slink 是一款自建图床软件。
```curl
Github: https://github.com/andrii-kryvoviaz/slink
```
部署效果如下:
![Slink]( https://img.binhome.cn/home_service/slink.png)
同样出色的自建图床软件还有 Picsur 。( https://github.com/CaramelFur/Picsur)
但是 Picsur 的 Docker 部署依赖较多,所以最后还是选择了 Slink 。
大家可以自行尝试部署体验。
## Code Serfer <a name="codeserfer"></a>
VS Code in the browser 。程序员对 VS Code 应该不会陌生。
```
Github: https://github.com/coder/code-serfer
```
平常用来刷一刷 LeetCode 挺好的。
部署效果如下:
![Code Serfer]( https://img.binhome.cn/home_service/code_serfer.png)
## Portainer <a name="portainer"></a>
Portainer 是一款 Docker 管理 UI ,比较简单和易用。
不过个人还是倾向于命令行的方式来管理 Docker 。
```curl
Github: https://github.com/portainer/portainer
```
部署效果如下:
![Portainer]( https://img.binhome.cn/home_service/portainer.png)
## Docker Copilot <a name="dockercopilot"></a>
Docker Copilot 可以用来一键升级 Docker 镜像和容器。
```curl
Github: https://github.com/onlyLTY/dockerCopilot
```
部署效果如下:
![Docker Copilot]( https://img.binhome.cn/home_service/docker_copilot.png)
同样功能的服务还有 watchtower 。( https://github.com/containrrr/watchtower )
由于极空间暂时没有开放 ssh (听说下一个大版本会开放),导致 Docker 相关的一些操作权限有限。
所以还是使用的上面 Docker Copilot 专门针对极空间的 Docker 镜像版本。
## GitLab <a name="gitLab"></a>
GitLab 是一款 Git 自托管一体化软件开发服务,社区版本 GitLab-CE 可以免费部署。
```
Website: https://about.gitlab.com/install/#debian
```
个人主要用来托管刷 LeetCode 的代码。
推荐基于 PVE 的 CT 容器来安装,这样编程语言的各种环境都可以自己配置。
部署效果如下:
![GitLab]( https://img.binhome.cn/home_service/gitlab.png)
## Gitea <a name="gitea"></a>
轻量级的 Git 自托管一体化软件开发服务。基于 Go 语言开发,内存占用明显比 GitLab 少,速度也非常快。
```
Github: https://github.com/go-gitea/gitea
```
由于个人习惯问题,代码托管暂时使用的是 GitLab ,后续可能会迁移到 Gitea 。
部署效果如下:
![gitea]( https://img.binhome.cn/home_service/gitea.png)
## Calibre-Web <a name="calibreweb"></a>
Calibre-Web 是一款知名的电子书籍管理软件,支持主流的电子书格式,同时可以非常方便的在线阅读。
比较好的地方在于支持手动刮削调整书籍封面,支持大文件 PDF 的在线阅读。
```curl
Github: https://github.com/janeczku/calibre-web
```
部署效果如下:
![Calibre-Web]( https://img.binhome.cn/home_service/calibre_web.png)
## Navidrome <a name="navidrome"></a>
Navidrome 是一款非常简洁好用音乐播放服务器。
```curl
Github: https://github.com/navidrome/navidrome
```
部署效果如下:
![Navidrome]( https://img.binhome.cn/home_service/navidrome.png)
虽然极空间 NAS 自带极音乐,体验过一段时间,感觉非常不错,但是手机和电脑上没有单独的原生 APP 。
刚好 Navidrome + 音流可以完美的解决。
电脑和手机客户端推荐使用音流。( https://github.com/gitbobobo/StreamMusic )
Mac 安装效果如下:
![StreamMusic]( https://img.binhome.cn/home_service/streammusic.png)
## Emby <a name="emby"></a>
Emby 、Jellyfin 、Plex 都是非常流行的个人媒体影音服务器。都有完善的各平台客户端,体验都非常不错。
```curl
Emby: https://github.com/MediaBrowser/Emby
Jellyfin: https://github.com/jellyfin/jellyfin
Plex: https://github.com/plexinc/pms-docker
```
部署效果如下:
![Emby]( https://img.binhome.cn/home_service/emby.png)
自从买了 Apple TV 和极空间之后,由于极空间自带的极影视,在 Apple TV 上有单独的原生客户端,整体的体验还算不错,所以后续就很少再折腾影音服务器了。
## Flatnotes <a name="flatnotes"></a>
笔记类的应用非常多,Flatnotes 是一款体验非常好的在线 markdown 编辑器。
**极其轻量化、支持全局搜索。** 减少了其它不相关的功能,让人更加专注于写作本身。
```curl
Github: https://github.com/dullage/flatnotes
```
个人所有的 markdown 文章都是由它编写。
部署效果如下:
![flatnotes]( https://img.binhome.cn/home_service/flatnotes.png)
## Memos <a name="memos"></a>
Memos 是一款轻量级的碎片化笔记服务。可以轻松快速的捕捉和分享你的伟大想法。
```curl
Github: https://github.com/usememos/memos
```
部署效果如下:
![Memos]( https://img.binhome.cn/home_service/memos.png)
## Wiki.js <a name="wikijs"></a>
Wiki.js 恰如其名,是一款 Wiki 软件。支持 markdown 语法,可以用来当做个人的系统知识库。
```curl
Github: https://github.com/requarks/wiki
```
部署效果如下:
![Wikijs]( https://img.binhome.cn/home_service/wikijs.png)
## Excalidraw <a name="excalidraw"></a>
Excalidraw 是一款非常方便的在线白板绘画服务。
```curl
Github: https://github.com/excalidraw/excalidraw
```
部署效果如下:
![Excalidraw]( https://img.binhome.cn/home_service/excalidraw.png)
## DrawIo <a name="drawIo"></a>
DrawIo 是一款在线流程图绘画服务。收费服务 Process On 的替代品。( https://www.processon.com/)
```
Github: https://github.com/jgraph/docker-drawio
```
个人所有的流程图都是使用 DrawIo 绘画。
部署效果如下:
![DrawIo]( https://img.binhome.cn/home_service/drawio.png)
Mac 和 Windows 上也有对应的客户端软件。( https://github.com/jgraph/drawio-desktop )
## Mind-Map <a name="mindmap"></a>
Mind-Map 是一款非常不错的在线思维导图绘制服务。
```curl
Github: https://github.com/wanglin2/mind-map
```
部署效果如下:
![Mind-Map]( https://img.binhome.cn/home_service/mindmap.png)
## Stash <a name="stash"></a>
An organizer for your porn, written in Go.
```
Github: https://github.com/stashapp/stash
```
Demo image:
![Stash]( https://img.binhome.cn/home_service/stash.png)
## 网站推荐 <a name="recommend"></a>
推荐一个非常好用的 Self-Hosted 的网站。( https://selfh.st )
该网站可以不同的应用分类查询比较流行和常用的开源应用,例如搜索 DNS 相关的应用:
![搜索 DNS]( https://img.binhome.cn/home_service/selfh_app.png)
该网站还贴心的附带了精美的应用图标下载功能,例如搜索 Adguard:
![搜索 Adguard]( https://img.binhome.cn/home_service/selfh_icon.png)
其他 icon 下载网址:
+ https://icons8.com
+ https://www.iconfont.cn
## 结尾 <a name="endding"></a>
**最后都看到这里了,希望大家能够在评论区分享一下自己觉得比较实用或者有趣的自托管项目。**
**后续我会继续分享《在外访问家庭内网服务的最佳姿势》。** |
|