# 快速上手
本篇文档让你能够快速的启动DarkM项目。
示例源码仓库:
- github: http://git.woowis.com/Woowis/DarkM.Demo
# 配置
配置信息都保存在appsettings.json文件中,根据功能来区分,如下:
{
//主机配置
"Host": {
//地址
"Urls": "http://*:6220",
//开启Swagger
"Swagger": false,
//代理
"Proxy": false,
//指定跨域访问时预检请求的有效期,单位秒,默认30分钟
"PreflightMaxAge": 0
},
//日志配置
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Microsoft": "Error",
"System": "Error"
}
},
"WriteTo": [
//输出到文件
{
"Name": "File",
"Args": {
//文件路径
"path": "log/log.log",
//文件滚动方式
"rollingInterval": "Day",
//消息输出格式
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
//文件数量
"retainedFileCountLimit": 60,
//使用缓冲,提高写入效率
"buffered": false
}
}
]
},
//数据库配置
"Db": {
//是否开启日志
"Logging": false,
//数据库类型 0、SqlServer 1、MySql 2、SQLite
"Dialect": 2,
//数据库版本
"Version": "",
//数据库地址
"Server": "",
//端口号
"Port": 0,
//用户名
"UserId": "",
//密码
"Password": "",
//是否创建数据库和表
"CreateDatabase": true,
//是否创建数据库后执行初始化脚本
"InitData": true,
//PostgreSQL数据库名称,仅PostgreSQL数据库有效
"NpgsqlDatabaseName": null,
//模块列表
"Modules": [
{
//模块名称
"Name": "Admin",
//表前缀
"Prefix": "",
//数据库名称
"Database": "Nm_Admin",
//自定义连接信息
"ConnectionString": "",
//自定义版本号
"Version": ""
}
]
},
//缓存配置
"Cache": {
//缓存提供器:0、MemoryCache 1、Redis 2、Memcached
"Provider": 2,
//Redis配置
"Redis": {
"DefaultDb": 0,
"Prefix": "DM",
"ConnectionString": "127.0.0.1"
},
"Memcached": {
"Prefix": "DM",
"Servers": [
{
"Address": "localhost",
"Port": 11211
}
],
"Authentication": {
"Type": "Enyim.Caching.Memcached.PlainTextAuthenticator",
"Parameters": {
"zone": "DM",
"userName": "",
"password": ""
}
},
"MinPoolSize": 5,
"MaxPoolSize": 1000
}
},
//Excel配置
"Excel": {
//Excel类库:0、EPPlus 1、NPOI 2、OpenXml (暂时只实现了EPPlus)
"Provider": 0,
//Excel操作时产生的临时文件存储根路径
"TempPath": ""
},
//OSS配置
"OSS": {
//存储提供器:0、本地存储 1、七牛 2、阿里云
"Provider": 2,
//七牛存储配置
"Qiniu": {
//Key
"AccessKey": "",
//密钥
"SecretKey": "",
//域名(结尾不包含/)
"Domain": "",
//空间名称
"Bucket": "",
//存储区域:0、华 东 1、华 北 2、华 南 3、北 美 4、东南亚
"Zone": 0
},
//阿里云存储
"Aliyun": {
//地域节点
"Endpoint": "http://oss-cn-beijing.aliyuncs.com",
//访问令牌ID
"AccessKeyId": "",
//访问令牌密钥
"AccessKeySecret": "",
//存储空间名称
"BucketName": "",
//自定义访问域名
"Domain": ""
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
警告
本框架支持多种数据库,代码中默认采用 SQLite 数据库,所以您获取最新的代码后是可以直接就能跑起来的。如果需要其它数据库,请按照上面的说明修改配置信息。
同时目前本框架已支持自动创建数据库以及初始化数据功能(目前仅支持初始化 Admin 模块的数据)。
# 其它配置信息
其它功能模块的配置信息使用默认值就行,如果想修改可以自己查看文件中的说明。
# 启动服务端
这里就使用命令来启动,进入src/Admin/WebHost目录,打开 CMD 或 PowerShell 执行以下命令
dotnet watch run
如果结果如下图所示则表示启动成功
# 可访问 http://localhost:6220/swagger/index.html 浏览接口文档。
# 启动前端
警告
前端运行环境依赖Node.js 10+,如果无法启动请检查自己的版本是否匹配node -v。
前端运行环境依赖Node.js 10+,如果无法启动请检查自己的版本是否匹配node -v。
前端运行环境依赖Node.js 10+,如果无法启动请检查自己的版本是否匹配node -v。
进入src/Admin/UI/module-admin目录,执行以下命令:
npm install
npm update
npm run serve
2
3
如下图所示表示成功
访问 http://localhost:5220/app/ (opens new window) 浏览,默认账户密码为 admin/******
警告
单独启动前端,路径的 app 后面一定要带上/
# 发布
# 步骤一:编译前端
进入src/Admin/UI/module-admin目录,执行以下命令打包前端代码:
npm run build
成功后打包的文件会保存到src/Admin/WebHost/wwwroot/app目录下面
警告
如果前端和后端不需要发布到统一服务器或者同一个Web 下面,可以忽略这一步
# 步骤二:打包后端
进入src/Admin/WebHost目录,执行以下命令打包后端代码:
Windows:
dotnet publish -r win-x64 --self-contained=false
Linux:
dotnet publish -r linux-x64 /p:PublishSingleFile=true
成功后打包的文件会保存到src/Admin/WebHost/bin/Debug/net5.0/对应目标目录/publish目录下面,拷贝相关文件到需要发布的服务器目录即可
打包Docker 镜像:
在Demo 项目的根目录执行如下命令打包镜像:
sudo docker build -t darkm/demo .
发布Docker:
sudo docker run --name=dmdemo -p 6220:6220 -d darkm/demo
# 发布到IIS
根据发布章节提到的打包步骤,生成好发布文件后,将文件发布到IIS 需要按照以下步骤将.net 5.0 程序发布到Win Server 2008 服务器的IIS 7.5 中:
# 安装顺序
1 Win2008R2的系统必须要打SP1补丁
2 打完SP1补丁后还要打KB2533623补丁
3 安装Microsoft Visual C++ 2015 Redistributable
4 安装dotnet-runtime-5.0.0-win-x64和dotnet-hosting-5.0.0-win.exe
5 在IIS发布的程序的应用池设置无托管代码
警告
更详细问题,参考这篇文章:https://cloud.tencent.com/developer/article/1774667