<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zen IdP, A tiny, declarative OIDC provider in Go (YAML-based, zero external DB required)]]></title><description><![CDATA[<p dir="auto">Hey everyone!</p>
<p dir="auto">I got tired of spinning up heavy auth stacks that gobble up hundreds of MBs of RAM and require separate database containers just to get simple Single Sign-On for a few homelab services. So, I built <strong>Zen IdP</strong>.</p>
<p dir="auto">It’s a lightweight OpenID Connect provider written in Go that runs as a single binary or container.</p>
<p dir="auto"><strong>What it is:</strong> A simple OIDC provider designed for local services and internal tools where users sign in using just their username and a TOTP code (no user passwords stored or managed).</p>
<p dir="auto"><strong>What it isn't:</strong> A heavy enterprise identity platform with self-signup, password resets, or LDAP sync. It isn't trying to replace Keycloak or Authentik for complex enterprise environments.</p>
<p dir="auto"><strong>Key homelab-friendly features:</strong></p>
<ul>
<li><strong>Identity as Code:</strong> Users, applications, and custom claims are declared entirely in YAML files.</li>
<li><strong>Zero database servers:</strong> Disposable session state lives in a local SQLite file. If you lose or wipe the DB, identity data isn't lost—users just sign in again with their same TOTP codes.</li>
<li><strong>CI/CD validation:</strong> Includes a <code>validate-config</code> command to test your YAML files in Git workflows before deploying.</li>
<li><strong>Ready-to-run examples:</strong> The repo includes Docker Compose setups for Grafana, OAuth2 Proxy, Gatus, OliveTin, and Zot out of the box.</li>
</ul>
<p dir="auto"><a href="https://cdn.jsdelivr.net/gh/varavelio/zen-idp@57b8ff/assets/demo/grafana-demo.mp4" rel="nofollow ugc"><strong>Watch a 1-minute video demo (using Grafana as an example OIDC client)</strong></a></p>
<p dir="auto"><em>A quick note on transparency:</em> English is not my native language, so I used AI to help polish the docs and post text. I also used AI assistance to implement some features, but every line of code was designed, supervised, and tested by me.</p>
<p dir="auto">It's MIT licensed: <a href="https://github.com/varavelio/zen-idp" rel="nofollow ugc">https://github.com/varavelio/zen-idp</a></p>
<p dir="auto">I’d love to hear your feedback, thoughts, or any questions about integrating it into your setup!</p>
]]></description><link>https://forum.ieu.app/topic/32fd2b9f-ba40-459d-883f-7da954bf1d4e/zen-idp-a-tiny-declarative-oidc-provider-in-go-yaml-based-zero-external-db-required</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 05:59:10 GMT</lastBuildDate><atom:link href="https://forum.ieu.app/topic/32fd2b9f-ba40-459d-883f-7da954bf1d4e.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Aug 2026 17:49:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zen IdP, A tiny, declarative OIDC provider in Go (YAML-based, zero external DB required) on Wed, 19 Aug 2026 18:31:22 GMT]]></title><description><![CDATA[<p dir="auto">Please read the community-rules...</p>
]]></description><link>https://forum.ieu.app/post/https://lemmy.world/comment/25381243</link><guid isPermaLink="true">https://forum.ieu.app/post/https://lemmy.world/comment/25381243</guid><dc:creator><![CDATA[tolstoy@lemmy.world]]></dc:creator><pubDate>Wed, 19 Aug 2026 18:31:22 GMT</pubDate></item></channel></rss>