diff --git a/README.md b/README.md index 7f53d3a6..fa5a9907 100644 --- a/README.md +++ b/README.md @@ -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 | +| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 | +|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:| +| 🟢 | | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | | +| 🟢 | | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | | +| 🟢 | | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | | +| 🔴 | | 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 | > 说明: > diff --git a/apps/casdoor/1.645.0/config/init_data.json b/apps/casdoor/1.645.0/config/init_data.json new file mode 100644 index 00000000..a08a677f --- /dev/null +++ b/apps/casdoor/1.645.0/config/init_data.json @@ -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": "" + } + ] +} diff --git a/apps/casdoor/1.645.0/data.yml b/apps/casdoor/1.645.0/data.yml new file mode 100644 index 00000000..199607ea --- /dev/null +++ b/apps/casdoor/1.645.0/data.yml @@ -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 diff --git a/apps/casdoor/1.645.0/docker-compose.yml b/apps/casdoor/1.645.0/docker-compose.yml new file mode 100644 index 00000000..93ec9bb8 --- /dev/null +++ b/apps/casdoor/1.645.0/docker-compose.yml @@ -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" diff --git a/apps/casdoor/1.645.0/scripts/init.sh b/apps/casdoor/1.645.0/scripts/init.sh new file mode 100644 index 00000000..8d37dc47 --- /dev/null +++ b/apps/casdoor/1.645.0/scripts/init.sh @@ -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 diff --git a/apps/casdoor/1.645.0/scripts/uninstall.sh b/apps/casdoor/1.645.0/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/apps/casdoor/1.645.0/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/casdoor/1.645.0/scripts/upgrade.sh b/apps/casdoor/1.645.0/scripts/upgrade.sh new file mode 100644 index 00000000..c211154a --- /dev/null +++ b/apps/casdoor/1.645.0/scripts/upgrade.sh @@ -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 diff --git a/apps/casdoor/README.md b/apps/casdoor/README.md new file mode 100644 index 00000000..d77dbc7a --- /dev/null +++ b/apps/casdoor/README.md @@ -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` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。 diff --git a/apps/casdoor/data.yml b/apps/casdoor/data.yml new file mode 100644 index 00000000..59c536eb --- /dev/null +++ b/apps/casdoor/data.yml @@ -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/ diff --git a/apps/casdoor/logo.png b/apps/casdoor/logo.png new file mode 100644 index 00000000..21114837 Binary files /dev/null and b/apps/casdoor/logo.png differ diff --git a/envs/casdoor/casdoor.env b/envs/casdoor/casdoor.env new file mode 100644 index 00000000..70eaeccc --- /dev/null +++ b/envs/casdoor/casdoor.env @@ -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"