Centrifugo 介绍

Centrifugo 说明

Centrifugo 是一个实时消息发送方, 我们项目中将其作为一个服务方来使用, 聊天室的实时通知, 项目中的消息推送到客户端都可以用其来实现, 因为后端使用的是 Go语言所以暂时无法和服务端进行通讯, 只能单向发送

此项目需要了解

  1. Centrifugo 项目

存储了各个平台的配置文件以及 Mac/Linux Centrifugo 运行模块

目录树如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.
├── README.md
├── play # 伙玩项目配置文件
│ ├── play-centrifugo.ini
│ ├── v1_config.json # 1942
│ └── v2_config.json # 1943
├── v1 # V1 版本的执行文件以及web 目录
│ ├── centrifugo_amd64 # linux
│ ├── centrifugo_darwin # mac
│ └── web
│ ├── LICENSE
│ ├── app # 配置中使用的web 目录
│ └── ... # 其他打包文件
└── v2
├── centrifugo_amd64 # linux
└── centrifugo_darwin # 目录
  1. Centrifugo 配置文件

这里请详细查阅官方文档


原文地址 : Centrifugo 介绍
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

TPLINK 设置虚拟服务器不生效

设置虚拟服务器服务器

根据规则增加端口映射

验证服务器访问

使用外部服务器验证可以正常访问

1
2
3
4
5
$ telnet 60.xx.xx.220 9022
Trying 60.xx.xx.220...
Connected to 60.xx.xx.220.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

内网测试无法访问

1
2
3
$ telnet 60.xx.xx.220 9022
Trying 60.xx.xx.220...
telnet: connect to address 60.xx.xx.220: Operation timed out

设置内网回环

根据客服的建议是需要增加内网回环

在 NAPT 中增加

内网测试OK


原文地址 : TPLINK 设置虚拟服务器不生效
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

[弃] 使用 Jenkins 执行远程脚本(转+)

2022-08-19
此插件已经许久未更新, 因为此插件有安全性问题, 不建议使用此插件
image.png

在 Jenkins 中进行构建时,可能需要首先 SSH 登录到一个远程服务器以执行必要的脚本,然后再执行构建。这时,需要安装 SSH Plugin,并进行如下配置。

阅读更多

Mweb 如何修改自定义预览的样式

需要修改右侧的 预览部分 的样式

修改位置:

偏好设置 -  主题&样式 - 预览样式(CSS)

  • 不是  mweb 开头的

编辑就可以直接修改.

  • mweb 开头的是系统的自定义样式

可以去 /Applications/MWeb.app/Contents/Resources/PreviewAsset/previewCSS 里找,然后复制到之前点编辑的所在位置,并改名,就可以自定义了


原文地址 : Mweb 如何修改自定义预览的样式
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Mweb laravel-china 样式

1
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
/*
|--------------------------------------------------------------------------
| Mweb 可用的 基于 Laravel-china 的样式
|--------------------------------------------------------------------------
|
| Author : Mark (zhaody901@126.com)
|
*/
.markdown-body {
font-family: NotoSansHans-Regular, AvenirNext-Regular, arial,
Hiragino Sans GB, "Microsoft Yahei", "Hiragino Sans GB",
"WenQuanYi Micro Hei", sans-serif;
font-size: 15px;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #555;
overflow: hidden;
line-height: 1.6;
word-wrap: break-word;
padding: 0.8em 1.2em;
}
.markdown-body a {
background: transparent;
color: #05a1a2;
text-decoration: none;
}
.markdown-body a:active,
.markdown-body a:hover {
outline: 0;
color: #22ddde;
}
.markdown-body ol li {
margin: 8px 0;
}
.markdown-body pre[class*="language-"] {
margin: 1.2em 0 !important;
}
.markdown-body strong {
font-weight: 700;
}
.markdown-body h1 {
margin: 0.67em 0;
font-size: 30px;
padding-bottom: 0.3em;
line-height: 1.2;
border-bottom: 2px solid #eee;
}
.markdown-body img {
border: 0;
max-width: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
margin: 15px 0;
overflow: hidden;
border: 0;
border-bottom: 1px solid #ddd;
height: 4px;
padding: 0;
background-color: #e7e7e7;
}
.markdown-body table {
border-collapse: collapse;
border-spacing: 0;
display: block;
width: 100%;
overflow: auto;
margin: 25px 0;
}
.markdown-body td,
.markdown-body th {
padding: 0;
}
.markdown-body * {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body a:hover,
.markdown-body a:focus,
.markdown-body a:active {
text-decoration: none;
}
.markdown-body hr:before,
.markdown-body hr:after {
display: table;
content: " ";
}
.markdown-body hr:after {
clear: both;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
position: relative;
margin-top: 1em;
margin-bottom: 1em;
font-weight: 700;
line-height: 1.4;
}
.markdown-body h2 {
padding-bottom: 0.3em;
font-size: 21px;
line-height: 1.225;
border-bottom: 2px solid #eee;
}
.markdown-body h3 {
font-size: 16px;
line-height: 1.43;
}
.markdown-body h4 {
font-size: 14px;
}
.markdown-body h5 {
font-size: 12px;
}
.markdown-body h6 {
font-size: 11px;
color: #777;
}
.markdown-body blockquote {
font-family: monaco, Consolas, monospace;
font-size: inherit;
color: #777;
border-left: 4px solid #ddd;
margin: 15px 0 !important;
background-color: #f7f7f7;
padding: 6px 8px 6px 12px;
}
.markdown-body ul,
.markdown-body ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.markdown-body ol ol {
list-style-type: lower-roman;
}
.markdown-body dd {
margin-left: 0;
}
.markdown-body code,
.markdown-body pre {
font-family: monaco, Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 13px;
margin-top: 0;
margin-bottom: 0;
overflow: auto;
background: rgba(249, 248, 247, 0.53);
border: 1px solid #efefef;
border-radius: 0;
}
.markdown-body .markdown-body > :first-child {
margin-top: 0 !important;
}
.markdown-body .markdown-body > :last-child {
margin-bottom: 0 !important;
}
.markdown-body .anchor {
position: absolute;
top: 0;
bottom: 0;
left: 0;
display: block;
padding-right: 6px;
padding-left: 30px;
margin-left: -30px;
}
.markdown-body .anchor:focus {
outline: none;
}
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
margin-top: 0;
margin-bottom: 12px;
}
.markdown-body ol ol,
.markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markdown-body li > p {
margin-top: 16px;
}
.markdown-body dl {
padding: 0;
}
.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: 700;
}
.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markdown-body blockquote > :first-child {
margin-top: 12px;
}
.markdown-body blockquote > :last-child {
margin-bottom: 12px;
}
.markdown-body table th {
font-weight: 700;
}
.markdown-body table th,
.markdown-body table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
.markdown-body table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}
.markdown-body table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.markdown-body img:not(.emoji) {
border: 1px solid #ddd;
box-shadow: 0 0 30px #ccc;
-moz-box-shadow: 0 0 30px #ccc;
-webkit-box-shadow: 0 0 30px #ccc;
margin-bottom: 30px;
margin-top: 10px;
}
.markdown-body code {
margin: 5px;
color: #858080;
border-radius: 4px;
background-color: #f9fafa;
border: 1px solid #e4e4e4;
max-width: 740px;
overflow-x: auto;
font-size: 0.9em;
padding: 1px 2px;
}
.markdown-body code:before,
.markdown-body code:after {
letter-spacing: -0.2em;
content: "\00a0";
}
.markdown-body pre > code {
padding: 0;
margin: 0;
font-size: 13px;
white-space: pre;
background: transparent;
border: 0;
color: #e6e8d3;
}
.markdown-body p > code {
margin-left: 0;
}
.markdown-body .highlight {
margin-bottom: 16px;
background: #fff;
}
.markdown-body .highlight pre,
.markdown-body pre {
padding: 0.5em;
font-size: 1.15em;
color: #2d2d2d;
background: none;
font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.15;
-moz-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-ms-hyphens: none;
hyphens: none;
margin: 0.6em 0 !important;
overflow: auto;
background: rgba(249, 248, 247, 0.53);
border: 1px solid #efefef;
border-radius: 0;
}
.markdown-body .highlight pre {
margin-bottom: 0;
}
.markdown-body pre {
word-wrap: normal;
}
.markdown-body pre code {
color: #2d2d2d;
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: 1.5;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markdown-body pre code:before,
.markdown-body pre code:after {
content: normal;
}
.markdown-body > h2:first-child {
margin-top: 0.4em;
}
.markdown-body blockquote {
margin: 15px 0;
}
/*

Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>

*/

.markdown-body .hljs {
display: block;
overflow-x: auto;
padding: 4px;
color: #657b83;
-webkit-text-size-adjust: none;
}
.markdown-body .hljs-comment,
.markdown-body .diff .hljs-header,
.markdown-body .hljs-doctype,
.markdown-body .hljs-pi,
.markdown-body .lisp .hljs-string {
color: #93a1a1;
}
/* Solarized Green */
.markdown-body .hljs-keyword,
.markdown-body .hljs-winutils,
.markdown-body .method,
.markdown-body .hljs-addition,
.markdown-body .css .hljs-tag,
.markdown-body .hljs-request,
.markdown-body .hljs-status,
.markdown-body .nginx .hljs-title {
color: #859900;
}
/* Solarized Cyan */
.markdown-body .hljs-number,
.markdown-body .hljs-command,
.markdown-body .hljs-string,
.markdown-body .hljs-tag .hljs-value,
.markdown-body .hljs-rule .hljs-value,
.markdown-body .hljs-doctag,
.markdown-body .tex .hljs-formula,
.markdown-body .hljs-regexp,
.markdown-body .hljs-hexcolor,
.markdown-body .hljs-link_url {
color: #2aa198;
}
/* Solarized Blue */
.markdown-body .hljs-title,
.markdown-body .hljs-localvars,
.markdown-body .hljs-chunk,
.markdown-body .hljs-decorator,
.markdown-body .hljs-built_in,
.markdown-body .hljs-identifier,
.markdown-body .vhdl .hljs-literal,
.markdown-body .hljs-id,
.markdown-body .css .hljs-function,
.markdown-body .hljs-name {
color: #268bd2;
}
/* Solarized Yellow */
.markdown-body .hljs-attribute,
.markdown-body .hljs-variable,
.markdown-body .lisp .hljs-body,
.markdown-body .smalltalk .hljs-number,
.markdown-body .hljs-constant,
.markdown-body .hljs-class .hljs-title,
.markdown-body .hljs-parent,
.markdown-body .hljs-type,
.markdown-body .hljs-link_reference {
color: #b58900;
}
/* Solarized Orange */
.markdown-body .hljs-preprocessor,
.markdown-body .hljs-preprocessor .hljs-keyword,
.markdown-body .hljs-pragma,
.markdown-body .hljs-shebang,
.markdown-body .hljs-symbol,
.markdown-body .hljs-symbol .hljs-string,
.markdown-body .diff .hljs-change,
.markdown-body .hljs-special,
.markdown-body .hljs-attr_selector,
.markdown-body .hljs-subst,
.markdown-body .hljs-cdata,
.markdown-body .css .hljs-pseudo,
.markdown-body .hljs-header {
color: #cb4b16;
}
/* Solarized Red */
.markdown-body .hljs-deletion,
.markdown-body .hljs-important {
color: #dc322f;
}
/* Solarized Violet */
.markdown-body .hljs-link_label {
color: #6c71c4;
}
.markdown-body .hljs-formula {
background: #eee8d5;
}

修改日志

  • 2020-04-01 : 加入 Mono 的默认字体
  • 2017-09-21 (减少 p > code 代码缩进)

原文地址 : Mweb laravel-china 样式
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Docker 方式 安装 ElasticSearch / Kibana 安装

安装 elasticsearch

1
2
3
4
5
6
7
8
9
$ docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2249f918cc81 docker.elastic.co/elasticsearch/elasticsearch:7.10.2 "/tini -- /usr/local…" 8 minutes ago Up 7 minutes 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp nervous_jones

# 重命名
$ docker rename 2249f918cc81 es7

安装浏览器工具 ElasticSearch Head
image.png
下载地址 : https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm
image.png

安装 Kibana

1
2
3
4
5
6
7
8
9
$ docker pull docker.elastic.co/kibana/kibana:7.10.2
$ docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.10.2

$ docker run --link es7:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.10.2
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65a5e4739050 docker.elastic.co/kibana/kibana:7.10.2 "/usr/local/bin/dumb…" 36 seconds ago Up 5 seconds 0.0.0.0:5601->5601/tcp brave_hodgkin

$ docker rename 65a5e4739050 kibana7

YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID 这个地方写自己的 container_id 或者 name

运行结果
image.png


原文地址 : Docker 方式 安装 ElasticSearch / Kibana 安装
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

查看连接 wifi 的mac 地址

到手机拨bai号界面拨 *#*#4636#*#*,这时会弹出一个新界面,接下来点击“WLAN information(或者Wi-Fi information)”,再点击“WLAN status(或者Wi-Fi status)”,最后点击“Refresh status”键,你就能看到BSSID信息了,这个BSSID就是你要的无线路由器MAC地址!
image.png


原文地址 : 查看连接 wifi 的mac 地址
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

在 CentOS 7 上安装 ElasticSearch 和 Kibana

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

阅读更多