the gate to the foundry
  • TypeScript 67.8%
  • HTML 19.2%
  • CSS 5.4%
  • SCSS 4.3%
  • EJS 2.9%
  • Other 0.4%
Find a file
Adam Ayala 8228e4be1d
Some checks failed
Build and Push / build (push) Failing after 0s
ci: add Forgejo build workflow and update compose for Dockhand deploy
- Add .forgejo/workflows/build.yml: builds Docker image on push to main,
  pushes gate:latest and gate:<sha> to Forgejo container registry with
  registry-backed layer cache
- Copy test workflow to .forgejo/ so Forgejo Actions runs it on PRs
- Update compose.yml: pull from registry instead of building locally,
  use absolute /mnt/user/appdata/gate/ paths for Unraid/Dockhand

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 19:45:09 -05:00
.codegraph feat: Foundry retheme, admin pagination, and CLI fix (#479) 2026-06-25 08:10:36 -05:00
.forgejo/workflows ci: add Forgejo build workflow and update compose for Dockhand deploy 2026-06-26 19:45:09 -05:00
.github ci: comment out npm cache until runner is verified clean 2026-06-23 13:23:40 -05: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/superpowers chore: remove upstream docs and publish workflows 2026-06-23 10:34:05 -05:00
foundry-design feat: Foundry retheme, admin pagination, and CLI fix (#479) 2026-06-25 08:10:36 -05:00
frontend feat: self-host IBM Plex Sans and JetBrains Mono fonts 2026-06-25 13:06:46 -05:00
migrations Allow Groups to be Auto Assigned to Invitations. 2026-04-12 10:12:08 -05:00
server feat: Foundry retheme, admin pagination, and CLI fix (#479) 2026-06-25 08:10:36 -05:00
shared feat: Foundry retheme, admin pagination, and CLI fix (#479) 2026-06-25 08:10:36 -05:00
theme feat: self-host IBM Plex Sans and JetBrains Mono fonts 2026-06-25 13:06:46 -05:00
.dockerignore Fixing issues with docker build 2025-04-20 14:59:34 -05:00
.example.env chore: update env template and gitignore for gate volumes 2026-06-23 10:28:51 -05:00
.gitattributes Disable lfs, trouble with README 2025-07-22 19:29:04 -05:00
.gitignore feat: Foundry retheme, admin pagination, and CLI fix (#479) 2026-06-25 08:10:36 -05:00
.npmrc Update dependencies, set one week delay on dependency versions. 2026-05-13 22:43:45 -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 ci: add Forgejo build workflow and update compose for Dockhand deploy 2026-06-26 19:45:09 -05:00
crowdin.yml Update crowdin.yml 2026-05-14 20:27:52 -05:00
Dockerfile chore: docker compose setup for gate with local postgres profile 2026-06-23 10:31:39 -05:00
esbuild.config.ts Implement LDAP server 2026-05-17 15:38:33 +02:00
eslint.config.js Fix linting rule 2026-03-27 22:44:55 -05:00
HANDOFF.md docs: update handoff — fonts done, Dockhand deploy blocked 2026-06-25 14:01:37 -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
NOTICE docs: minimal README and NOTICE for gate lab fork 2026-06-23 10:33:17 -05:00
package-lock.json chore: rename npm package to gate 2026-06-23 10:26:41 -05:00
package.json chore: rename npm package to gate 2026-06-23 10:26:41 -05:00
README.md docs: minimal README and NOTICE for gate lab fork 2026-06-23 10:33:17 -05:00
tsconfig.json Fix Client ID field being editable when updating an OIDC App. 2026-04-26 16:23:40 -05:00

gate

Private lab SSO fork derived from VoidAuth. See NOTICE for attribution.

gate is an OpenID Connect provider with user management, passkeys, MFA, ProxyAuth, and LDAP support.

Prerequisites

  • Node.js >= 24.11
  • Docker Desktop (for container builds and compose)

Local development

npm ci
cd frontend; npm ci; cd ..
npx tsc
npm run server:build
cd frontend; npm run build; cd ..
node dist/index.mjs --help

Local test (compose Postgres)

copy .example.env .env
# Edit .env: set APP_URL, STORAGE_KEY, DB_PASSWORD
docker compose --profile local build
docker compose --profile local up -d

Uses bundled Postgres (gate-db service). Data volumes: ./gate/config, ./gate/db.

Deployment (external Postgres)

copy .example.env .env
# Edit .env:
#   DB_HOST=postgres.lab.internal
#   DB_USER=gate
#   DB_NAME=gate
#   DB_PASSWORD=<secret>
#   DB_SSL=true   # if required
#   APP_URL, STORAGE_KEY
docker compose up -d

Runs the gate app container only. DB_HOST must be reachable from the Docker network (use host IP or service hostname, not localhost unless using host networking).

Essential environment variables

Variable Required Description
APP_URL yes Public URL of gate (e.g. https://auth.lab.example)
STORAGE_KEY yes 32-byte hex encryption key
DB_HOST yes Postgres hostname (gate-db for local profile, or external server)
DB_PASSWORD yes Postgres password
DB_USER no Postgres user (default: postgres)
DB_NAME no Postgres database (default: postgres)
DB_SSL no Enable TLS to Postgres (default: false)
APP_TITLE no Display name (default: gate)

Build verification

npx tsc
npx eslint ./
npm run server:build
cd frontend; npm run build; cd ..
docker build --target build -t gate:build-test .
docker build -t gate/gate:latest .

ProxyAuth

If using ProxyAuth with a reverse proxy, session header is x-gate-session (not x-voidauth-session).