2
2
mirror of https://git.feal.no/felixalb/nixos-config.git synced 2025-01-03 01:07:30 +01:00

Compare commits

...

2 Commits

Author SHA1 Message Date
0920617a72 defiant: add synapse-admin 2024-01-17 15:01:54 +01:00
c6124b551b defiant: add HomeAssistant 2024-01-17 13:34:24 +01:00
6 changed files with 77 additions and 1 deletions

View File

@ -15,7 +15,8 @@
./services/flame.nix
./services/gitea.nix
./services/hedgedoc.nix
./services/matrix-synapse.nix
./services/home-assistant.nix
./services/matrix
./services/metrics
./services/minecraft.nix
./services/vaultwarden.nix

View File

@ -0,0 +1,40 @@
{ config, pkgs, lib, ... }:
let
domain = "ha.home.feal.no";
in {
# Home-assistant - Smart Home Controller
# https://www.home-assistant.io/installation/linux#install-home-assistant-container
# The container is supposed to run as "privileged", but I believe this is only to allow device access (dongles/radios/etc.)
virtualisation.oci-containers.containers = {
homeassistant = {
image = "ghcr.io/home-assistant/home-assistant:2024.1";
extraOptions = [
"--network=host"
];
volumes = [
"/tank/services/homeassistant/config:/config"
];
environment = {
TZ = "Europe/Oslo";
};
};
};
# Requires addition to configuration.yaml:
# http:
# server_host: 127.0.0.1
# use_x_forwarded_for: true
# trusted_proxies: 127.0.0.1
services.nginx.virtualHosts."${domain}" = {
locations."/" = {
proxyPass = "http://127.0.0.1:8123";
proxyWebsockets = true;
};
listen = [
{ addr = "192.168.10.175"; port = 80; ssl = false; }
{ addr = "192.168.10.175"; port = 8123; ssl = false; }
];
};
}

View File

@ -0,0 +1,13 @@
{ config, pkgs, lib, ... }:
let
domain = "matrix-admin.home.feal.no";
backend = "http://127.0.0.1:8008";
synapse-admin = pkgs.callPackage ./adminPkg.nix { };
in {
services.nginx.virtualHosts."${domain}" = {
locations."/".root = "${synapse-admin}";
locations."/_synapse".proxyPass = "${backend}";
locations."/_matrix".proxyPass = "${backend}";
};
}

View File

@ -0,0 +1,14 @@
{ lib, stdenvNoCC, fetchzip }:
stdenvNoCC.mkDerivation rec {
name = "synapse-admin";
version = "0.8.7";
src = fetchzip {
url = "https://github.com/Awesome-Technologies/synapse-admin/releases/download/${version}/synapse-admin-${version}-dirty.tar.gz";
hash = "sha256-maaiU9ilmzE5lV9Ofjpli4g08/UcgZ82FaIMRrfOy7s=";
};
phases = [ "installPhase" ];
installPhase = ''
cp -r $src $out
'';
}

View File

@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./synapse.nix
./admin.nix
];
}