You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/posts/homelab-adventure-part-4.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ slug = "homelab-adventure-part-4"
7
7
tags = ["Linux", "Homelab"]
8
8
+++
9
9
10
-
Welcome to my journey in building my Homelab. This is part of a multipart series; in the last part I showed how to setup an internal network across multiple hosts. This "final" post will go over application hosting and monitoring.
10
+
Welcome to my journey in building my Homelab. This is part of a multipart series; in the last part I showed how to set up an internal network across multiple hosts. This "final" post will go over application hosting and monitoring.
11
11
12
12
<!-- more -->
13
13
@@ -58,7 +58,7 @@ Each container gets a separate role in Ansible that creates a storage folder, a
58
58
59
59
### Exposing applications
60
60
61
-
I use [Traefik](https://doc.traefik.io/traefik/) to expose each application based on labels. I use a wildcard certificate to enable HTTPS, but Let's Encrypt could also be used. If you are worried about mounting the `docker.sock` directly to Traefik, you can setup [socket-proxy](https://github.com/wollomatic/socket-proxy). For managing DNS, I use [DNSControl](https://dnscontrol.org/) but Ansible could also be used, but it is more verbose.
61
+
I use [Traefik](https://doc.traefik.io/traefik/) to expose each application based on labels. I use a wildcard certificate to enable HTTPS, but Let's Encrypt could also be used. If you are worried about mounting the `docker.sock` directly to Traefik, you can setup [socket-proxy](https://github.com/wollomatic/socket-proxy).
62
62
63
63
```yaml
64
64
# roles/container-traefik/tasks/main.yml
@@ -227,17 +227,19 @@ serversTransport:
227
227
228
228
Now any container with the `traefik.enable: 'true'` will be automatically exposed on `<container_name>.<traefik_domain>`. If `traefik.http.routers.<app_name>.middlewares: 'internal-network@file'` is set as a label, the application will only be accessible from IPs on the `ipAllowList`.
229
229
230
+
For managing DNS, I use [DNSControl](https://dnscontrol.org/) so I can version control my DNS configuration. Ansible could also be used, but it's more verbose.
231
+
230
232
## Monitoring
231
233
232
-
For general server metrics and monitoring, I use [Netdata](https://www.netdata.cloud/). There are some additional monitoring modules I have setup:
234
+
For general server metrics and monitoring, I use [Netdata](https://www.netdata.cloud/). There are some additional monitoring modules I have set up:
This gives alerts for things like high disk usage, high memory usage, UPS failed over to battery, and SMART failures.
239
241
240
-
For custom monitoring, I use [Uptime Kuma](https://github.com/louislam/uptime-kuma). It works well for application health monitoring as well as custom webhook monitors. I have setup custom webhook monitors for:
242
+
For custom monitoring, I use [Uptime Kuma](https://github.com/louislam/uptime-kuma). It works well for application health monitoring as well as custom webhook monitors. I have set up custom webhook monitors for:
0 commit comments