Compare commits

...

4 Commits

Author SHA1 Message Date
tux
bc4054b635 feat: disable aiostreams 2026-07-13 21:31:51 +05:30
tux
18e90d01fd feat: set close_on_focus_loss to true 2026-07-13 21:31:30 +05:30
tux
9d7785a335 feat: enable mediaflow-proxy 2026-07-13 21:30:55 +05:30
tux
4dde5f976b feat: setup mediaflow-proxy module 2026-07-13 21:30:31 +05:30
4 changed files with 72 additions and 9 deletions

View File

@@ -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";

View File

@@ -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 ---

View File

@@ -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

View 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}";
};
};
};
};
};
};
}