mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2026-06-16 01:02:14 +08:00
Processed apps directory via GitHub Actions
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# 数据库 服务 (前置检查) [必填]
|
||||
PANEL_DB_TYPE=postgresql
|
||||
|
||||
# Redis 服务 (前置检查) [必填]
|
||||
PANEL_REDIS_TYPE=redis
|
||||
|
||||
# 数据持久化路径 [必填]
|
||||
CASDOOR_ROOT_PATH=/home/casdoor
|
||||
|
||||
# WebUI 端口 [必填]
|
||||
PANEL_APP_PORT_HTTP=8000
|
||||
|
||||
# 数据库 类型 [必填]
|
||||
DB_TYPE=postgres
|
||||
|
||||
# 数据库 主机地址 [必填]
|
||||
DB_HOSTNAME=127.0.0.1
|
||||
|
||||
# 数据库 端口 [必填]
|
||||
DB_PORT=5432
|
||||
|
||||
# 数据库 用户名 [必填]
|
||||
DB_USER=casdoor
|
||||
|
||||
# 数据库 密码 [必填]
|
||||
DB_PASSWD=
|
||||
|
||||
# 数据库 名称 [必填]
|
||||
DB_NAME=casdoor
|
||||
|
||||
# Redis 主机 [必填]
|
||||
REDIS_HOSTNAME=127.0.0.1
|
||||
|
||||
# Redis 端口 [必填]
|
||||
REDIS_PORT=6379
|
||||
|
||||
# Redis 索引 [必填]
|
||||
REDIS_DBINDEX=0
|
||||
|
||||
# Redis 密码
|
||||
REDIS_PASSWORD=
|
||||
|
||||
# Socks5 代理 (地区网络限制)
|
||||
socks5Proxy=
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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: postgres
|
||||
edit: true
|
||||
envKey: DB_TYPE
|
||||
labelZh: 数据库 类型
|
||||
labelEn: Database Type
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: PostgreSQL
|
||||
value: postgres
|
||||
- label: MySQL (MariaDB, Percona)
|
||||
value: mysql
|
||||
- default: "127.0.0.1"
|
||||
edit: true
|
||||
envKey: DB_HOSTNAME
|
||||
labelZh: 数据库 主机地址
|
||||
labelEn: Database Host
|
||||
required: true
|
||||
type: text
|
||||
- default: 5432
|
||||
edit: true
|
||||
envKey: DB_PORT
|
||||
labelZh: 数据库 端口
|
||||
labelEn: Database Port
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: "casdoor"
|
||||
edit: true
|
||||
envKey: DB_USER
|
||||
labelZh: 数据库 用户名
|
||||
labelEn: Database User
|
||||
required: true
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: DB_PASSWD
|
||||
labelEn: Database Password
|
||||
labelZh: 数据库 密码
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: "casdoor"
|
||||
edit: true
|
||||
envKey: DB_NAME
|
||||
labelZh: 数据库 名称
|
||||
labelEn: Database Name
|
||||
required: true
|
||||
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
|
||||
@@ -0,0 +1,26 @@
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
services:
|
||||
casdoor:
|
||||
container_name: casdoor
|
||||
env_file:
|
||||
- ./envs/global.env
|
||||
- ./envs/casdoor.env
|
||||
- .env
|
||||
environment:
|
||||
- driverName=${DB_TYPE}
|
||||
- dbName=${DB_NAME}
|
||||
- verificationCodeTimeout=10
|
||||
- appname=casdoor
|
||||
- authState=casdoor
|
||||
image: casbin/casdoor:v1.758.0
|
||||
labels:
|
||||
createdBy: Apps
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_HTTP}:8000
|
||||
restart: always
|
||||
volumes:
|
||||
- ${CASDOOR_ROOT_PATH}/files:/files
|
||||
@@ -0,0 +1,31 @@
|
||||
appname=casdoor
|
||||
httpport=8000
|
||||
runmode=prod
|
||||
copyrequestbody=true
|
||||
driverName=mysql
|
||||
dataSourceName=
|
||||
dbName=casdoor
|
||||
tableNamePrefix=
|
||||
showSql=false
|
||||
redisEndpoint=
|
||||
defaultStorageProvider=
|
||||
isCloudIntranet=false
|
||||
authState=casdoor
|
||||
socks5Proxy=
|
||||
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"}
|
||||
initDataFil="./init_data.json"
|
||||
frontendBaseDi="../casdoor"
|
||||
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
ENV_FILE=.env
|
||||
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
TZ=Asia/Shanghai
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||
sed -i '/^APP_ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||
echo "APP_ENV_FILE=${CURRENT_DIR}/envs/casdoor.env" >> .env
|
||||
|
||||
if [ "$DB_TYPE" == "mysql" ]; then
|
||||
echo "dataSourceName=$DB_USER:$DB_PASSWD@tcp($DB_HOSTNAME:$DB_PORT)/" >> .env
|
||||
fi
|
||||
|
||||
if [ "$DB_TYPE" == "postgres" ]; then
|
||||
echo "dataSourceName=\"user=$DB_USER password=$DB_PASSWD host=$DB_HOSTNAME port=$DB_PORT sslmode=disable dbname=$DB_NAME\"" >> .env
|
||||
fi
|
||||
|
||||
if [ -n "$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
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||
sed -i '/^APP_ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||
echo "APP_ENV_FILE=${CURRENT_DIR}/envs/casdoor.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -0,0 +1,95 @@
|
||||
# Casdoor
|
||||
|
||||
Casdoor 是一个 UI 优先的身份访问管理 (IAM)/单点登录 (SSO) 平台,其 Web UI 支持 OAuth
|
||||
2.0、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP、MFA、RADIUS、Google Workspace、活动目录和 Kerberos。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 简介
|
||||
|
||||
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 等, 并支持扩展插件以支持新的数据库。
|
||||
|
||||
## 安装说明
|
||||
|
||||
> 全局管理员账户:'built-in/admin'
|
||||
> 解释:'built-in' 是内置的组织名,'admin' 是内置的用户名。
|
||||
>
|
||||
> 默认用户名:`admin`
|
||||
> 默认密码:`123`
|
||||
|
||||
### 数据库支持
|
||||
|
||||
当前仅支持 `MySQL` 和 `PostgreSQL` 数据库。
|
||||
|
||||
官方支持使用 'SQLite' 数据库,但不建议在生产环境中使用。因此,我们放弃了 'SQLite' 数据库的配置选项。
|
||||
|
||||
同时还有一些其他数据库的支持,但是这些数据库的支持并不完善,因此我们也放弃了这些数据库的配置选项。
|
||||
|
||||
### 存储 `本地文件系统`
|
||||
|
||||
Casdoor 支持将用户头像等文件存储在本地文件系统中。默认情况下,Casdoor 会将文件存储在容器内部 `/home/user/casdoor/files`
|
||||
目录下。
|
||||
|
||||
我们将其挂载在 持久化目录 `/home/casdoor` 下,以便于数据的持久化。
|
||||
|
||||
### `Socks5 代理 (地区网络限制)` 配置
|
||||
|
||||
如果您的网络环境受到地区网络限制,您可以通过配置 `Socks5 代理` 来解决这个问题。
|
||||
|
||||
格式:host:port
|
||||
|
||||
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` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。
|
||||
|
||||
---
|
||||
|
||||

|
||||
@@ -0,0 +1,16 @@
|
||||
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/
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Reference in New Issue
Block a user