Single Sign-On for Your Self-Hosted Universe http://voidauth.app
  • TypeScript 77.3%
  • HTML 14.6%
  • EJS 3.7%
  • CSS 1.9%
  • SCSS 1.9%
  • Other 0.6%
Find a file
2026-04-26 17:34:28 -05:00
.github Fixing test workflow 2025-12-22 10:07:14 -06:00
.husky Dockerfile use lts node. 2025-05-02 21:28:03 -05:00
.vscode Updates to translation logic and translations. 2026-03-26 22:59:25 -05:00
default_email_templates Small fixes while testing user onboarding. 2026-04-04 08:14:33 -05:00
docs Fix setting IP address as APP_URL. 2026-04-19 15:57:38 -05:00
frontend Fix Client ID field being editable when updating an OIDC App. 2026-04-26 16:23:40 -05:00
migrations Allow Groups to be Auto Assigned to Invitations. 2026-04-12 10:12:08 -05:00
server Fix Client ID field being editable when updating an OIDC App. 2026-04-26 16:23:40 -05:00
shared Add forbidden page that shows in specific unrecoverable situations where the user could not take action to gain access on their own. 2026-04-25 08:08:38 -05:00
theme Added APP_FONT Environment Variable 2026-01-03 00:49:31 -06:00
.dockerignore Fixing issues with docker build 2025-04-20 14:59:34 -05:00
.example.env Added CONTRIBUTING.md 2025-08-02 13:33:55 -05:00
.gitattributes Disable lfs, trouble with README 2025-07-22 19:29:04 -05:00
.gitignore Finish expire users logic 2026-04-08 17:34:27 -05:00
.prettierignore Add prettier specifically for html files. 2025-06-19 22:45:51 -05:00
.prettierrc Formatting all html files with prettier. 2025-06-19 22:45:51 -05:00
compose.yml Finish expire users logic 2026-04-08 17:34:27 -05:00
CONTRIBUTING.md Fix typo in CONTRIBUTING.md 2025-11-16 10:02:06 -06:00
Dockerfile Fix Client ID field being editable when updating an OIDC App. 2026-04-26 16:23:40 -05:00
esbuild.config.ts Finish expire users logic 2026-04-08 17:34:27 -05:00
eslint.config.js Fix linting rule 2026-03-27 22:44:55 -05:00
knexfile.js Allow Groups to be Auto Assigned to Invitations. 2026-04-12 10:12:08 -05:00
LICENSE updating app case, updating readme 2025-06-16 21:42:13 -05:00
package-lock.json Update dependencies 2026-04-25 08:50:51 -05:00
package.json Update dependencies 2026-04-25 08:50:51 -05:00
README.md Continue DB Migration Fix 2026-04-18 17:17:21 -05:00
SECURITY.md Updating SECURITY.md with correct email 2025-06-24 23:00:49 -05:00
tsconfig.json Fix Client ID field being editable when updating an OIDC App. 2026-04-26 16:23:40 -05:00

GitHub Actions Workflow Status GitHub Release GitHub License GitHub Repo stars


VoidAuth logo

Single Sign-On for Your Self-Hosted Universe



Login Portal

What is VoidAuth

VoidAuth is an open-source SSO authentication and user management provider that stands guard in front of your self-hosted applications. It is easy-to-use for admins and end-users, supports nice-to-have features like passkeys, user invitation, self-registration, email support, and more!

Features:

  • 🌐 OpenID Connect (OIDC) Provider
  • 🔄 Proxy ForwardAuth
  • 👤 User and Groups Management
  • 📨 User Self-Registration and Invitations
  • 🎨 Customizable (Logo, Title, Theme Color, Email Templates)
  • 🔑 Multi-factor Authentication, Passkeys, and Passkey-Only Accounts
  • 📧 Secure Password Reset with Email Verification
  • 🔒 Encryption-At-Rest with Postgres or SQLite Database

Admin Panel

Administrators can access the Admin Panel in the sidebar menu, where they can manage users and settings.

An Admin Page with the Admin Side Panel Open

Quick Start

Getting started with VoidAuth is straightforward, the recommended approach is to add VoidAuth to a compose.yml file:

services:
  # ---------------------------------
  # Your reverse-proxy service here:
  # caddy, traefik, nginx, etc.
  # ---------------------------------

  voidauth: 
    image: voidauth/voidauth:latest
    restart: unless-stopped
    volumes:
      - ./voidauth/config:/app/config
    environment:
      # Required environment variables
      # More environment variable options can be found 
      #   on the Getting Started page.
      APP_URL: # required, ex. https://auth.example.com
      STORAGE_KEY: # required
      DB_PASSWORD: # required, same as voidauth-db POSTGRES_PASSWORD
      DB_HOST: voidauth-db # required
    depends_on:
      voidauth-db:
        condition: service_healthy

  voidauth-db:
    image: postgres:18
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: # required, same as voidauth DB_PASSWORD
    volumes:
      - db:/var/lib/postgresql/18/docker
    healthcheck:
      test: "pg_isready -U postgres -h localhost"

volumes:
  db:

After creating/updating the compose.yml file and filling in the required environment variables, run docker compose up -d and visit your APP_URL to get started.

Important

After VoidAuth starts for the first time, find a password reset link for the initial admin account in the logs: docker compose logs voidauth. Use this account and change the default username or create a separate user for yourself.

Tip

Users are created by administrators on the Invitations page by creating a new Invitation, then sending the invitation link.

Please see the Getting Started page for setup details and configuration options.

Support

Issues, Suggestions, and Feature Requests should be added as Issues of the appropriate type. For Help and Support, Q&A, or anything else; open a Discussion. This project is actively monitored, I will likely respond quickly.

Contributing

Documentation

Documentation, especially app setup guides, are largely community driven and so contribution is highly encouraged. If you have VoidAuth OIDC setup with an app that is not already listed in the OIDC App Guides then please consider contributing a guide. When writing documentation follow the existing style of the page and when finished open a PR for review.

Features and Fixes

Please read the CONTRIBUTING.md to see setup guide. Collaboration in an issue or discussion before opening a PR will improve changes of merging, but is not required.

Disclaimer

VoidAuth has not been audited and uses 3rd party packages for much of its functionality, use at your own risk.

Credits

This project would not be possible without the incredible work of others. For a full list of dependencies, see the package.json and frontend/package.json files.

Sponsors

GitTimeraider dl09r