Add contact page
This commit is contained in:
parent
ce57c9a62c
commit
80f33f9095
|
@ -52,6 +52,13 @@
|
|||
enableACME = true;
|
||||
forceSSL = true;
|
||||
};
|
||||
|
||||
virtualHosts."sbruder.de" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
|
||||
root = pkgs.sbruder.contact;
|
||||
};
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||
systemd.services.nginx.serviceConfig.SupplementaryGroups = lib.singleton "keys";
|
||||
|
|
17
pkgs/contact-page/default.nix
Normal file
17
pkgs/contact-page/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ lib, stdenvNoCC }:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
name = "sbruder-contact";
|
||||
|
||||
src = ./src;
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp * $out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
45
pkgs/contact-page/src/index.html
Normal file
45
pkgs/contact-page/src/index.html
Normal file
|
@ -0,0 +1,45 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>Simon Bruder: Contact</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1 id="name">Simon Bruder</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Email</td>
|
||||
<td><a id="email" href="#">(requires javascript)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Matrix</td>
|
||||
<td><a id="matrix" href="#">(requires javascript)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>GitHub</td>
|
||||
<td><a href="https://github.com/sbruder">sbruder</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>GitLab</td>
|
||||
<td><a href="https://gitlab.com/sbruder">sbruder</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gitea</td>
|
||||
<td><a href="https://git.sbruder.de/simon">git.sbruder.de</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PGP</td>
|
||||
<td><a href="pubkey.asc">47E7 559E 037A 3565 2DBB F8AA 8D3C 82F9 F309 F8EC</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SSH</td>
|
||||
<td><a href="https://git.sbruder.de/simon.keys">public keys (dynamic)</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<script src="main.js"></script>
|
||||
</body>
|
||||
</html>
|
18
pkgs/contact-page/src/main.js
Normal file
18
pkgs/contact-page/src/main.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
(() => {
|
||||
const givenName = document.getElementById('name').innerText.split(" ")[0].toLowerCase()
|
||||
const domain = location.host
|
||||
|
||||
if (domain !== "sbruder.de") {
|
||||
return
|
||||
}
|
||||
|
||||
const mailAddress = givenName + '@' + domain
|
||||
const mailEl = document.getElementById('email')
|
||||
mailEl.innerText = mailAddress
|
||||
mailEl.href = `mailto:${mailAddress}`
|
||||
|
||||
const matrixAddress = '@' + givenName + ':' + domain
|
||||
const matrixEl = document.getElementById('matrix')
|
||||
matrixEl.innerText = matrixAddress
|
||||
matrixEl.href = `https://matrix.to/#/${matrixAddress}`
|
||||
})()
|
52
pkgs/contact-page/src/pubkey.asc
Normal file
52
pkgs/contact-page/src/pubkey.asc
Normal file
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
R7VFGCA=
|
||||
=7eg7
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
18
pkgs/contact-page/src/style.css
Normal file
18
pkgs/contact-page/src/style.css
Normal file
|
@ -0,0 +1,18 @@
|
|||
body {
|
||||
font-family: "PT Sans", "Helvetica", "Helvetica Neue", "Roboto", "Arimo", "Arial", sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 500px;
|
||||
margin: 0 auto 50px;
|
||||
}
|
||||
|
||||
tr td:first-child::after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
font-weight: 600;
|
||||
}
|
|
@ -11,6 +11,7 @@ in
|
|||
wordclock-dimmer = prev.python3Packages.callPackage ./wordclock-dimmer { };
|
||||
|
||||
sbruder = prev.recurseIntoAttrs {
|
||||
contact = callPackage ./contact-page { };
|
||||
imprint = callPackage ./imprint { };
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue