代码拉取完成,页面将自动刷新
一套基于多租户独立数据库架构的租户数据库链接管理系统
English | 简体中文
psql.exe -U postgres -h localhost -p 5432 -f db.sql
修改配置文件appsettings.json,修改工程数据库链接等配置
{
"SysAesKey": "startingmultiten",
"StartingMultiTenantDbOption": { //工程主库与从库数据库链接
"MasterConnStr": "Host=127.0.0.1;Port=5433;Username=postgres;Password=123456;Database=startingmultitenant",
"SlaveConnStr": "Host=127.0.0.1;Port=5433;Username=postgres;Password=123456;Database=startingmultitenant"
},
"QueueNotice": { //变更推送队列设置
"Enable": true, //true:启用,false:禁用
"QueueType": "RabbitMQ", //RabbitMQ:使用rabbitmq推送,Redis:使用redis队列推送
"QueueConn": "127.0.0.1;5673" //队列链接字符串
},
//外部存储
"ExternalStores": [
{
"StoreType": "Redis", //Redis:redis类型外部存储,
"Conn": "127.0.0.1:6379,password=123456"
},
{
"StoreType": "k8s_secret", //k8s_secret: k8s Secret 外部存储
"ConfigFilePath": "./cer/kubeconfig", //kubeconfig文件路径
"K8sNamespace": "dev" //写入Secret的命名空间
}
],
//默认设置
"JwtTokenOptions": {
"Issuer": "FAN.Issuer",
"ValidateIssuer": true,
"Audience": "FAN.Audience",
"ValidateAudience": true,
"RawSigningKey": "11111111-1111-1111-1111-111111111111", /*签名秘钥*/
"ValidateIssuerSigningKey": true
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
docker部署镜像,或者dotnet run运行
docker 镜像 zionyellow/startingmultitenant
docker run \
-p 5251:80 \
--name startingmultitenant \
-v /root/docker/startmultitenant/appsettings.json:/app/appsettings.json \
-v /root/docker/startingmultitenant/cer:/app/cer \
-d zionyellow/startingmultitenant:1.0
这里的'/app/cer'为步骤2中配置kubeconfig文件的目录
访问 ip:port/api/apiclient/init,初始化管理员账号
部署前端工程,请转StartingMultiTenant.front
curl --location --request POST 'http://localhost:5251/api/connect/token' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"clientid": "serviceClient",
"clientsecret": "123456"
}
}'
curl --location --request POST 'http://localhost:5251/api/tenantcenter/create' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoic2VydmljZUNsaWVudCIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJ1c2VyIiwiaXNzIjoiRkFOLklzc3VlciIsImF1ZCI6IkZBTi5BdWRpZW5jZSJ9.21oxggLD2PGfmzN9qFMvz_oekhPDMPzcPs7miimKLYk' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"tenantdomain": "test.com", //租户域
"TenantIdentifier": "joicy2", //租户标识
"tenantname": "test租户", //名称,可为空
"description": "testtest", //描述,可为空
"CreateDbScripts": [ //创建库列表,可为空
"CreateTestDb", //建库对象名称,为录入系统的建库脚本名称
"CreateOAuthDb"
]
}
}'
curl --location --request GET 'http://localhost:5251/api/tenantcenter/GetDbConn?tenantDomain=test.com&tenantIdentifier=joicy2' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoic2VydmljZUNsaWVudCIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJ1c2VyIiwiaXNzIjoiRkFOLklzc3VlciIsImF1ZCI6IkZBTi5BdWRpZW5jZSJ9.21oxggLD2PGfmzN9qFMvz_oekhPDMPzcPs7miimKLYk'
curl --location --request GET 'http://localhost:5251/api/tenantcenter/GetDbConn?tenantDomain=test.com&tenantIdentifier=joicy2&serviceIdentifier=test.svc' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoic2VydmljZUNsaWVudCIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJ1c2VyIiwiaXNzIjoiRkFOLklzc3VlciIsImF1ZCI6IkZBTi5BdWRpZW5jZSJ9.21oxggLD2PGfmzN9qFMvz_oekhPDMPzcPs7miimKLYk'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。