2022-12-18 00:43:42 +01:00
|
|
|
# Self Host Blocks
|
|
|
|
|
2023-08-04 09:05:28 +02:00
|
|
|
<!--toc:start-->
|
|
|
|
- [Self Host Blocks](#self-host-blocks)
|
|
|
|
- [Supported Features](#supported-features)
|
|
|
|
<!--toc:end-->
|
|
|
|
|
2023-02-20 05:50:39 +01:00
|
|
|
*Building blocks for self-hosting with battery included.*
|
2022-12-18 00:43:42 +01:00
|
|
|
|
2023-06-23 06:22:21 +02:00
|
|
|
SHB's (Self Host Blocks) goal is to provide a lower entry-bar for self-hosting. I intend to achieve
|
|
|
|
this by providing opinionated building blocks fitting together to self-host a wide range of
|
|
|
|
services. Also, the design will be extendable to allow users to add services not provided by SHB.
|
2023-07-30 07:26:32 +02:00
|
|
|
|
|
|
|
## Supported Features
|
|
|
|
|
2023-08-10 05:39:32 +02:00
|
|
|
- [X] Authelia as SSO provider.
|
|
|
|
- [X] Export metrics to Prometheus.
|
2023-07-30 07:26:32 +02:00
|
|
|
- [X] LDAP server through lldap, it provides a nice Web UI.
|
2023-07-31 02:44:50 +02:00
|
|
|
- [X] Administrative UI only accessible from local network.
|
2023-07-30 07:26:32 +02:00
|
|
|
- [X] Backup with Restic or BorgBackup
|
2023-09-23 09:04:01 +02:00
|
|
|
- [ ] UI for backups.
|
|
|
|
- [ ] Export metrics to Prometheus.
|
2023-07-30 07:26:32 +02:00
|
|
|
- [X] Monitoring through Prometheus and Grafana.
|
|
|
|
- [X] Export systemd services status.
|
|
|
|
- [X] Reverse Proxy with Nginx.
|
|
|
|
- [ ] Export metrics to Prometheus.
|
2023-09-23 09:04:01 +02:00
|
|
|
- [ ] Log slow requests.
|
2023-07-30 07:26:32 +02:00
|
|
|
- [X] SSL support.
|
|
|
|
- [X] Backup support.
|
|
|
|
- [X] Nextcloud
|
|
|
|
- [ ] Export metrics to Prometheus.
|
|
|
|
- [X] LDAP auth, unfortunately we need to configure this manually.
|
|
|
|
- [ ] SSO auth.
|
|
|
|
- [X] Backup support.
|
|
|
|
- [X] Home Assistant.
|
2023-08-04 09:04:37 +02:00
|
|
|
- [ ] Export metrics to Prometheus.
|
2023-08-05 20:50:29 +02:00
|
|
|
- [X] LDAP auth through `homeassistant_user` LDAP group.
|
2023-08-04 09:04:37 +02:00
|
|
|
- [ ] SSO auth.
|
|
|
|
- [X] Backup support.
|
|
|
|
- [X] Jellyfin
|
2023-07-30 07:26:32 +02:00
|
|
|
- [ ] Export metrics to Prometheus.
|
2023-08-05 20:50:29 +02:00
|
|
|
- [X] LDAP auth through `jellyfin_user` and `jellyfin_admin` LDAP groups.
|
2023-08-05 21:46:14 +02:00
|
|
|
- [X] SSO auth.
|
2023-07-30 07:26:32 +02:00
|
|
|
- [X] Backup support.
|
2023-09-03 00:00:41 +02:00
|
|
|
- [X] Hledger
|
|
|
|
- [ ] Export metrics to Prometheus.
|
|
|
|
- [X] LDAP auth through `hledger_user` LDAP group.
|
|
|
|
- [X] SSO auth.
|
|
|
|
- [ ] Backup support.
|
2023-09-23 09:04:01 +02:00
|
|
|
- [X] Database Postgres
|
|
|
|
- [ ] Slow log monitoring.
|
|
|
|
- [ ] Export metrics to Prometheus.
|
2023-09-26 07:16:20 +02:00
|
|
|
|
|
|
|
## Tips
|
|
|
|
|
2023-09-26 07:54:46 +02:00
|
|
|
### Deploy
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ nix run nixpkgs#colmena -- apply
|
|
|
|
```
|
|
|
|
|
2023-09-26 07:16:20 +02:00
|
|
|
### Diff changes
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ nix run nixpkgs#colmena -- build
|
|
|
|
...
|
|
|
|
Built "/nix/store/yyw9rgn8v5jrn4657vwpg01ydq0hazgx-nixos-system-baryum-23.11pre-git"
|
|
|
|
|
|
|
|
# Make some changes
|
|
|
|
|
|
|
|
$ nix run nixpkgs#colmena -- build
|
|
|
|
...
|
|
|
|
Built "/nix/store/16n1klx5cxkjpqhrdf0k12npx3vn5042-nixos-system-baryum-23.11pre-git"
|
|
|
|
|
|
|
|
$ nix run nixpkgs#nix-diff -- \
|
|
|
|
/nix/store/yyw9rgn8v5jrn4657vwpg01ydq0hazgx-nixos-system-baryum-23.11pre-git \
|
|
|
|
/nix/store/16n1klx5cxkjpqhrdf0k12npx3vn5042-nixos-system-baryum-23.11pre-git \
|
|
|
|
--color always | less
|
|
|
|
```
|
2023-09-27 22:28:25 +02:00
|
|
|
|
|
|
|
Also, in lieu of `nix-diff`, a nice summary of version changes can be produced with:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
nix run nixpkgs#nvd -- diff \
|
|
|
|
/nix/store/yyw9rgn8v5jrn4657vwpg01ydq0hazgx-nixos-system-baryum-23.11pre-git \
|
|
|
|
/nix/store/16n1klx5cxkjpqhrdf0k12npx3vn5042-nixos-system-baryum-23.11pre-git \
|
|
|
|
```
|
2023-10-01 00:49:42 +02:00
|
|
|
|
|
|
|
## TODOs
|
|
|
|
|
|
|
|
- [ ] Make sure nginx gets reloaded when SSL certs gets updated.
|