PINNED {{ pinnedAnnouncement.title }} {{ pinnedAnnouncement.body }}
All roots lead here

Yggdrasil

A homelab and the notes from running it. The blog is open to everyone; the services behind it are invitation-only.

Read the blog How to access
Latest from the blog
{{ p.date }}
{{ p.title }}

{{ p.excerpt }}

PRIVATE · INVITATION ONLY The services themselves live behind VoidAuth. How to access →
{{ statusSummary }}

Welcome back

The tree is open. One session, every branch.

Open the directory Announcements
Branches
{{ s.fn }} {{ s.name }} {{ s.status }}
Latest announcement
{{ latestAnnouncement.date }}
{{ latestAnnouncement.title }}

{{ latestAnnouncement.body }}

New on the blog: {{ latestPostTitle }}

Announcements

From the root

Send test to me {{ postLabel }}
smtp.notflicks.win:587 · relay connected · {{ subscriberCount }} subscribers {{ subscribersToggleLabel }}
Pending approval
{{ pr.email }} requested {{ pr.requested }} Approve Decline
Add
{{ sub.email }} {{ sub.bounceLabel }} added {{ sub.added }} {{ sub.pauseLabel }} Remove
No subscribers yet. Add an address above.
Paused addresses stay on the list but are skipped when an announcement is emailed. Bounce counts come from the relay log.
Queued {{ queuedCount }}
{{ q.date }} · {{ q.inDays }}
{{ q.title }}
{{ q.kind }}
Cancel Save
PINNED SCHEDULED {{ a.dateLabel }} · will email subscribers · emailed to subscribers {{ a.emailedLabel }} · edited Post now {{ a.pinLabel }} Edit Delete
{{ a.title }}

{{ a.body }}

Delivered to
{{ a.recipientLine }}
via smtp.notflicks.win:587
Blog

Notes from the canopy

{{ publishLabel }}
SCHEDULED {{ p.dateLabel }} {{ t }} Publish now Edit Delete
{{ p.title }}

{{ p.excerpt }}

Cancel Save
The public journal is still growing.

New notes will appear here when there is something useful to share from the lab.

← All posts

{{ post.title }}

{{ post.date }} {{ t }}

{{ para }}

Draft, full post content to come.

PRIVATE · INVITATION ONLY

How to access

Everything past this point is invitation-only. Here's what to expect, and deliberately nothing about what's behind the door.

{{ s.n }}
{{ s.title }}

{{ s.body }}

First sign-in, step by step

Got your invite? Here's the one-time VoidAuth setup.

{{ step.n }} {{ step.text }}
Sign in with VoidAuth
Directory

The branches

Every service under the tree. 

{{ s.fn }} {{ s.description }} {{ s.metaLine }} {{ s.status }}

No branches match "{{ query }}".

The living map

The World Tree

One root, four branches, and everything that keeps the homelab connected.

Yggdrasil tree growing from interlocking gears
YGGDRASIL {{ worldTreeSummary }}
{{ b.name }}
{{ b.fn }}
{{ b.status }} · {{ b.meta }}
Click a branch to open it, or follow a leaf into its guides, FAQ, or uptime.
{{ service.tagline }}

{{ service.fn }}

powered by {{ service.name }}
{{ service.status }}
{{ service.url }} ↗ {{ service.name }} · {{ service.meta }} Report an issue

{{ service.overview }}

Edit overview
Cancel Save
Start here
{{ g.title }} {{ g.stepCount }}
Open {{ service.name }} ↗
{{ g.title }} Edit Delete {{ g.stepCount }} {{ g.chevron }}
one step per line Cancel Save

{{ g.intro }}

{{ step.n }} {{ step.text }} {{ step.shotLabel }}
Screenshot
Reset
{{ g.tip }}
one step per line Cancel Add guide
Add guide
{{ uptime.label }}
{{ uptime.avg }}
Incident days
{{ uptime.incidents }}
Last incident
{{ uptime.lastIncident }}
Daily uptime
{{ r.label }}
health check every 60s · internal
{{ uptime.firstDay }} today
100% partial outage major outage
{{ f.q }}

{{ f.a }}

Edit Delete
Cancel Save
Cancel Add question
Add question
Scripts · public

The toolshed

Scripts from the lab. 

admin group only, via VoidAuth OIDC Publish
{{ s.name }} {{ s.language }} {{ s.description }} {{ s.chevron }}
{{ t }} Edit Delete Copy
{{ s.codeEl }}
Cancel Save
The toolshed is still being stocked.

Reusable scripts will appear here as they are cleaned up and ready to share.

Nothing in the shed matches that.

VoidAuth

Your account

One identity, every branch. Managed by VoidAuth.

auth.notflicks.win ↗
{{ (this.state.userName || "U").charAt(0).toUpperCase() }}
{{ this.state.userName || "member" }}
{{ this.state.userEmail || "" }}
Groups
{{ groupsLine }}
from VoidAuth OIDC
Password
••••••••••••
Change password
Sessions
This device
Sign out everywhere

One VoidAuth session covers every service in the directory, sign in once, the whole tree opens.

PRIVATE · INVITATION ONLY

This branch is behind VoidAuth

If you have an account, sign in and the full directory will open up.

Sign in with VoidAuth
Yggdrasil · self-hosted · no telemetry
Delete {{ confirmLabel }}? You can undo right after.
{{ toastMsg }} Undo