selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
docker-sso-server logo

Self-host docker-sso-server

1.1.6

Lightweight self-hosted SSO server with OAuth2 and OTP

ReleaseOpen SourceCC0-1.0
Updated5 years ago
LanguageShell
Setup difficultyEasy
Stars
188
CPU
<1%
RAM
~15MiB
Port
80 (HTTP server)
Docker
soulteary/sso-server
Login, OTP login, OTP binding, and account pages

What is docker-sso-server?

docker-sso-server is a minimal self-hosted SSO service written for homelab use. It provides OAuth2 and OTP (TOTP) login flows, a health check endpoint, and an account info page. The server is designed to work as a Traefik Forward Auth backend and includes a dedicated Outline OIDC endpoint. Configuration is done entirely through environment variables such as USER_PASS, CLIENT_ID, CLIENT_SECRET, and optional multi-client settings (CLIENT_1 through CLIENT_5). The container listens on port 80 by default (configurable via PORT) and uses a license file to initialize the username and email. No external database is required. The project is licensed under CC0-1.0 and last released in September 2021.

Should you self-host docker-sso-server?

docker-sso-server scores 43/100 on selfhost.directory (how scoring works) and ranks #31 of 40 in Authentication. It has 188 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is CC0-1.0-licensed and written mostly in Shell.

Its closest alternative on selfhost.directory is keycloak (86/100, 37 568 stars). It scores higher overall, so compare the two before you pick. See docker-sso-server vs keycloak side by side.

Features

  • Account info page
  • Fingerprint verification
  • Graceful Shutdown
  • Health check endpoint
  • License-based user initialization
  • Multi-client configuration
  • OAuth2 Authentication
  • OTP (TOTP) authentication
  • Outline OIDC integration
  • Traefik Forward Auth backend

docker-sso-server README

How to configure docker-sso-server

  • CLIENT_IDSjVN7VhgOskuClient ID used for OAuth2 authorization

    Client ID used for OAuth2 authorization

  • CLIENT_ISTRUSTEDfalseIf true, authorized applications can use user info without explicit user consent

    If true, authorized applications can use user info without explicit user consent

    values: true, false

  • CLIENT_NAMEGENERAL SSO SERVERDisplay name for the client, used in pages and CLI output

    Display name for the client, used in pages and CLI output

  • CLIENT_SECRETt3Qt89nv9u5OClient Secret used for OAuth2 authorization

    Client Secret used for OAuth2 authorization

  • LICENSEPRESET_LICENSE_TEXTUser license agreement content (alternative to LICENSE_FILE)

    User license agreement content (alternative to LICENSE_FILE)

  • LICENSE_FILEPath to user license agreement file (alternative to LICENSE)

    Path to user license agreement file (alternative to LICENSE)

  • OTP_OPTIONUser-specified OTP parameters (key and period)

    User-specified OTP parameters (key and period)

    values: KEY:...;PERIOD:...

  • PORT80Program listening port in the docker container

    Program listening port in the docker container

  • SERVER_DOMAINDomain name, only required in Traefik docker-compose.yml

    Domain name, only required in Traefik docker-compose.yml

  • SERVER_NAMESSO ServerServer name used for OTP tools, web pages, and CLI output

    Server name used for OTP tools, web pages, and CLI output

  • SESSION_SECRETRANDOM STRING()Session secret for page or command line display

    Session secret for page or command line display

  • USER_PASSpasswordThe account password

    The account password

docker-sso-server releases & version history

More in Identity & Auth

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…