mirror of
https://github.com/tuxdotrs/nix-config.git
synced 2026-08-05 05:46:33 +05:30
Compare commits
4 Commits
05b5d1e04b
...
bc4054b635
| Author | SHA1 | Date | |
|---|---|---|---|
|
bc4054b635
|
|||
|
18e90d01fd
|
|||
|
9d7785a335
|
|||
|
4dde5f976b
|
@@ -26,7 +26,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
close_on_focus_loss = false;
|
close_on_focus_loss = true;
|
||||||
consider_preedit = true;
|
consider_preedit = true;
|
||||||
pop_to_root_on_close = true;
|
pop_to_root_on_close = true;
|
||||||
favicon_service = "twenty";
|
favicon_service = "twenty";
|
||||||
|
|||||||
@@ -43,16 +43,17 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
domain = "lab.tux.rs";
|
domain = "lab.tux.rs";
|
||||||
};
|
};
|
||||||
aiostreams = {
|
|
||||||
enable = true;
|
|
||||||
port = 4567;
|
|
||||||
|
|
||||||
|
mediaflow-proxy = {
|
||||||
|
enable = true;
|
||||||
|
port = 8888;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
ADDON_ID = "aiostreams.lab.tux.rs";
|
APP__SERVER__HOST = "0.0.0.0";
|
||||||
BASE_URL = "https://aiostreams.lab.tux.rs";
|
APP__SERVER__PORT = "8888";
|
||||||
};
|
};
|
||||||
|
|
||||||
environmentFile = innerArgs.config.sops.secrets."aiostreams".path;
|
environmentFile = innerArgs.config.sops.secrets."mediaflow-proxy".path;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -98,6 +99,10 @@
|
|||||||
aiostreams = {
|
aiostreams = {
|
||||||
sopsFile = ./secrets.yaml;
|
sopsFile = ./secrets.yaml;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mediaflow-proxy = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# --- Networking ---
|
# --- Networking ---
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ cloudflare-credentials:
|
|||||||
email: ENC[AES256_GCM,data:K9L6H4dqNNgbCFg=,iv:jirDJb+Y2sXrup6/doRmOdd8tV7zLnttcgG75r4Fs04=,tag:XeyMVC+Q9TEuTxSfOeR2Uw==,type:str]
|
email: ENC[AES256_GCM,data:K9L6H4dqNNgbCFg=,iv:jirDJb+Y2sXrup6/doRmOdd8tV7zLnttcgG75r4Fs04=,tag:XeyMVC+Q9TEuTxSfOeR2Uw==,type:str]
|
||||||
dns-api-token: ENC[AES256_GCM,data:aLZqasMaxpv08KuGqhe66J/jHqEnMNdZrYtIurv01xk2/5OW//PaHQ==,iv:7tZYpOT27n/RWaj1CqiZbhA/g3aKbxjdkMA6SuW/YpQ=,tag:oetxyD9XMrihSLyDvl7qfw==,type:str]
|
dns-api-token: ENC[AES256_GCM,data:aLZqasMaxpv08KuGqhe66J/jHqEnMNdZrYtIurv01xk2/5OW//PaHQ==,iv:7tZYpOT27n/RWaj1CqiZbhA/g3aKbxjdkMA6SuW/YpQ=,tag:oetxyD9XMrihSLyDvl7qfw==,type:str]
|
||||||
aiostreams: ENC[AES256_GCM,data:HeV4NONoqTti/4GBpzYaUEGgrSpDfCfcGJ3kbZAUtg5hm1zQCcelx3N4b/woSjaNZrDj98P5R3oZUkgVfv0RS2PKdJc3EdLaPFwXcuJ+W0U373sryU85uIIZi4BvQ4LyCCpuclPU5dgQmb9rzbIvhlu/ftfpKJsRbH2bUgMMo2nohMWUtg==,iv:V60U/omnN+09cSOQGvwwN8DC6/D++MB0axQyzIG97zo=,tag:vwNbXRj3CS+okb0NSwxgYw==,type:str]
|
aiostreams: ENC[AES256_GCM,data:HeV4NONoqTti/4GBpzYaUEGgrSpDfCfcGJ3kbZAUtg5hm1zQCcelx3N4b/woSjaNZrDj98P5R3oZUkgVfv0RS2PKdJc3EdLaPFwXcuJ+W0U373sryU85uIIZi4BvQ4LyCCpuclPU5dgQmb9rzbIvhlu/ftfpKJsRbH2bUgMMo2nohMWUtg==,iv:V60U/omnN+09cSOQGvwwN8DC6/D++MB0axQyzIG97zo=,tag:vwNbXRj3CS+okb0NSwxgYw==,type:str]
|
||||||
|
mediaflow-proxy: ENC[AES256_GCM,data:jk2eYyOmO3XpqFNo3jucB/VvL6pWBGrquYi/OpIwvSPqjbo=,iv:DIsqykv77/TlLhT9uIPGJRBlCQHVdhcuYlc56qQGZgk=,tag:phMXArjIrNNI51U9hpaUzg==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- enc: |
|
- enc: |
|
||||||
@@ -27,7 +28,7 @@ sops:
|
|||||||
4TkObqH8ddGpbd7cX5a/wboTjYuEdAviWxjK2oBPgtcFc1f03X3tmA==
|
4TkObqH8ddGpbd7cX5a/wboTjYuEdAviWxjK2oBPgtcFc1f03X3tmA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
recipient: age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
||||||
lastmodified: "2026-06-30T11:49:48Z"
|
lastmodified: "2026-07-13T15:24:16Z"
|
||||||
mac: ENC[AES256_GCM,data:YdL/ei0+1DQZFBJSd3cb3un39GBZcoN0zzTcveNL8zAL7Kz2RgwX6qyoGjo6DaWgFpfEIGwLi36OC8sSjo3ukWqgMezcPjkHVZnmj4bsQ+6ikdnaNGZ2Momm2KNNXCezQJkn5HFkCQMOTY8Ad3zwBqmEuM1+aCfpdI16xvd6Ero=,iv:EmVb9OJrUXIdDsvPwEH4wx74TktKhzMlEmoa7rL8QB8=,tag:BifpUMQKXImg+v9kNNKPKQ==,type:str]
|
mac: ENC[AES256_GCM,data:5NOOqdtJJj0ph3apCwaokiRySW9QIlmR01I7fFZDT2sNHqrJSgVVN8U5WtOnM1S61ID7MRxGLpSegU9M8lPnZd2WmhGIlactJjoSTE9+Xy5hj4m9mdWW0TZg9w4qmyIo8o8DuoDa2LiyilT97XaMnvoDz2ZqWcJxi44URLmk9o0=,iv:czkDfHv9eg1VzyMUT48W4OmmeSaUu6TzeYcyYSBu/+w=,tag:140ldPXqetX3733QnoOU0g==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.13.1
|
version: 3.13.1
|
||||||
|
|||||||
57
modules/nixos/services/mediaflow-proxy.nix
Normal file
57
modules/nixos/services/mediaflow-proxy.nix
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.services =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.tnix.services.mediaflow-proxy;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.tnix.services.mediaflow-proxy = {
|
||||||
|
enable = mkEnableOption "Enable MediaFlow Proxy";
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8888;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
environmentFile = mkOption {
|
||||||
|
type = with types; path;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
virtualisation.oci-containers.containers.mediaflow-proxy = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/mhdzumair/mediaflow-proxy-light:latest";
|
||||||
|
ports = [
|
||||||
|
"${toString cfg.port}:8888"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment = cfg.environment;
|
||||||
|
environmentFiles = [ cfg.environmentFile ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts = {
|
||||||
|
"mf-proxy.lab.tux.rs" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "lab.tux.rs";
|
||||||
|
locations = {
|
||||||
|
"/" = {
|
||||||
|
proxyPass = "http://localhost:${toString cfg.port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user