Cypherpunk Bitstream Backup
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;
};
};
}