首页 公告 项目 RSS

玩了6年服务器我家里跑了什么

July 5, 2024 本文有 2402 个字 需要花费 5 分钟阅读

简介

从2017年开始我就尝试在自己的服务器上部署服务给自己用,从树莓派到现在的小机柜还是积累了一部分经验的,下面说下我的homelab里面托管了什么东西

服务器和整体架构

关于硬件其实我的硬件并不多,因为我主要的目的是为了使用,所以所有的东西都是能简单就简单,能一个节点完成的,绝对不会使用两个节点,一个节点又不是不能用对吧,家里使用很多因素都会导致boom,而且自己用的就不要在乎百分百的在线了,能快速恢复不丢数据这个才是最主要的。目前我就云上一台服务器装了k3s,云下m920q装了pve,上面起了一台虚拟机装了k3s

why pve

其实可以不用使用pve的,但是为了可以平时方便启动一台虚拟机用来测试一些东西,所以上了pve

why k3s

简单,方便,出问题直接重启,更新直接更新二进制文件,所有配置都存储在一个yaml中,方便迁移。就如我说的,我这东西为了使用,尽可能不给自己找麻烦,如果学习的话其实完全可以另外搭建环境

why 云上云下结合

有的东西我需要在家里外面使用,有的东西我只能部署在家里,比如homeassistant

我托管了什么

argocd

介绍

因为用了k3s,所以部署很关键,这个除了argocd就是fluxcd,但是我比较喜欢argocd的界面,所有的服务yaml我都托管在自己的gitea中,然后修改配置使用argocd同步到集群中就好了,使用argocd还可以方便比较你修改了什么,查看服务的健康状态

项目地址

reloader

介绍

部分应用的配置我使用的是configmap挂载进去的,比如prometheus的配置,prometheus的配置修改完之后就可以使用reloader去自动重启prometheus,然后使用最新的配置,但是这个项目经常更新也不知道在更新点什么东西

项目地址

prometheus + grafana +各种exporter

介绍

之前使用的是prometheus + thanos 去监控各个数据,但是后来感觉有点复杂,因为监控最重要的是告警,而且很久之前的数据存在的意义也不大,所以现在就只有prometheus了,又不是不能用,对吧

项目地址

cert-manager

介绍

cert-manager就不用说了,给我自动更新ingress的证书的

项目地址

homeassistant

介绍

别人用homeassistant最主要是用来搞智能家居的,我不是,我是用它来采集米家里面比如温度计数据的,然后prometheus去抓取,然后grafana去展示,就是这样

项目地址

ingress nginx

介绍

这个也没啥好说的,如果你要问我为啥不用其他的,我只能说,这个能用,不花里胡哨

项目地址

metallb

介绍

这个也没啥好说的,为了给ingress nginx 分配一个虚拟ip,我在写这个博客的时候才知道叫metallb不是metalb,笑死

项目地址

csi-driver-nfs

介绍

k8s NFS CSI 驱动程序,我的部分pv使用的是nfs

项目地址

adguard

介绍

我使用过很多dns服务器,目前是这个,之后会不会换不一定,用过最久的应该是smartdns,但是谁叫它没有一个好看的ui呢,blocky这个dns服务器也不错

项目地址

atuin

介绍

这是一个可以同步你终端命令记录的程序,目前我已经收集了4w个命令了,如果你和我一样每天命令很多的话可以用用,不仅可以让你不同机器之间保持命令历史的同步,还可以统计你每天敲的最多的命令是什么

项目地址

ai-gateway

介绍

one-api 之前不支持azure的openai,所以自己就写了一个来转发请求,不知道现在支持了没有

项目地址

busuanzi

介绍

一个基于 Golang + Redis 的简易访问量统计系统,用来统计我博客的访问量

项目地址

freshrss

介绍

管理我的rss订阅,现在一般不会直接从这里看我的rss订阅内容,每天我会自动转发里面的订阅内容到我的tg频道https://t.me/bboyapp然后在频道里面看,这个我认为绝对不是一个好看的rss订阅软件,但是有一说一贵在比较稳定

项目地址

realip.cc

介绍

自己写的一个查询ip的接口,欢迎大家使用,地址https://realip.cc

项目地址
  • None

linkwarden

介绍

我每天需要看大量的东西,之前是存在ticktick里面的,但是后来越来越多,所以就使用了这个方便和我需要执行的任务区分开来,当然也能解决网站链接404的问题

项目地址

miniserve

介绍

这个可以让你快速搭建一个文件服务器,我云上的服务器每天都会定时创建备份,本地会有定时任务每天就从这个文件服务器去拉备份到本地,这样就可以保证就算云上boom了,所有数据都可以从云下去恢复

项目地址

one-api + open-webui

介绍

用来构建自己的chatgpt的,如果不知道怎么搭建,可以看我的博客构建集成多AI服务的网关只不过把ChatGPT-Next-Web换成了open-webui

项目地址

postgresql + redis + mysql

介绍

这些没什么好说的

项目地址

也没什么好说的

registry-mirror

介绍

用来搭建各个镜像仓库的代理的,用来解决国内不能访问某些镜像仓库的问题

项目地址

tgpush

介绍

用来向我的tg频道推送每天的新闻,欢迎关注我的tg频道

项目地址
  • None

umami

介绍

我用过最好的站点统计软件,如果现在新搭建的话我推荐

项目地址

uptime-kuma

介绍

用来检测url是不是在线的,ssl证书过期时间等

项目地址

bitwarden

介绍

密码管理软件,这个没啥好说的,难道有第二个开源的比他还好用的?

项目地址

gitea

介绍

我认为最好的代码托管软件,比gitlab不知道强多少倍,兼容github action,更关键是轻量,不占用资源,放弃你的gitlab吧

项目地址

wakapi

介绍

统计你写代码的时间

项目地址

wallos

介绍

管理你订阅的各种互联网服务,这个项目现在界面优化的越来越好了,很不错

项目地址

wizarr

介绍

jellyfin的用户邀请系统

项目地址

jellyfin

介绍

这个也没什么好说的,我认为比emby强

项目地址

最后说几句

很多人一个服务部署了就部署了,往往不会去更新,如果你想让自己的服务长久运行下去的话,我个人认为最好经常更新,不然各种安全问题不说,一旦有新功能你想要使用的时候很有可能就更新不动了,我个人是每周五都会更新所有的服务,所以就有我的《我关注的项目这周更新了什么》系列。

欢迎关注我的博客www.bboy.app

Have Fun