97 lines
2.4 KiB
Nix
97 lines
2.4 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
# Container config
|
|
name = "dashy";
|
|
# Version tagging
|
|
dashyVersion = "v3.2.3";
|
|
# Helper
|
|
helper = import ../service-helper.nix { inherit config pkgs lib; };
|
|
cfg = config.numbus-server.services.dashy;
|
|
in
|
|
|
|
helper.mkPodmanService {
|
|
inherit name;
|
|
description = "Dashy, the ultimate dashboard for your homelab";
|
|
defaultPort = "8999";
|
|
configDirEnabled = false;
|
|
dataDirEnabled = false;
|
|
middlewares = [
|
|
"secureHeaders"
|
|
];
|
|
|
|
composeText = ''
|
|
services:
|
|
dashy:
|
|
image: lissy93/dashy:${dashyVersion}
|
|
container_name: dashy
|
|
hostname: dashy
|
|
user: '1000:1000'
|
|
networks:
|
|
dashy:
|
|
ipv4_address: 10.89.235.253
|
|
ports:
|
|
- ${cfg.port}:8080
|
|
volumes:
|
|
- ${config.sops."dashy/config".path}:/app/user-data/conf.yml
|
|
environment:
|
|
- UID=1000
|
|
- GID=1000
|
|
- NODE_ENV=production
|
|
healthcheck:
|
|
test: ['CMD', 'node', '/app/services/healthcheck']
|
|
interval: 1m30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- NET_RAW
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
dashy:
|
|
driver: bridge
|
|
name: dashy
|
|
ipam:
|
|
config:
|
|
- subnet: "10.89.235.0/24"
|
|
gateway: "10.89.235.254"
|
|
'';
|
|
|
|
extraConfig = {
|
|
sops.templates."dashy/config" = {
|
|
gid = "100";
|
|
uid = "100999";
|
|
mode = "0440" ;
|
|
content = ''
|
|
pageInfo:
|
|
title: My Homelab
|
|
sections:
|
|
- name: Example Section
|
|
icon: far fa-rocket
|
|
items:
|
|
- title: GitHub
|
|
description: Dashy source code and docs
|
|
icon: fab fa-github
|
|
url: https://github.com/Lissy93/dashy
|
|
- title: Issues
|
|
description: View open issues, or raise a new one
|
|
icon: fas fa-bug
|
|
url: https://github.com/Lissy93/dashy/issues
|
|
- name: Local Services
|
|
items:
|
|
- title: Firewall
|
|
icon: favicon
|
|
url: http://192.168.1.1/
|
|
- title: Game Server
|
|
icon: https://i.ibb.co/710B3Yc/space-invader-x256.png
|
|
url: http://192.168.130.1/
|
|
'';
|
|
path = "/etc/dashy/dashy.yaml";
|
|
};
|
|
};
|
|
} |