Management UI for magiclink-auth — a self-hosted, passwordless OIDC authentication server
336
Management UI for magiclink-auth — a self-hosted, passwordless OIDC authentication server built on magic links.
This container provides a Vue 3 SPA for administering users, clients, roles, RBAC rules, and SSO configuration. It authenticates against your magiclink-auth instance using its own PKCE OIDC flow — no separate credentials required.
A running magiclink-auth instance. See → jlcox1970/magiclink-auth
Register a PKCE public client against it before starting this container:
curl -X POST https://your-oidc-server/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "magic-auth-ui",
"redirect_uris": ["https://your-ui-host/auth/callback"],
"token_endpoint_auth_method": "none"
}'
Save the returned client_id — you'll need it below.
Create a config.js with your instance details:
window.MAGIC_AUTH_CONFIG = {
ISSUER_URL: "https://your-oidc-server",
CLIENT_ID: "your-registered-client-id",
REDIRECT_URI: "", // leave empty to auto-detect from window.location.origin
}
Run the container with it mounted:
docker run -d \
-p 8080:8080 \
-v ./config.js:/app/dist/config.js:ro \
jlcox1970/magiclink-ui:latest
Then open http://localhost:8080.
All runtime configuration is injected via a mounted config.js file — nothing is baked into the image at build time.
| Variable | Description |
|---|---|
ISSUER_URL | Base URL of your magiclink-auth instance |
CLIENT_ID | PKCE client ID registered with that instance |
REDIRECT_URI | OAuth callback URL — leave empty to auto-detect from the browser origin |
If the container starts without a valid config.js, the UI displays setup instructions rather than looping or crashing.
apiVersion: v1
kind: ConfigMap
metadata:
name: magic-auth-ui-config
data:
config.js: |
window.MAGIC_AUTH_CONFIG = {
ISSUER_URL: "https://your-oidc-server",
CLIENT_ID: "your-client-id",
REDIRECT_URI: ""
}
---
# In your Deployment, mount it:
volumes:
- name: ui-config
configMap:
name: magic-auth-ui-config
containers:
- name: magic-auth-ui
image: jlcox1970/magiclink-ui:latest
ports:
- containerPort: 8080
volumeMounts:
- name: ui-config
mountPath: /app/dist/config.js
subPath: config.js
readOnly: true
global_admin sees everything; app_admin sees only their own app's users and config| Port | Protocol | Description |
|---|---|---|
8080 | HTTP | Web UI |
Content type
Image
Digest
sha256:1cb841340…
Size
5 MB
Last updated
5 months ago
docker pull jlcox1970/magiclink-ui:1.0.4