feat(modules): add homepage service

feat(resources): add homepage service config files and assets
This commit is contained in:
Jo 2024-09-25 00:04:48 +02:00
parent 7b2e828c8f
commit 580a65beb8
9 changed files with 171 additions and 0 deletions

View file

@ -0,0 +1,40 @@
{
lib,
namespace,
config,
host,
...
}: with lib; with lib.${namespace};
let
cfg = config.${namespace}.services.homepage;
homepageConfigDirectory = lib.snowfall.fs.get-file "resources/services/homepage";
in {
options.${namespace}.services.homepage = { enable = mkEnableOption "Enable Homepage, an intuitive dashboard for your services."; };
config = mkIf cfg.enable {
systemd.tmpfiles.rules = [
"d /var/lib/containers/homepage/config 0700 root root -"
"d /var/lib/containers/homepage/images 0700 root root -"
"f /var/lib/containers/homepage 0700 root root - - - exec cp -r ${homepageConfigDirectory}/* /var/lib/containers/homepage"
];
virtualisation.oci-containers.containers.vaultwarden = {
image = "ghcr.io/gethomepage/homepage:latest";
autoStart = true;
hostname = host;
labels = {
"traefik.enable" = "true";
"traefik.http.routers.homepage.entrypoints" = "websecure";
"traefik.http.routers.homepage.rule" = "Host(`home.thevoid.cafe`)";
"traefik.http.services.homepage.loadbalancer.server.port" = "3000";
};
volumes = [
"/var/lib/containers/homepage/config:/app/config:rw"
"/var/lib/containers/homepage/images:/app/public/images:rw"
"/var/run/docker.sock:/var/run/docker.sock:ro" # Optional, used for docker integration.
];
extraOptions = ["--network=proxy"];
};
};
}

View file

@ -0,0 +1,30 @@
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/bookmarks
- IT:
- Github:
- abbr: GH
href: https://github.com/
- Codeberg:
- icon: mdi-image-filter-hdr-outline
href: https://codeberg.org/
- Stackoverflow:
- abbr: SO
href: https://stackoverflow.com/
- Social:
- Reddit:
- abbr: RE
href: https://reddit.com/
- Whatsapp:
- icon: mdi-chat-outline
href: https://web.whatsapp.com/
- Fun:
- YouTube:
- icon: mdi-video-vintage
href: https://youtube.com/
- A-Dark-Room:
- icon: mdi-campfire
href: https://adarkroom.doublespeakgames.com/

View file

@ -0,0 +1,10 @@
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/docker/
# my-docker:
# host: 127.0.0.1
# port: 2375
default-docker:
socket: /var/run/docker.sock

View file

@ -0,0 +1,14 @@
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/services
- System:
- Fritz!Box:
name: Fritz!Box
icon: avmfritzbox.png
href: http://192.168.1.1
description: Home router configuration
widget:
type: "fritzbox"
url: http://192.168.1.1
ping: http://192.168.1.1

View file

@ -0,0 +1,54 @@
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/settings
title: Jo's Home
background:
image: /images/blossoms.png
blur: md
opacity: 45
favicon: /images/logo.png
theme: dark
color: zinc
iconStyle: theme
layout:
Media:
style: row
columns: 1
Utilities:
style: column
columns: 2
Entertainment:
style: column
column: 3
System:
style: column
columns: 3
Development:
style: row
columns: 2
Social:
style: column
columns: 3
IT:
style: column
columns: 3
Fun:
style: column
columns: 3
headerStyle: clean
target: _blank
quicklaunch:
searchDescriptions: true
hideInternetSearch: false
hideVisitURL: false
hideVersion: true
showStats: false

View file

@ -0,0 +1,22 @@
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/widgets
- resources:
label: System
cpu: true
memory: true
uptime: true
units: metric
- resources:
label: Storage
disk: /
- datetime:
text_size: xl
format:
timeStyle: short
dateStyle: long
hourCycle: h23
locale: de

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -47,6 +47,7 @@
};
vaultwarden.enable = true;
homepage.enable = true;
};
};