chore: add casdoor

fixes #34
This commit is contained in:
LRVT
2026-03-11 14:31:09 +01:00
parent db0a43b6bd
commit 3ffcaff70b
4 changed files with 78 additions and 0 deletions

View File

@@ -124,6 +124,7 @@ A [proxy](https://en.wikipedia.org/wiki/Proxy_server) is a server application th
- [Authentik](examples/authentik) - Authentik is an open-source Identity Provider focused on flexibility and versatility.
- [Keycloak](examples/keycloak) - Keycloak is an open-source Identity and Access Management (IAM) solution for modern applications and services.
- [ZITADEL](examples/zitadel) - ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth.
- [Casdoor](examples/casdoor) - An open-source AI-first Identity and Access Management (IAM) /AI MCP gateway and auth server with web UI.
- [lldap](examples/lldap) - lldap is a lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication. It integrates with many backends, from KeyCloak to Authelia to Nextcloud and more.
### Large Language Models & AI

View File

@@ -0,0 +1,12 @@
# References
- https://github.com/casdoor/casdoor
- https://casdoor.org/pl/docs/basic/try-with-docker/
# Notes
You have to manually supply an `app.conf` configuration file.
Within this file, you have to define your postgresql database connection string.
An example `app.conf` is provided in this repository.

18
examples/casdoor/app.conf Normal file
View File

@@ -0,0 +1,18 @@
# general
appname = casdoor
httpport = 8000
runmode = prod
# database
driverName = postgres
dataSourceName = host=db port=5432 user=casdoor password=Str0ngPassw0rt! dbname=casdoor sslmode=disable
# logging and debugging
showSql = true
logPostOnly = true
# more settings
verificationCodeTimeout = 10
inactiveTimeoutMinutes = 10
staticBaseUrl = "https://cdn.casbin.org"
enableGzip = true

View File

@@ -0,0 +1,47 @@
services:
casdoor:
image: casbin/casdoor:2.353.0
container_name: casdoor
restart: unless-stopped
depends_on:
- db
ports:
- 8000:8000
expose:
- 8000
environment:
- GIN_MODE=release
- RUNNING_IN_DOCKER=true
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/casdoor/conf:/conf # config file must be created manually with postgres connection
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/casdoor/logs:/logs
#networks:
# - proxy
# - casdoor_net
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.casdoor.rule=Host(`casdoor.example.com`)
# - traefik.http.services.casdoor.loadbalancer.server.port=8000
# # Optional part for traefik middlewares
# - traefik.http.routers.casdoor.middlewares=local-ipwhitelist@file,crowdsec@file,limit-CHANGEME
db:
image: postgres:18-alpine
container_name: casdoor-db
restart: unless-stopped
environment:
- POSTGRES_USER=casdoor
- POSTGRES_PASSWORD=pls-changeme-to-strong-pw
- POSTGRES_DB=casdoor
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/casdoor/db:/var/lib/postgresql
#networks:
# - casdoor_net
#networks:
# proxy:
# external: true
# casdoor_net:
# internal: true