- TypeScript 45.3%
- CSS 40.2%
- Astro 6.6%
- Nix 5.8%
- JavaScript 2.1%
| public | ||
| src | ||
| .gitignore | ||
| astro.config.mjs | ||
| flake.lock | ||
| flake.nix | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-lock.yaml.sri | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
_ _ _ _ _
| |_| | || |_ __ ___ _ __ _ __ _ _| |_ ___ _ _
| _|_ _| _|_/ _/ _ \ ' \| '_ \ || | _/ -_) '_|
\__| |_| \__(_)__\___/_|_|_| .__/\_,_|\__\___|_|
|_|
a joint hackerspace (dma.space + devhack) initiative to allow ourselves to host whatever the hell we want on our hackerspace infras to encourage experimentation, hacking and learning!
joining us
we'll be assuming that you already have an account in either of the hackerspaces. if you don't, consider coming to one of our open nights and joining the community!
- dma.space chat side: Zulip - #infrastructure > t4t.computer
- devhack.net chat side: TODO
getting compute
to have something to hack on, you'll need to find yourself some compute. fortunately, both hackerspaces provide free infra for this!
dma.space
users can create VMs on this infra: pve.dma.space (login with your dma.space account)
devhack
come see devhack2.net!
architecture
[!NOTE] Work in Progress!
Parts in this architecture are still being built and may not be fully functional yet. Come help us build it!
architecture-beta
service internet(mdi:earth)[Internet]
group dma(cloud)[dma.space]
group dma_subnet(cloud)[10.20.xx.xx (federation vlan)] in dma
service dma_router(mdi:router)[Routing Peer] in dma_subnet
service dma_vm(mdi:server)[Member VMs] in dma_subnet
service dma_svc(mdi:cogs)[Services] in dma_subnet
service dma_idp(mdi:badge-account-horizontal)[IdP] in dma
group t4t(cloud)[t4t.computer]
service t4t_nginx(mdi:router-network)[NGINX Proxy Manager] in t4t
service netbird_mgmt(mdi:vpn)[Netbird Control] in t4t
service t4t_dex(mdi:shield-key)[Dex] in t4t
group dvk2(cloud)[devhack2.net]
group dvk2_subnet(cloud)[10.xx.xx.xx] in dvk2
service dvk2_router(mdi:router)[Routing Peer] in dvk2_subnet
service dvk2_svc(mdi:cogs)[Services] in dvk2_subnet
service dvk2_vm(mdi:server)[Member VMs] in dvk2_subnet
service dvk2_idp(mdi:badge-account-horizontal)[IdP] in dvk2
align row dma_router t4t_nginx dvk2_router
align row dma_vm dma_svc netbird_mgmt dvk2_svc dvk2_vm
align column dma_svc dma_idp
align column dvk2_svc dvk2_idp
align row dma_idp t4t_dex dvk2_idp
internet:B --> T:t4t_nginx
t4t_nginx:B --> T:netbird_mgmt
t4t_nginx:B --> T:t4t_dex
dma_vm:R --> L:dma_svc
dvk2_vm:L --> R:dvk2_svc
dma_router:R <--> L:dvk2_router
dma_svc:T <--> B:dma_router
dvk2_svc:T <--> B:dvk2_router
dma_idp:R --> L:t4t_dex
dvk2_idp:L --> R:t4t_dex
components
- Netbird: self-hosted WireGuard mesh control plane in t4t.computer, orchestrating P2P connections and subnet routing between hackerspaces without hairpinned traffic.
- Routing Peers: dedicated node per VLAN advertising subnet routes without masquerading (pure L3 routing) so cross-space service traffic flows directly P2P over WireGuard.
- NGINX Proxy Manager: edge ingress
reverse proxy terminating public internet traffic for
*.t4t.computer's custom services. - Dex: federated OIDC/OAuth2 broker connecting to each space's IdP over the Netbird WireGuard mesh (encrypted in transit with P2P LAN negotiation for local dma traffic).
- IdP: each space's user account and auth provider.
- Member VMs: member-managed compute and services on local Proxmox clusters.
- subnets:
10.20.xx.xxfor dma.space10.xx.xx.xxfor devhack- routed directly peer-to-peer between the Netbird routing peers.
t4t.computer has no physical network of its own and instead exists with parts of it hosted across both hackerspaces. you'll need to exercise communicating across hackerspaces to fully trace them down!
contact
- diamond: email
- interested in being in this list? join us!