• 1 Post
  • 202 Comments
Joined 2 years ago
cake
Cake day: June 22nd, 2023

help-circle











  • yeah i created a new youtube account in a container once and just watched all the popular/drama suggestions. that account turned into a shitstorm immediately

    these days i curate my youtube accounts making liberal use of Not interested/Do not recommend channel/Editing my history and even test watching in a container before watching it on my curated account

    this is just how “the algorithm” works. shovel more of what you watch in your face.

    the fact that they initially will give you right-wing, conspiracy fueled, populist, trash right off the bat is the concern









  • this is my container config for element/matrix podman containers do not run as root so you have to get the file privileges right on the volumes mapped into the containers. i used top to find out what user the services were running as. you can see there are some settings there where you can change the user if you are having permissions problems

    
    
    
    { pkgs, modulesPath, ... }:
    
    {
    
      imports = [
        (modulesPath + "/virtualisation/proxmox-lxc.nix")
      ];
    
      security.pki.certificateFiles = [ "/etc/ssl/certs/ca-certificates.crt" ];
    
      system.stateVersion = "23.11";
      system.autoUpgrade.enable = true;
      system.autoUpgrade.allowReboot = false;
    
      nix.gc = {
        automatic = true;
        dates = "weekly";
        options = "--delete-older-than 14d";
      };
    
      services.openssh = {
        enable = true;
        settings.PasswordAuthentication = true;
      };
    
      users.users.XXXXXX = {
        isNormalUser = true;
        home = "/home/XXXXXX";
        extraGroups = [ "wheel" ];
        shell = pkgs.zsh;
      };
    
      programs.zsh.enable = true;
    
      environment.etc = {
        "fail2ban/filter.d/matrix-synapse.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
          [Definition]
          failregex = .*POST.* - <HOST> - 8008.*\n.*\n.*Got login request.*\n.*Failed password login.*
                      .*POST.* - <HOST> - 8008.*\n.*\n.*Got login request.*\n.*Attempted to login as.*\n.*Invalid username or password.*
        '');
      };
    
      services.fail2ban = {
        enable = true;
        maxretry = 3;
        bantime = "10m";
        bantime-increment = {
          enable = true;
          multipliers = "1 2 4 8 16 32 64";
          maxtime = "168h";
          overalljails = true;
        };
        jails = {
          matrix-synapse.settings = {
            filter = "matrix-synapse";
            action = "%(known/action)s";
            logpath = "/srv/logs/synapse.json.log";
            backend = "auto";
            findtime = 600;
            bantime  = 600;
            maxretry = 2;
          };
        };
      };
    
      virtualisation.oci-containers = {
        containers = {
    
          postgres = {
            autoStart = false;
            environment = {
              POSTGRES_USER = "XXXXXX";
              POSTGRES_PASSWORD = "XXXXXX";
              LANG = "en_US.utf8";
            };
            image = "docker.io/postgres:14";
            ports = [ "5432:5432" ];
            volumes = [
              "/srv/postgres:/var/lib/postgresql/data"
            ];
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--pull=newer"
            ];
          };
    
          synapse = {
            autoStart = false;
            environment = {
              LANG = "C.UTF-8";
    #          UID="0";
    #          GID="0";
            };
     #       user = "1001:1000";
            image = "ghcr.io/element-hq/synapse:latest";
            ports = [ "8008:8008" ];
            volumes = [
              "/srv/synapse:/data"
            ];
            log-driver = "json-file";
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--log-opt" "max-size=10m" "--log-opt" "max-file=1" "--log-opt" "path=/srv/logs/synapse.json.log"
              "--pull=newer"
            ];
            dependsOn = [ "postgres" ];
          };
    
          element = {
            autoStart = true;
            image = "docker.io/vectorim/element-web:latest";
            ports = [ "8009:80" ];
            volumes = [
              "/srv/element/config.json:/app/config.json"
            ];
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--pull=newer"
            ];
    #        dependsOn = [ "synapse" ];
          };
    
          call = {
            autoStart = true;
            image = "ghcr.io/element-hq/element-call:latest-ci";
            ports = [ "8080:8080" ];
            volumes = [
              "/srv/call/config.json:/app/config.json"
            ];
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--pull=newer"
            ];
          };
    
          livekit = {
            autoStart = true;
            image = "docker.io/livekit/livekit-server:latest";
            ports = [ "7880:7880" "7881:7881" "50000-60000:50000-60000/udp" "5349:5349" "3478:3478/udp" ];
            cmd = [ "--config" "/etc/config.yaml" ];
            entrypoint = "/livekit-server";
            volumes = [
              "/srv/livekit:/etc"
            ];
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--pull=newer"
            ];
          };
    
          livekitjwt = {
            autoStart = true;
            image = "ghcr.io/element-hq/lk-jwt-service:latest-ci";
            ports = [ "7980:8080" ];
            environment = {
              LK_JWT_PORT = "8080";
              LIVEKIT_URL = "wss://livekit.xxxxxx.dynu.net/";
              LIVEKIT_KEY = "XXXXXX";
              LIVEKIT_SECRET = "XXXXXX";
            };
            entrypoint = "/lk-jwt-service";
            extraOptions = [
              "--label" "io.containers.autoupdate=registry"
              "--pull=newer"
            ];
          };
    
        };
      };
    
    }