发布应用 Casdoor

身份和访问管理(IAM)/单点登录(SSO)平台

Signed-off-by: 萌森 <qyg2297248353@163.com>
This commit is contained in:
萌森 2024-07-19 13:16:10 +08:00
parent dc1a1476ef
commit f52ee06f71
11 changed files with 886 additions and 43 deletions

View File

@ -52,49 +52,50 @@
## 维护状态
| 维护状态 | 应用名称 | 官网 | 描述 | 集合 |
|:----:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
| 🟢 | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
| 🟢 | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
| 🔴 | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
| 🔴 | DeepLX | https://deeplx.owo.network/ | DeepL免费API无需TOKEN | |
| 🟢 | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
| 🔴 | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
| 🔴 | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
| 🟢 | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
| 🟢 | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🔴 | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🔴 | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
| 🟢 | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
| 🟢 | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
| 🟢 | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
| 🟢 | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
| 🔴 | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
| 🟢 | NeZha | https://nacos.io/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
| 🟢 | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
| 🟢 | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
| 🟢 | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
| 🟢 | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
| 🟢 | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
| 🟢 | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
| 🔴 | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🔴 | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
| 🔴 | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🔴 | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
| 🟢 | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
| 🟢 | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🔴 | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/alist/logo.png" width="16"/> | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/bark/logo.png" width="16"/> | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/casdoor/logo.png" width="16"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
| 🔴 | | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
| 🔴 | | DeepLX | https://deeplx.owo.network/ | DeepL免费API无需TOKEN | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/dockge/logo.png" width="16"/> | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
| 🔴 | | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
| 🔴 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/emby/logo.png" width="16"/> | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/emby/logo.png" width="16"/> | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/gitea/logo.png" width="16"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/gitea/logo.png" width="16"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/halo/logo.png" width="16"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/immich/logo.png" width="16"/> | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/immich/logo.png" width="16"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/immich/logo.png" width="16"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="16"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="16"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🔴 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/movie-pilot/logo.png" width="16"/> | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/mysql/logo.png" width="16"/> | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/mariadb/logo.png" width="16"/> | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/percona/logo.png" width="16"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
| 🔴 | | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/nezha/logo.png" width="16"/> | NeZha | https://nacos.io/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/onedev/logo.png" width="16"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/outline/logo.png" width="16"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/postgresql/logo.png" width="16"/> | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/qbittorrent/logo.png" width="16"/> | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/qinglong/logo.png" width="16"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/redis/logo.png" width="16"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
| 🔴 | | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/siyuan/logo.png" width="16"/> | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🔴 | | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/transmission/logo.png" width="16"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="16"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
| 🟢 | <img height="16" src="https://file.lifebus.top/apps/umami/logo.png" width="16"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
> 说明:
>

View File

@ -0,0 +1,490 @@
{
"organizations": [
{
"owner": "",
"name": "",
"displayName": "",
"websiteUrl": "",
"favicon": "",
"passwordType": "plain",
"passwordSalt": "",
"passwordOptions": [
"AtLeast6"
],
"countryCodes": [
"US",
"GB",
"ES",
"FR",
"DE",
"CN",
"JP",
"KR",
"VN",
"ID",
"SG",
"IN",
"IT",
"MY",
"TR",
"DZ",
"IL",
"PH",
"NL",
"PL",
"FI",
"SE",
"UA",
"KZ"
],
"defaultAvatar": "",
"defaultApplication": "",
"tags": [],
"languages": [
"en",
"zh",
"es",
"fr",
"de",
"id",
"ja",
"ko",
"ru",
"vi",
"it",
"ms",
"tr",
"ar",
"he",
"nl",
"pl",
"fi",
"sv",
"uk",
"kk",
"fa"
],
"masterPassword": "",
"defaultPassword": "",
"initScore": 2000,
"enableSoftDeletion": false,
"isProfilePublic": true,
"accountItems": []
}
],
"applications": [
{
"owner": "",
"name": "",
"displayName": "",
"logo": "",
"homepageUrl": "",
"organization": "",
"cert": "",
"enablePassword": true,
"enableSignUp": true,
"clientId": "",
"clientSecret": "",
"providers": [
{
"name": "",
"canSignUp": true,
"canSignIn": true,
"canUnlink": false,
"prompted": false,
"alertType": "None"
}
],
"signinMethods": [
{
"name": "Password",
"displayName": "Password",
"rule": "All"
},
{
"name": "Verification code",
"displayName": "Verification code",
"rule": "All"
},
{
"name": "WebAuthn",
"displayName": "WebAuthn",
"rule": "None"
},
{
"name": "Face ID",
"displayName": "Face ID",
"rule": "None"
}
],
"signupItems": [
{
"name": "ID",
"visible": false,
"required": true,
"prompted": false,
"rule": "Random"
},
{
"name": "Username",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Display name",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Password",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Confirm password",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Email",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Phone",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
},
{
"name": "Agreement",
"visible": true,
"required": true,
"prompted": false,
"rule": "None"
}
],
"grantTypes": [
"authorization_code",
"password",
"client_credentials",
"token",
"id_token",
"refresh_token"
],
"redirectUris": [
"http://localhost:9000/callback"
],
"tokenFormat": "JWT",
"tokenFields": [],
"expireInHours": 168,
"failedSigninLimit": 5,
"failedSigninFrozenTime": 15
}
],
"users": [
{
"owner": "",
"name": "",
"type": "normal-user",
"password": "",
"displayName": "",
"avatar": "",
"email": "",
"phone": "",
"countryCode": "",
"address": [],
"affiliation": "",
"tag": "",
"score": 2000,
"ranking": 1,
"isAdmin": true,
"isForbidden": false,
"isDeleted": false,
"signupApplication": "",
"createdIp": "",
"groups": []
}
],
"providers": [
{
"owner": "",
"name": "",
"displayName": "",
"category": "",
"type": ""
}
],
"certs": [
{
"owner": "",
"name": "",
"displayName": "",
"scope": "JWT",
"type": "x509",
"cryptoAlgorithm": "RS256",
"bitSize": 4096,
"expireInYears": 20,
"certificate": "",
"privateKey": ""
}
],
"ldaps": [
{
"id": "",
"owner": "",
"serverName": "",
"host": "",
"port": 389,
"username": "",
"password": "",
"baseDn": "",
"autoSync": 0,
"lastSync": ""
}
],
"models": [
{
"owner": "",
"name": "",
"modelText": "",
"displayName": ""
}
],
"permissions": [
{
"actions": [],
"displayName": "",
"effect": "",
"isEnabled": true,
"model": "",
"name": "",
"owner": "",
"resourceType": "",
"resources": [],
"roles": [],
"users": []
}
],
"payments": [
{
"currency": "",
"detail": "",
"displayName": "",
"invoiceRemark": "",
"invoiceTaxId": "",
"invoiceTitle": "",
"invoiceType": "",
"invoiceUrl": "",
"message": "",
"name": "",
"organization": "",
"owner": "",
"payUrl": "",
"personEmail": "",
"personIdCard": "",
"personName": "",
"personPhone": "",
"price": 0,
"productDisplayName": "",
"productName": "",
"provider": "",
"returnUrl": "",
"state": "",
"tag": "",
"type": "",
"user": ""
}
],
"products": [
{
"currency": "",
"detail": "",
"displayName": "",
"image": "",
"name": "",
"owner": "",
"price": 0,
"providers": [],
"quantity": 0,
"returnUrl": "",
"sold": 0,
"state": "",
"tag": ""
}
],
"resources": [
{
"owner": "",
"name": "",
"user": "",
"provider": "",
"application": "",
"tag": "",
"parent": "",
"fileName": "",
"fileType": "",
"fileFormat": "",
"url": "",
"description": ""
}
],
"roles": [
{
"displayName": "",
"isEnabled": true,
"name": "",
"owner": "",
"roles": [],
"users": []
}
],
"syncers": [
{
"affiliationTable": "",
"avatarBaseUrl": "",
"database": "",
"databaseType": "",
"errorText": "",
"host": "",
"isEnabled": false,
"name": "",
"organization": "",
"owner": "",
"password": "",
"port": 0,
"syncInterval": 0,
"table": "",
"tableColumns": [
{
"casdoorName": "",
"isHashed": true,
"name": "",
"type": "",
"values": []
}
],
"tablePrimaryKey": "",
"type": "",
"user": ""
}
],
"tokens": [
{
"accessToken": "",
"application": "",
"code": "",
"codeChallenge": "",
"codeExpireIn": 0,
"codeIsUsed": true,
"createdTime": "",
"expiresIn": 0,
"name": "",
"organization": "",
"owner": "",
"refreshToken": "",
"scope": "",
"tokenType": "",
"user": ""
}
],
"webhooks": [
{
"contentType": "",
"events": [],
"headers": [
{
"name": "",
"value": ""
}
],
"isEnabled": true,
"isUserExtended": true,
"method": "",
"name": "",
"organization": "",
"owner": "",
"url": ""
}
],
"groups": [
{
"owner": "",
"name": "",
"displayName": "",
"manager": "",
"contactEmail": "",
"type": "",
"parent_id": "",
"isTopGroup": true,
"title": "",
"key": "",
"children": "",
"isEnabled": true
}
],
"adapters": [
{
"owner": "",
"name": "",
"table": "",
"useSameDb": true,
"type": "",
"databaseType": "",
"database": "",
"host": "",
"port": 0,
"user": "",
"password": ""
}
],
"enforcers": [
{
"owner": "",
"name": "",
"displayName": "",
"description": "",
"model": "",
"adapter": "",
"enforcer": ""
}
],
"plans": [
{
"owner": "",
"name": "",
"displayName": "",
"description": "",
"price": 0,
"currency": "",
"period": "",
"product": "",
"paymentProviders": [],
"isEnabled": true,
"role": ""
}
],
"pricings": [
{
"owner": "",
"name": "",
"displayName": "",
"description": "",
"plans": [],
"isEnabled": true,
"trialDuration": 0,
"application": ""
}
]
}

View File

@ -0,0 +1,138 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_DB_HOST
required: true
type: service
default: postgresql
edit: true
envKey: PANEL_DB_TYPE
labelZh: 数据库 服务 (前置检查)
labelEn: Database Service (Pre-check)
required: true
type: apps
values:
- label: PostgreSQL
value: postgresql
- label: MySQL
value: mysql
- label: MariaDB
value: mariadb
- label: Percona
value: percona
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/casdoor"
edit: true
envKey: CASDOOR_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: postgresql
edit: true
envKey: DB_TYPE
labelZh: 数据库 类型
labelEn: Database Type
required: true
type: select
values:
- label: PostgreSQL
value: postgresql
- label: MySQL (MariaDB, Percona)
value: mysql
- default: "127.0.0.1"
edit: true
envKey: DB_HOSTNAME
labelZh: 数据库 主机地址
labelEn: Database Host
required: false
type: text
- default: 5432
edit: true
envKey: DB_PORT
labelZh: 数据库 端口
labelEn: Database Port
required: false
rule: paramPort
type: number
- default: "gitea"
edit: true
envKey: DB_USER
labelZh: 数据库 用户名
labelEn: Database User
required: false
type: text
- default: ""
edit: true
envKey: DB_PASSWD
labelEn: Database Password
labelZh: 数据库 密码
random: true
required: false
rule: paramComplexity
type: password
- default: "gitea"
edit: true
envKey: DB_NAME
labelZh: 数据库 名称
labelEn: Database Name
required: false
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOSTNAME
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
rule: paramPort
type: number
- default: 0
edit: true
envKey: REDIS_DBINDEX
labelZh: Redis 索引
labelEn: Redis Index
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 密码
labelEn: Redis Password
required: false
type: password
- default: ""
edit: true
envKey: socks5Proxy
labelZh: Socks5 代理 (地区网络限制)
labelEn: Socks5 Proxy (Region Network Restriction)
required: false
type: text

View File

@ -0,0 +1,31 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
casdoor:
image: casbin/casdoor:v1.645.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:8000
build:
context: ./
dockerfile: Dockerfile
target: STANDARD
entrypoint: /bin/sh -c './server --createDatabase=true'
volumes:
- ${CASDOOR_ROOT_PATH}/data/files:/home/user/casdoor/files
environment:
- driverName=${DB_TYPE}
- dbName=${DB_NAME}
- redisEndpoint=${REDIS_HOSTNAME}:${REDIS_PORT}
- verificationCodeTimeout=10
- appname="casdoor"
- authState="casdoor"

View File

@ -0,0 +1,28 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
if [ "$DB_TYPE" == "mysql" ]; then
echo "dataSourceName=\"$DB_USER:$DB_PASSWD@tcp($DB_HOSTNAME:$DB_PORT)/\"" >> .env
fi
if [ "$DB_TYPE" == "postgresql" ]; then
echo "dataSourceName=\"user=$DB_USER password=$DB_PASSWD host=$DB_HOSTNAME port=$DB_PORT sslmode=disable dbname=$DB_NAME\"" >> .env
fi
if [ -z "$REDIS_PASSWORD" ]; then
echo "redisEndpoint=\"$REDIS_HOSTNAME:$REDIS_PORT,$REDIS_DBINDEX,$REDIS_PASSWORD\"" >> .env
else
echo "redisEndpoint=\"$REDIS_HOSTNAME:$REDIS_PORT,$REDIS_DBINDEX\"" >> .env
fi
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,14 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

81
apps/casdoor/README.md Normal file
View File

@ -0,0 +1,81 @@
# Casdoor
Casdoor 是一个 UI 优先的身份访问管理 (IAM)/单点登录 (SSO) 平台,其 Web UI 支持 OAuth
2.0、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP、MFA、RADIUS、Google Workspace、活动目录和 Kerberos。
![Casdoor](https://file.lifebus.top/imgs/casdoor_cover.png)
## 简介
Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。
Casdoor是由Casbin社区通过Golang和React进行开发。
Casdoor旨在提供一个强大的认证平台来处理用户管理问题。
+ ⚡️ 强大的功能和极简的配置。 支持使用 登录和传统的用户名/密码登录只需几个步骤Casdoor即可帮助您构建您的用户管理系统。
+ 💥 前后端分离架构。 Casdoor提供可随心所欲的网页界面并支持高并发。
+ 🥂 活跃的开源社区。 Casdoor是开源的并有专业团队积极维护中。
+ 🌐 多语言支持。 Casdoor支持多种语言包括中文、英文、法文、以及更多语言。
## 特性
+ Casdoor 遵循前后端分离架构,采用 Golang 进行开发。 它支持高同步提供基于网页的用户界面管理并支持10多种语言的本地化。
+ Casdoor 支持第三方应用登录,如 GitHub、谷歌、QQ、微信等并支持通过插件扩展第三方登录。
+ Casdoor 支持基于 Cassbin 的授权管理。 它支持 ACL、RBAC、ABAC 和 RESTful鉴权管理模式。
+ Casdoor 提供了手机验证码、电子邮件验证码以及重置密码的功能。
+ Casdoor 支持日志的审计和记录。
+ Casdoor 可以使用阿里云、腾讯云、七牛云提供的图片CDN云存储功能。
+ Casdoor 允许自定义注册、登录以及找回密码页面。
+ 通过数据库同步支持与现有系统的集成,从而能够顺利过渡到 Casdoor。
+ Casdoor 支持主流数据库: MySQL、PostgreSQL、SQL Server 等, 并支持扩展插件以支持新的数据库。
## 安装说明
### 数据库支持
当前仅支持 `MySQL``PostgreSQL` 数据库。
官方支持使用 'SQLite' 数据库,但不建议在生产环境中使用。因此,我们放弃了 'SQLite' 数据库的配置选项。
同时还有一些其他数据库的支持,但是这些数据库的支持并不完善,因此我们也放弃了这些数据库的配置选项。
### 存储 `本地文件系统`
Casdoor 支持将用户头像等文件存储在本地文件系统中。默认情况下Casdoor 会将文件存储在容器内部 `/home/user/casdoor/files`
目录下。
我们将其挂载在 持久化目录 `/home/casdoor` 下,以便于数据的持久化。
### `Socks5 代理 (地区网络限制)` 配置
如果您的网络环境受到地区网络限制,您可以通过配置 `Socks5 代理` 来解决这个问题。
socks5Proxy 是 SOCKS 代理服务器 IP 地址。
设置代理端口因为我们有与Google相关的服务或者使用Google、GitHub、Facebook、LinkedIn或Steam作为OAuth提供商这在某些地区可能会受到网络限制。
### 数据初始化 `init_data.json` 配置
Casdoor 会在第一次启动时,自动初始化数据库。您可以通过配置 `init_data.json` 文件来初始化数据库。
配置自定义的 `init_data.json` 文件,需要挂载到容器中。
需要修改 `docker-compose.yml` 文件中的 `volumes` 部分,添加自定义配置的挂载,将 `init_data.json` 文件挂载到容器中,覆盖默认配置。
```yaml
volumes:
- ./config/init_data.json:/init_data.json
```
其中 `./config/init_data.json` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。

19
apps/casdoor/data.yml Normal file
View File

@ -0,0 +1,19 @@
name: Casdoor
title: 身份和访问管理(IAM)/单点登录(SSO)平台
description: 身份和访问管理(IAM)/单点登录(SSO)平台
additionalProperties:
key: casdoor
name: Casdoor
tags:
- WebSite
- Middleware
- Tool
- Local
shortDescZh: 身份和访问管理(IAM)/单点登录(SSO)平台
shortDescEn: Identity and Access Management (IAM)/Single Sign-On (SSO) platform
type: website
crossVersionUpdate: true
limit: 0
website: https://casdoor.org/
github: https://github.com/casdoor/casdoor/
document: https://casdoor.org/zh/docs/overview/

BIN
apps/casdoor/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

31
envs/casdoor/casdoor.env Normal file
View File

@ -0,0 +1,31 @@
appname = casdoor
httpport = 8000
runmode = prod
copyrequestbody = true
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 0
logPostOnly = true
isUsernameLowered = false
origin =
originFrontend =
staticBaseUrl = "https://cdn.casbin.org"
isDemoMode = false
batchSize = 100
enableGzip = true
ldapServerPort = 389
radiusServerPort = 1812
radiusSecret = "secret"
quota = {"organization": -1, "user": -1, "application": -1, "provider": -1}
logConfig = {"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
initDataFile = "./init_data.json"
frontendBaseDir = "../casdoor"