Frank Braun and Smuggler had an awesome podcast called Cypherpunk Bitstream. Unfortunately taz0.org, the original site where it was hosted, as well as anarplex have been offline for a while now.

Frank sent me the original audio files and together with the public website source I re-built the website at taz0.sirion.io.

Deployment

Currently it’s hosted on a single VM described by a nix expression similar to the following one:

{ name, nodes, lib, modulesPath, pkgs, ... }:
let
  host = "199.195.254.225";
  site-domain = "taz0.sirion.io";
  
  cdn-domain = "cdn.taz0.sirion.io";
  cdn-data = ./taz0-cdn;

  taz0-source = builtins.fetchTarball {
    url = "https://github.com/tazzero/taz0-source/archive/refs/heads/master.tar.gz";
    sha256 = "sha256:0p39jijc0wlc855xpnn6nb428y0bbz3qmiq4cw1sl87wfxxavz5d";
  };
  taz0-source-cdn-replaced = cdn-domain: cdn-data: pkgs.stdenv.mkDerivation {
    name = "taz0-source-cdn-replaced";
    src = taz0-source;
    installPhase = ''
      ${pkgs.gnugrep}/bin/grep -rl "cdn.anarplex.net" . | ${pkgs.findutils}/bin/xargs -n 1 -I{} ${pkgs.gnused}/bin/sed -i 's/cdn.anarplex.net/${cdn-domain}/' {}

      # Workaround for different CND setup
      rm static/cdn/cypherpunk-bitstream/episodes
      ${pkgs.coreutils}/bin/ln -s ${cdn-data}/cdn/cypherpunk-bitstream/episodes static/cdn/cypherpunk-bitstream/episodes

      cp -r . $out
    '';
  };
  taz0-site = pkgs.stdenv.mkDerivation {
    name = "taz0-site";
    src = taz0-source-cdn-replaced cdn-domain cdn-data;
    installPhase = ''
      ${pkgs.hugo}/bin/hugo -d $out
    '';
  };
in {
  deployment = {
    targetHost = host;
    tags = [ "public" "web" "external" "taz0" ];
  };
  
  security = {
    acme =  {
      email = "…";
      acceptTerms = true;
    };
  };

  networking = {
    hostName = "taz0";
    firewall.allowedTCPPorts = [ 80 443 ];
  };
    
  services.nginx = {
    enable = true;
    virtualHosts.${site-domain} = {
      enableACME = true;
      forceSSL = true; 
      root = taz0-site;
    };
    virtualHosts.${cdn-domain} = {
      enableACME = true;
      forceSSL = true; 
      root = cdn-data;
    };
  };
}