V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dhuzbb
V2EX  ›  宽带症候群

家庭内网服务分享

  •  3
     
  •   dhuzbb · 52 天前 · 3678 次点击
    这是一个创建于 52 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家庭内网服务分享

    目录

    部署原则
    Sun-Panel
    虚拟化平台
    NAS 存储系统
    Wireguard
    Adguard Home
    Nginx Proxy Manager
    Uptime Kuma
    Slink
    Code Server
    Portainer
    Docker Copilot
    GitLab
    Gitea
    Calibre-Web
    Navidrome
    Emby
    Flatnotes
    Memos
    Wiki.js
    Excalidraw
    DrawIo
    Mind-Map
    Stash
    网站推荐
    结尾

    部署原则

    个人认为家庭内网服务应该尽量遵守以下 2 个原则:

    • 开源
    • Docker 化部署

    开源意味着所有人都能查看其源代码,至少在一定程度上能够尽可能的避免安全相关的问题。同时开源往往也意味着免费使用。

    Docker 化部署屏蔽了硬件、环境以及其它依赖相关的各种问题,不用和特定的平台相互绑定,使得服务的后续迁移也非常便捷。

    Sun-Panel

    Sun-Panel 是一个漂亮的服务器、NAS 导航面板、Homepage 、浏览器首页。

    Github: https://github.com/hslr-s/sun-panel
    

    部署效果如下:

    sunpanel

    类似比较出名的个人导航页还有 Heimdall 。( https://github.com/linuxserver/Heimdall)

    Sun-Panel 支持局域网和互联网 2 种模式,UI 更加简洁美观,个人更加倾向于使用 Sun-Panel 。

    虚拟化平台

    All in one 的玩家对虚拟化平台应该都非常熟悉。现在主流的虚拟化平台有 VMware ESXi 、PVE 、Unraid 、Hyper-V 等等。

    个人使用过一段时间的 ESXi ,体验还是非常不错的。

    但是 ESXi 存在对新硬件的支持不太友好的问题。个人就遇到过最新版本的 ESXi 无法原生驱动螃蟹网卡的问题。加上 ESXi 是需要付费使用的,所以最后放弃了 ESXi 。相对的,PVE 对新的硬件支持程度非常好。

    遵从开源免费的原则,毫无疑问应该使用 PVE 。

    另一方面,虚拟机的开销往往比较大,PVE 的 CT 容器是虚拟机的轻量级替代品。

    没有特殊情况,推荐使用 CT 容器,而不是虚拟机。

    PVE: https://pve.proxmox.com/wiki/Main_Page
    

    部署效果如下:

    PVE

    NAS 存储系统

    个人长期使用的 NAS 存储是极空间 Z4 Pro 以及一台自己组装的黑群晖。

    单纯的个人体验方面,极空间虽然存在一些无关紧要的小毛病,但是综合体验是大于群晖的,特别是手机应用方面。

    上述只是个人体验方面的观点,为了避免引战,这里不再展开叙述。

    极空间

    黑群晖是自己组装的,机箱使用的是乔思伯 N2 ,PCIE 扩展了万兆网卡。

    慢慢开始以极空间作为主力 NAS ,黑群晖只是当做备份存储。

    黑群晖

    Wireguard

    Wireguard 是 Linus Torvalds 为数不多夸过的技术,称赞它是:it's a work of art 。

    Wireguard 也是我个人使用体验过的最好的内网穿透软件。

    Github: https://github.com/wg-easy/wg-easy
    

    后面会专门写一篇文章来介绍《在外访问家庭内网服务的最佳姿势》。

    部署使用的是 Docker 部署的方式:部署效果如下:

    Wireguard

    AdGuard Home

    AdGuard Home 是一款非常出色的 DNS 服务器,支持广告过滤和拦截,可以和软路由中的 MosDNS 等 DNS 软件搭配使用。

    Github: https://github.com/AdguardTeam/AdGuardHome
    

    部署效果如下:

    AdGuard Home

    同样出色的 DNS 服务还有 Pi-hole ( https://github.com/pi-hole/pi-hole)。

    之所以不选择 Pi-Hole ,是因为 Pi-Hole 的 DNS 重写不支持泛域名,而 AdGuard Home 支持。

    DNS Rewrite

    Nginx Proxy Manager

    Nginx Proxy Manager 是一款极其简单易用的 Nginx 反向代理软件。

    Github: https://github.com/NginxProxyManager/nginx-proxy-manager
    

    NPM 需要绑定 80 和 443 端口,推荐基于 PVE 的 CT 容器来部署。

    部署效果如下:

    NPM

    除了反向代理之外,NPM 还支持泛域名 SSL 证书的申请,简单易操作。

    NPM SSL

    Uptime Kuma

    Uptime Kuma 是一款简单易用的服务监控软件,界面非常的简洁,易上手。

    Github: https://github.com/louislam/uptime-kuma
    

    部署效果如下:

    Uptime Kuma

    此外当服务出现异常的时候,Uptime Kuma 还支持微信消息提醒。

    下面是升级 Wireguard 镜像的过程中,Uptime Kuma 检测到家庭内网 wireguard 服务不可用,自动发出的微信报警提醒:

    Uptime Kuma Alter

    Slink

    Slink 是一款自建图床软件。

    Github: https://github.com/andrii-kryvoviaz/slink
    

    部署效果如下:

    Slink

    同样出色的自建图床软件还有 Picsur 。( https://github.com/CaramelFur/Picsur)

    但是 Picsur 的 Docker 部署依赖较多,所以最后还是选择了 Slink 。

    大家可以自行尝试部署体验。

    Code Server

    VS Code in the browser 。程序员对 VS Code 应该不会陌生。

    Github: https://github.com/coder/code-server
    

    平常用来刷一刷 LeetCode 挺好的。

    部署效果如下:

    Code Server

    Portainer

    Portainer 是一款 Docker 管理 UI ,比较简单和易用。

    不过个人还是倾向于命令行的方式来管理 Docker 。

    Github: https://github.com/portainer/portainer
    

    部署效果如下:

    Portainer

    Docker Copilot

    Docker Copilot 可以用来一键升级 Docker 镜像和容器。

    Github: https://github.com/onlyLTY/dockerCopilot
    

    部署效果如下:

    Docker Copilot

    同样功能的服务还有 watchtower 。( https://github.com/containrrr/watchtower

    由于极空间暂时没有开放 ssh (听说下一个大版本会开放),导致 Docker 相关的一些操作权限有限。

    所以还是使用的上面 Docker Copilot 专门针对极空间的 Docker 镜像版本。

    GitLab

    GitLab 是一款 Git 自托管一体化软件开发服务,社区版本 GitLab-CE 可以免费部署。

    Website: https://about.gitlab.com/install/#debian
    

    个人主要用来托管刷 LeetCode 的代码。

    推荐基于 PVE 的 CT 容器来安装,这样编程语言的各种环境都可以自己配置。

    部署效果如下:

    GitLab

    Gitea

    轻量级的 Git 自托管一体化软件开发服务。基于 Go 语言开发,内存占用明显比 GitLab 少,速度也非常快。

    Github: https://github.com/go-gitea/gitea
    

    由于个人习惯问题,代码托管暂时使用的是 GitLab ,后续可能会迁移到 Gitea 。

    部署效果如下:

    gitea

    Calibre-Web

    Calibre-Web 是一款知名的电子书籍管理软件,支持主流的电子书格式,同时可以非常方便的在线阅读。

    比较好的地方在于支持手动刮削调整书籍封面,支持大文件 PDF 的在线阅读。

    Github: https://github.com/janeczku/calibre-web
    

    部署效果如下:

    Calibre-Web

    Navidrome

    Navidrome 是一款非常简洁好用音乐播放服务器。

    Github: https://github.com/navidrome/navidrome
    

    部署效果如下:

    Navidrome

    虽然极空间 NAS 自带极音乐,体验过一段时间,感觉非常不错,但是手机和电脑上没有单独的原生 APP 。

    刚好 Navidrome + 音流可以完美的解决。

    电脑和手机客户端推荐使用音流。( https://github.com/gitbobobo/StreamMusic

    Mac 安装效果如下:

    StreamMusic

    Emby

    Emby 、Jellyfin 、Plex 都是非常流行的个人媒体影音服务器。都有完善的各平台客户端,体验都非常不错。

    Emby: https://github.com/MediaBrowser/Emby
    Jellyfin: https://github.com/jellyfin/jellyfin
    Plex: https://github.com/plexinc/pms-docker
    

    部署效果如下:

    Emby

    自从买了 Apple TV 和极空间之后,由于极空间自带的极影视,在 Apple TV 上有单独的原生客户端,整体的体验还算不错,所以后续就很少再折腾影音服务器了。

    Flatnotes

    笔记类的应用非常多,Flatnotes 是一款体验非常好的在线 markdown 编辑器。

    极其轻量化、支持全局搜索。 减少了其它不相关的功能,让人更加专注于写作本身。

    Github: https://github.com/dullage/flatnotes
    

    个人所有的 markdown 文章都是由它编写。

    部署效果如下:

    flatnotes

    Memos

    Memos 是一款轻量级的碎片化笔记服务。可以轻松快速的捕捉和分享你的伟大想法。

    Github: https://github.com/usememos/memos
    

    部署效果如下:

    Memos

    Wiki.js

    Wiki.js 恰如其名,是一款 Wiki 软件。支持 markdown 语法,可以用来当做个人的系统知识库。

    Github: https://github.com/requarks/wiki
    

    部署效果如下:

    Wikijs

    Excalidraw

    Excalidraw 是一款非常方便的在线白板绘画服务。

    Github: https://github.com/excalidraw/excalidraw
    

    部署效果如下:

    Excalidraw

    DrawIo

    DrawIo 是一款在线流程图绘画服务。收费服务 Process On 的替代品。( https://www.processon.com/)

    Github: https://github.com/jgraph/docker-drawio
    

    个人所有的流程图都是使用 DrawIo 绘画。

    部署效果如下:

    DrawIo

    Mac 和 Windows 上也有对应的客户端软件。( https://github.com/jgraph/drawio-desktop

    Mind-Map

    Mind-Map 是一款非常不错的在线思维导图绘制服务。

    Github: https://github.com/wanglin2/mind-map
    

    部署效果如下:

    Mind-Map

    Stash

    An organizer for your porn, written in Go.

    Github: https://github.com/stashapp/stash
    

    Demo image:

    Stash

    网站推荐

    推荐一个非常好用的 Self-Hosted 的网站。( https://selfh.st

    该网站可以不同的应用分类查询比较流行和常用的开源应用,例如搜索 DNS 相关的应用:

    搜索 DNS

    该网站还贴心的附带了精美的应用图标下载功能,例如搜索 Adguard:

    搜索 Adguard

    其他 icon 下载网址:

    结尾

    最后都看到这里了,希望大家能够在评论区分享一下自己觉得比较实用或者有趣的自托管项目。

    后续我会继续分享《在外访问家庭内网服务的最佳姿势》。

    24 条回复    2024-09-26 11:55:41 +08:00
    NxxRngjnbgj
        1
    NxxRngjnbgj  
       52 天前
    基本和我之前一样,我还多个机柜,但那是之前,硬件现在已经全部出二手了,软件用现成的,管他开不开源,另已购入若干鱼竿,开启人生下一阶段😊
    tool2dx
        2
    tool2dx  
       52 天前 via Android
    @NxxRngjnbgj 还是看圈子,只要还在码农圈内,只会拿新键盘,拿不起鱼竿的。。
    dhuzbb
        3
    dhuzbb  
    OP
       52 天前
    @NxxRngjnbgj 有机柜的是真正的大佬。有人享受折腾的乐趣,也有人喜欢悠闲的生活。
    dhuzbb
        4
    dhuzbb  
    OP
       52 天前
    V 站的 markdown 语法不支持页面内部跳转吗?
    ismethre
        5
    ismethre  
       52 天前
    哎 曾经也挺折腾的,现在路由光猫用回最传统的,特殊需求自己的设备装客户端,dns 用运营商的,网络视频开会员,只有音乐 Navidrome 在车机上偶尔用用……哎
    dhuzbb
        6
    dhuzbb  
    OP
       52 天前   ❤️ 1
    @ismethre 如果我猜的没错的话,你应该是有娃的人了吧。可能到了一定阶段的人,精力都花费在其他事情上了,就很少再折腾了,能花钱解决都最简单直接。
    ismethre
        7
    ismethre  
       52 天前
    @dhuzbb 是啊,只有有切实需求再弄了……
    Jhma
        8
    Jhma  
       52 天前
    就稳定性而言,esxi 要稳定很多毕竟商业方案,至于授权,目前 esxi6/7/8/vcenter 都有序列号泄露,PVE 因为可设置的选项实在太多,反而会引起一些故障,还有安装 esxi 最好安装联想 oem 版的,每隔几个月会有更新驱动和安全补丁的 iso ,这是很多人不知道的。还有 WG 是 VPN 方案,并非内网穿透,FRP/tailscale/zerotier 才是内网穿透方案
    dhuzbb
        9
    dhuzbb  
    OP
       52 天前
    @Jhma 你说的我都基本赞同,大部分安装 esxi 的都是随便搜索的一个序列号,不会真正的花钱去购买。esxi 的定位是服务器级别的,如果去官网搜索支持的硬件列表会发现很多都不支持。每次大的版本更新都会去掉一些硬件的支持。安装联想 oem 版确实不知道,没有体验过。PVE 毕竟是开源软件,也是有很多 esxi 比不上的地方。例如 PVE 的轻量级 CT 容器,以及支持硬件的广泛度都是 esxi 无法比的。我以前也是 esxi 的忠实用户,后面才切换到 PVE ,PVE 基于 Debian ,还是比较适合程序员的吧。其实使用 esxi 还是 PVE 都看个人的使用习惯。我觉得不用严格的纠结于 WG 是否是 VPN 还是内网穿透,能够真正的达到想要实现的目的才是最重要的。
    roswellian
        10
    roswellian  
       52 天前
    求稳 ESXi ,求新 PVE 。网络和应用最好分开,All in one 不建议包括网络部分。
    kimwang
        11
    kimwang  
       52 天前 via Android
    你的 docker 服务器是用什么设备?
    硬路由刷机运行 docker 方案如何?

    想用一下的文章提及的 wiki
    LogicDX342
        12
    LogicDX342  
       51 天前 via Android
    请问你的子域名 dns 是怎么设置的,把 docker 都放到一个 CT 里的话 NPM 要怎么转发流量
    lazyyz
        13
    lazyyz  
       51 天前 via iPhone
    生命不息,折腾不止!
    dhuzbb
        14
    dhuzbb  
    OP
       51 天前
    dhuzbb
        15
    dhuzbb  
    OP
       51 天前
    @kimwang 我的主路由和旁路由都是软路由直接刷的 iStoreOS 系统,自带 Docker 服务。我还有极空间 Z4 Pro 和黑群晖 NAS ,也是自带 Docker 服务的。还有一台小主机,专门安装的 PVE 系统,在 CT 容器中部署了 Docker 。我倾向于大部分 Docker 部署到 极空间 Z4 Pro 中。少数 Docker 应用部署到旁路由和 PVE 的 Docker 中。
    xbin
        16
    xbin  
       51 天前
    细说一下 CT 容器部署,我都是虚拟机里 docker 部署
    dhuzbb
        17
    dhuzbb  
    OP
       51 天前
    @xbin 和虚拟机里的 docker 部署没有任何区别。将 CT 容器看成轻量级的虚拟机就行。之所以推荐 CT 部署,是因为创建 CT 容器非常的简单和快速,更加轻量级,资源利用率更高,性能损失更少。
    fuwu1245
        18
    fuwu1245  
       51 天前
    发现不少可以折腾的东西 谢谢 OP (
    kimwang
        19
    kimwang  
       50 天前 via Android
    @dhuzbb 感谢详细介绍,我门外汉,想问 docker 要怎么维护?譬如资料备份之类的,方便给点关键字查资料吗?
    dhuzbb
        20
    dhuzbb  
    OP
       50 天前 via Android
    @kimwang 我自己的做法是建一个总的 docker 文件夹,所有的 docker 应用都在这个 docker 文件夹下建立一个单独应用名称的文件夹用于文件映射,这样只需要备份整个 docker 文件夹即可。
    veapon
        21
    veapon  
       50 天前
    请问 OP 是怎么用 443 端口访问到 self-host 服务的?家宽运营商应该屏蔽了 443 和 80 的,是用了 frp 吗?
    dhuzbb
        22
    dhuzbb  
    OP
       50 天前
    @veapon 详见后续文章: https://www.v2ex.com/t/1074861
    kimwang
        23
    kimwang  
       49 天前 via Android
    @dhuzbb 本贴很有启发,谢谢
    q958951326
        24
    q958951326  
       47 天前
    本贴很有启发,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.