This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

websites/lassulus: rework lassul.us homepage as inline ANSI page

Warez-style hand-drawn logo, IBM VGA webfont inlined for exact
full-width scaling without JS, light/dark schemes, clickable nix
attrset profile with project links, robots.txt and eval-able
/profile.nix.

+252 -1
+17 -1
2configs/websites/lassulus.nix
··· 1 1 { config, pkgs, ... }: 2 + let 3 + # ANSI-terminal-style homepage, inline HTML with clickable links. The IBM 4 + # VGA webfont (CC BY-SA 4.0, int10h.org/oldschool-pc-fonts) is base64-inlined 5 + # so the page is a single self-contained file. 6 + webroot = pkgs.runCommand "lassul.us-webroot" { } '' 7 + mkdir $out 8 + substitute ${./lassul.us/index.html} $out/index.html \ 9 + --replace-fail @font_woff_b64@ "$(base64 -w0 ${./lassul.us/Web437_IBM_VGA_8x16.woff})" 10 + cp ${./lassul.us/robots.txt} $out/robots.txt 11 + cp ${./lassul.us/profile.nix} $out/profile.nix 12 + ''; 13 + in 2 14 { 3 15 imports = [ 4 16 ./default.nix ··· 21 33 enableACME = true; 22 34 default = true; 23 35 locations."/".extraConfig = '' 24 - root /srv/http/lassul.us; 36 + root ${webroot}; 37 + ''; 38 + locations."= /profile.nix".extraConfig = '' 39 + root ${webroot}; 40 + default_type text/plain; 25 41 ''; 26 42 locations."= /hosts".extraConfig = '' 27 43 alias ${pkgs.krebs-hosts_combined};
2configs/websites/lassul.us/Web437_IBM_VGA_8x16.woff

This is a binary file and will not be displayed.

+182
2configs/websites/lassul.us/index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 + <title>lassulus</title> 7 + <meta 8 + name="description" 9 + content="lassulus - freelance NixOS & infrastructure consultant in Berlin. nixpkgs contributor, clan core developer, krebs & c-base member. Available for hire." 10 + /> 11 + <link rel="canonical" href="https://lassul.us/" /> 12 + <script type="application/ld+json"> 13 + { 14 + "@context": "https://schema.org", 15 + "@type": "Person", 16 + "name": "lassulus", 17 + "url": "https://lassul.us", 18 + "jobTitle": "NixOS & infrastructure consultant", 19 + "address": { 20 + "@type": "PostalAddress", 21 + "addressLocality": "Berlin", 22 + "addressCountry": "DE" 23 + }, 24 + "memberOf": { 25 + "@type": "OrganizationRole", 26 + "roleName": "Treasurer", 27 + "memberOf": { 28 + "@type": "Organization", 29 + "name": "NixOS Foundation", 30 + "url": "https://nixos.org" 31 + } 32 + }, 33 + "sameAs": [ 34 + "https://github.com/lassulus", 35 + "https://matrix.to/#/@lassulus:lassul.us" 36 + ] 37 + } 38 + </script> 39 + <!-- 40 + Font: "Web437 IBM VGA 8x16" from The Ultimate Oldschool PC Font Pack 41 + (int10h.org/oldschool-pc-fonts), CC BY-SA 4.0. Inlined at build time. 42 + Its metrics are exact: advance = 0.5em, line height = 1em, so the 43 + 80-column art is 40em wide and font-size: calc(100cqw / 40) makes it 44 + fill the viewport width with no JS. 45 + --> 46 + <style> 47 + @font-face { 48 + font-family: "Web437 IBM VGA 8x16"; 49 + src: url("data:font/woff;base64,@font_woff_b64@") format("woff"); 50 + } 51 + :root { 52 + color-scheme: dark light; 53 + --bg: #000; 54 + --fg: #ccc; 55 + --art: #ddd; 56 + --str: #7c7; 57 + --bool: #c96; 58 + --cmt: #888; 59 + } 60 + @media (prefers-color-scheme: light) { 61 + :root { 62 + --bg: #f2efe6; /* paper terminal */ 63 + --fg: #333; 64 + --art: #222; 65 + --str: #171; 66 + --bool: #941; 67 + --cmt: #777; 68 + } 69 + } 70 + html { 71 + background: var(--bg); 72 + overflow-x: hidden; /* guard against sub-pixel rounding */ 73 + } 74 + body { 75 + margin: 0; 76 + color: var(--fg); 77 + container-type: inline-size; 78 + font-family: "Web437 IBM VGA 8x16", monospace; 79 + } 80 + pre { 81 + margin: 0; 82 + font-family: 83 + "Web437 IBM VGA 8x16", monospace; /* UA pre{monospace} beats inheritance */ 84 + padding-bottom: 1em; 85 + font-size: calc(100vw / 40); /* fallback: browsers without cq units */ 86 + font-size: calc(100cqw / 40); /* 80 cols x 0.5em, scrollbar excluded */ 87 + line-height: 1; /* VGA cell: 8x16 */ 88 + } 89 + .art { 90 + color: var(--art); 91 + } 92 + .s { 93 + color: var(--str); 94 + } 95 + .b { 96 + color: var(--bool); 97 + } 98 + .c { 99 + color: var(--cmt); 100 + } 101 + a { 102 + color: inherit; 103 + text-decoration: underline dotted; 104 + } 105 + a:hover, 106 + a:focus { 107 + background: var(--str); 108 + color: var(--bg); 109 + text-decoration: none; 110 + } 111 + .cursor { 112 + background: var(--fg); 113 + animation: blink 1.2s steps(1) infinite; 114 + } 115 + @keyframes blink { 116 + 50% { 117 + background: transparent; 118 + } 119 + } 120 + </style> 121 + </head> 122 + <body> 123 + <pre><span class="art"> ▀███▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄██ 124 + █▒▒█ ▄██████ ██████▄ ██████▄ ████ ████ █▒▒█ ████ ████ ██████▄ 125 + █▒▒█ ▄████▒▒▒█ █▒▒▒████▄ █▒▒▒████▄ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒▒████▄ 126 + █▒▒█ █▒▒█ █▒▒█▄▄▄▄▄ █▒▒█▄▄▄▄▄ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█▄▄▄▄▄ 127 + █▒▒█ █████▒▒▒█ █▒▒▒▒▒▒▒█ █▒▒▒▒▒▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒▒▒▒▒▒█ 128 + █░░█ █░░░█░░░█ ▀▀▀▀▀█░░█ ▀▀▀▀▀█░░█ █░░█ █░░█ █░░█ █░░█ █░░█ ▀▀▀▀▀█░░█ 129 + █░░░███ █░░█▄█░░█ ▀████░░░█ ▀████░░░█ █░░░█░░░█ █░░░███ █░░░█░░░█ ▀████░░░█ 130 + ███████ ███████▀ ▀██████ ▀██████ ███████▀ ███████ ███████▀ ▀████░█ 131 + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ 132 + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀███████████ 133 + 134 + ┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼</span> 135 + 136 + { 137 + name = <span class="s">"lassulus"</span>; 138 + location = <span class="s">"berlin"</span>; 139 + skills = [ 140 + <a class="s" href="https://nixos.org">"nixos"</a> 141 + <a class="s" href="https://github.com/Lassulus/superconfig">"infrastructure"</a> 142 + <a class="s" href="https://github.com/lassulus">"programming"</a> 143 + ]; 144 + crews = [ 145 + <a class="s" href="https://nixos.org/blog/announcements/2025/foundation-board-2025/">"NixOS Foundation (treasurer)"</a> 146 + <a class="s" href="https://krebsco.de">"krebs"</a> 147 + <a class="s" href="https://c-base.org">"c-base"</a> 148 + ]; 149 + services = [ 150 + <span class="s">"nix/nixos consulting"</span> 151 + <span class="s">"fleet deployments"</span> 152 + <span class="s">"self-hosted infra: mail, matrix, dns, vpn, ci"</span> 153 + ]; 154 + projects = { 155 + nixpkgs = <a class="s" href="https://github.com/NixOS/nixpkgs/commits?author=Lassulus">"contributor &amp; maintainer"</a>; 156 + clan = <a class="s" href="https://clan.lol">"clan.lol"</a>; 157 + disko = <a class="s" href="https://github.com/nix-community/disko">"declarative disk partitioning"</a>; <a class="c" href="https://www.youtube.com/watch?v=bKx7V917b2Q"># video</a> 158 + nixos-anywhere = <a class="s" href="https://github.com/nix-community/nixos-anywhere">"install nixos over ssh"</a>; <a class="c" href="https://www.youtube.com/watch?v=4sypfTBuEbA"># video</a> 159 + nix-writers = <a class="s" href="https://github.com/NixOS/nixpkgs/tree/master/pkgs/build-support/writers">"scripts in any language (pkgs.writers)"</a>; <a class="c" href="https://www.youtube.com/watch?v=qRE6kf30u4g"># video</a> 160 + wrappers = <a class="s" href="https://github.com/Lassulus/wrappers">"wrapped executables via modules"</a>; <a class="c" href="https://www.youtube.com/watch?v=Zzvn9uYjQJY"># video</a> 161 + thisWebsite = <a class="s" href="https://github.com/Lassulus/superconfig/tree/master/2configs/websites/lassul.us">"self-hosted with nix"</a>; 162 + }; 163 + github = <a class="s" href="https://github.com/lassulus">"https://github.com/lassulus"</a>; 164 + matrix = <a class="s" href="https://matrix.to/#/@lassulus:lassul.us">"@lassulus:lassul.us"</a>; 165 + email = <a href="#" id="email">x: x.click_to_uncover</a>; 166 + availableForHire = <span class="b">true</span>; 167 + }<span class="cursor"> </span></pre> 168 + <script> 169 + document.getElementById("email").addEventListener( 170 + "click", 171 + function (e) { 172 + e.preventDefault(); 173 + var addr = ["consulting", "lassul.us"].join("@"); 174 + this.textContent = '"' + addr + '"'; 175 + this.classList.add("s"); 176 + this.href = "mailto:" + addr; 177 + }, 178 + { once: true }, 179 + ); 180 + </script> 181 + </body> 182 + </html>
+48
2configs/websites/lassul.us/profile.nix
··· 1 + # machine-readable profile of https://lassul.us 2 + # eval me: 3 + # nix eval --impure --expr 'import (builtins.fetchurl "https://lassul.us/profile.nix")' 4 + # keep in sync with index.html 5 + { 6 + name = "lassulus"; 7 + location = "berlin"; 8 + skills = [ 9 + "nixos" 10 + "infrastructure" 11 + "programming" 12 + ]; 13 + crews = [ 14 + "NixOS Foundation (treasurer)" 15 + "krebs" 16 + "c-base" 17 + ]; 18 + services = [ 19 + "nix/nixos consulting" 20 + "fleet deployments" 21 + "self-hosted infra: mail, matrix, dns, vpn, ci" 22 + ]; 23 + projects = { 24 + nixpkgs = "https://github.com/NixOS/nixpkgs/commits?author=Lassulus"; 25 + clan = "https://clan.lol"; 26 + disko = { 27 + repo = "https://github.com/nix-community/disko"; 28 + video = "https://www.youtube.com/watch?v=bKx7V917b2Q"; 29 + }; 30 + nixos-anywhere = { 31 + repo = "https://github.com/nix-community/nixos-anywhere"; 32 + video = "https://www.youtube.com/watch?v=4sypfTBuEbA"; 33 + }; 34 + nix-writers = { 35 + repo = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/build-support/writers"; 36 + video = "https://www.youtube.com/watch?v=qRE6kf30u4g"; 37 + }; 38 + wrappers = { 39 + repo = "https://github.com/Lassulus/wrappers"; 40 + video = "https://www.youtube.com/watch?v=Zzvn9uYjQJY"; 41 + }; 42 + thisWebsite = "https://github.com/Lassulus/superconfig/tree/master/2configs/websites/lassul.us"; 43 + }; 44 + github = "https://github.com/lassulus"; 45 + matrix = "@lassulus:lassul.us"; 46 + email = "consulting@lassul.us"; 47 + availableForHire = true; 48 + }
+5
2configs/websites/lassul.us/robots.txt
··· 1 + # welcome, machines 2 + User-agent: * 3 + Allow: / 4 + 5 + # structured data: JSON-LD in /, nix attrset at /profile.nix