@lazycatcloud/lzc-cli 1.1.3 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cmds/app.js +133 -0
- package/cmds/config.js +55 -0
- package/cmds/create.js +55 -0
- package/cmds/dev.js +130 -0
- package/cmds/init.js +125 -0
- package/cmds/log.js +103 -0
- package/cmds/publish.js +116 -0
- package/lib/api.js +21 -7
- package/lib/app/index.js +92 -0
- package/lib/app/lpk_build.js +229 -0
- package/lib/app/lpk_create.js +201 -0
- package/lib/app/lpk_devshell.js +621 -0
- package/lib/app/lpk_installer.js +67 -0
- package/lib/archiver.js +0 -42
- package/lib/autologin.js +84 -0
- package/lib/box/check_qemu.js +50 -0
- package/lib/box/hportal.js +8 -1
- package/lib/box/index.js +35 -15
- package/lib/box/qemu_vm_mgr.js +142 -56
- package/lib/builder.js +14 -3
- package/lib/dev.js +12 -6
- package/lib/env.js +10 -6
- package/lib/generator.js +2 -2
- package/lib/git/git-commit.sh +3 -3
- package/lib/sdk.js +29 -5
- package/lib/utils.js +69 -46
- package/package.json +13 -6
- package/scripts/cli.js +92 -13
- package/template/_lazycat/debug/shell/Dockerfile +5 -3
- package/template/_lazycat/debug/shell/docker-compose.override.yml.in +2 -12
- package/template/_lazycat/debug/shell/entrypoint.sh +3 -1
- package/template/_lpk/Dockerfile.in +8 -0
- package/template/_lpk/devshell/Dockerfile +18 -0
- package/template/_lpk/devshell/build.sh +5 -0
- package/template/_lpk/devshell/entrypoint.sh +8 -0
- package/template/_lpk/devshell/sshd_config +117 -0
- package/template/_lpk/manifest.yml.in +17 -0
- package/template/_lpk/sync/Dockerfile +16 -0
- package/template/_lpk/sync/build.sh +5 -0
- package/template/_lpk/sync/entrypoint.sh +8 -0
- package/template/_lpk/sync/sshd_config +117 -0
- package/template/_lpk/sync.manifest.yml.in +3 -0
- package/template/golang/build.sh +6 -0
- package/template/golang/lzc-build.yml +52 -0
- package/template/ionic_vue3/lzc-build.yml +53 -0
- package/template/ionic_vue3/vite.config.ts +1 -1
- package/template/release/golang/build.sh +1 -1
- package/template/release/ionic_vue3/Dockerfile +1 -1
- package/template/release/ionic_vue3/build.sh +1 -3
- package/template/release/ionic_vue3/docker-compose.yml.in +0 -5
- package/template/release/vue/Dockerfile +1 -1
- package/template/release/vue/build.sh +2 -3
- package/template/release/vue/docker-compose.yml.in +0 -5
- package/template/vue/lzc-build.yml +53 -0
- package/template/vue/src/main.js +3 -14
- package/template/vue/vue.config.js +16 -0
- package/scripts/auto-completion.sh +0 -46
- package/template/_lazycat/debug/shell/nginx.conf.template +0 -64
- package/template/vue/src/lzc.js +0 -110
package/scripts/cli.js
CHANGED
|
@@ -2,25 +2,82 @@
|
|
|
2
2
|
import process from "process";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import fs from "fs";
|
|
5
|
-
import
|
|
5
|
+
import logger from "loglevel";
|
|
6
6
|
import yargs from "yargs";
|
|
7
7
|
import { hideBin } from "yargs/helpers";
|
|
8
|
+
import chalk from "chalk";
|
|
8
9
|
|
|
10
|
+
import { contextDirname, importDefault } from "../lib/utils.js";
|
|
9
11
|
import Env from "../lib/env.js";
|
|
10
12
|
import { boxCommand } from "../lib/box/index.js";
|
|
13
|
+
import { lpkAppCommand, lpkProjectCommand } from "../lib/app/index.js";
|
|
11
14
|
const pkgInfo = JSON.parse(
|
|
12
15
|
fs.readFileSync(path.join(contextDirname(import.meta.url), "../package.json"))
|
|
13
16
|
);
|
|
14
17
|
|
|
18
|
+
// logger level middleware
|
|
19
|
+
const logLevelOriginalFactory = logger.methodFactory;
|
|
20
|
+
logger.methodFactory = function (methodName, logLevel, loggerName) {
|
|
21
|
+
let rawMethod = logLevelOriginalFactory(methodName, logLevel, loggerName);
|
|
22
|
+
return function (...args) {
|
|
23
|
+
let color = (msg) => chalk.gray;
|
|
24
|
+
switch (methodName) {
|
|
25
|
+
case "trace":
|
|
26
|
+
color = chalk.dim.cyan;
|
|
27
|
+
break;
|
|
28
|
+
case "debug":
|
|
29
|
+
color = chalk.blue;
|
|
30
|
+
break;
|
|
31
|
+
case "info":
|
|
32
|
+
color = chalk.green;
|
|
33
|
+
break;
|
|
34
|
+
case "warn":
|
|
35
|
+
color = chalk.magenta;
|
|
36
|
+
break;
|
|
37
|
+
case "error":
|
|
38
|
+
color = chalk.bold.red;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
rawMethod(
|
|
42
|
+
`[${methodName}] ` +
|
|
43
|
+
args
|
|
44
|
+
.map((a) => {
|
|
45
|
+
let res = a;
|
|
46
|
+
if (typeof a == "object") {
|
|
47
|
+
res = JSON.stringify(a, undefined, 4);
|
|
48
|
+
}
|
|
49
|
+
return color(res);
|
|
50
|
+
})
|
|
51
|
+
.join(" ")
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
logger.setDefaultLevel("info");
|
|
56
|
+
function setLoggerLevel({ log }) {
|
|
57
|
+
logger.setLevel(log, false);
|
|
58
|
+
}
|
|
59
|
+
|
|
15
60
|
const program = yargs(hideBin(process.argv))
|
|
16
61
|
.scriptName("lzc-cli")
|
|
17
62
|
.usage("<command> [options]")
|
|
18
63
|
.version(`lzc-cli ${pkgInfo.version}`)
|
|
19
|
-
.
|
|
64
|
+
.option("log", {
|
|
65
|
+
type: "string",
|
|
66
|
+
default: "info",
|
|
67
|
+
describe: "log level 'trace', 'debug', 'info', 'warn', 'error'",
|
|
68
|
+
})
|
|
69
|
+
.option("help", {
|
|
70
|
+
alias: "h",
|
|
71
|
+
type: "boolean",
|
|
72
|
+
default: false,
|
|
73
|
+
})
|
|
74
|
+
.completion("completion", false);
|
|
20
75
|
|
|
76
|
+
// Set desc to false to create a hidden command. Hidden commands don’t show up
|
|
77
|
+
// in the help output and aren’t available for completion.
|
|
21
78
|
program.command({
|
|
22
79
|
command: "create <name>",
|
|
23
|
-
desc:
|
|
80
|
+
desc: false,
|
|
24
81
|
aliases: ["c"],
|
|
25
82
|
handler: async ({ name }) => {
|
|
26
83
|
let create = await importDefault("../cmds/create.js");
|
|
@@ -30,7 +87,7 @@ program.command({
|
|
|
30
87
|
|
|
31
88
|
program.command({
|
|
32
89
|
command: "init",
|
|
33
|
-
desc:
|
|
90
|
+
desc: false,
|
|
34
91
|
handler: async () => {
|
|
35
92
|
const { Init } = await import("../cmds/init.js");
|
|
36
93
|
new Init({ cwd: process.cwd() }).create();
|
|
@@ -39,7 +96,7 @@ program.command({
|
|
|
39
96
|
|
|
40
97
|
program.command({
|
|
41
98
|
command: "uninstall",
|
|
42
|
-
desc:
|
|
99
|
+
desc: false,
|
|
43
100
|
handler: async () => {
|
|
44
101
|
const { uninstall } = await importDefault("../cmds/app.js");
|
|
45
102
|
await uninstall();
|
|
@@ -48,7 +105,7 @@ program.command({
|
|
|
48
105
|
|
|
49
106
|
program.command({
|
|
50
107
|
command: "publish",
|
|
51
|
-
desc:
|
|
108
|
+
desc: false,
|
|
52
109
|
handler: async () => {
|
|
53
110
|
// 第一步 打包镜像
|
|
54
111
|
const Publisher = await importDefault("../cmds/publish.js");
|
|
@@ -64,7 +121,7 @@ program.command({
|
|
|
64
121
|
|
|
65
122
|
program.command({
|
|
66
123
|
command: "deploy",
|
|
67
|
-
desc:
|
|
124
|
+
desc: false,
|
|
68
125
|
handler: async () => {
|
|
69
126
|
const { deploy } = await importDefault("../cmds/app.js");
|
|
70
127
|
await deploy();
|
|
@@ -73,7 +130,7 @@ program.command({
|
|
|
73
130
|
|
|
74
131
|
program.command({
|
|
75
132
|
command: "build [context]",
|
|
76
|
-
desc:
|
|
133
|
+
desc: false,
|
|
77
134
|
builder: (args) => {
|
|
78
135
|
args.option("f", {
|
|
79
136
|
alias: "file",
|
|
@@ -116,7 +173,7 @@ let devSubCommands = [
|
|
|
116
173
|
];
|
|
117
174
|
program.command({
|
|
118
175
|
command: "dev",
|
|
119
|
-
desc:
|
|
176
|
+
desc: false,
|
|
120
177
|
builder: (args) => {
|
|
121
178
|
args.command(devSubCommands);
|
|
122
179
|
},
|
|
@@ -124,12 +181,12 @@ program.command({
|
|
|
124
181
|
|
|
125
182
|
program.command({
|
|
126
183
|
command: "log [project]",
|
|
127
|
-
desc:
|
|
184
|
+
desc: false,
|
|
128
185
|
builder: (args) => {
|
|
129
186
|
args.option("u", {
|
|
130
187
|
alias: "user",
|
|
131
188
|
describe: "多实例对应的用户",
|
|
132
|
-
demandOption:
|
|
189
|
+
demandOption: false,
|
|
133
190
|
type: "string",
|
|
134
191
|
});
|
|
135
192
|
},
|
|
@@ -141,7 +198,7 @@ program.command({
|
|
|
141
198
|
|
|
142
199
|
program.command({
|
|
143
200
|
command: "config [key] [value]",
|
|
144
|
-
desc:
|
|
201
|
+
desc: false,
|
|
145
202
|
builder: (args) => {
|
|
146
203
|
args.implies("key", "value");
|
|
147
204
|
args.option("g", {
|
|
@@ -158,5 +215,27 @@ program.command({
|
|
|
158
215
|
});
|
|
159
216
|
|
|
160
217
|
boxCommand(program);
|
|
218
|
+
lpkAppCommand(program);
|
|
219
|
+
lpkProjectCommand(program);
|
|
220
|
+
|
|
221
|
+
const parser = program
|
|
222
|
+
.strict()
|
|
223
|
+
.showHelpOnFail(false, "使用 lzc-cli help 查看更多帮助")
|
|
224
|
+
.middleware([setLoggerLevel])
|
|
225
|
+
.parse();
|
|
161
226
|
|
|
162
|
-
|
|
227
|
+
// 当没有参数的时候,默认显示帮助。
|
|
228
|
+
(async () => {
|
|
229
|
+
const argv = await parser;
|
|
230
|
+
if (argv._.length == 1) {
|
|
231
|
+
switch (argv._[0]) {
|
|
232
|
+
case "box":
|
|
233
|
+
case "app":
|
|
234
|
+
case "project":
|
|
235
|
+
program.showHelp();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
} else if (argv._.length == 0) {
|
|
239
|
+
program.showHelp();
|
|
240
|
+
}
|
|
241
|
+
})();
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
FROM
|
|
1
|
+
FROM registry.lazycat.cloud/lzc/lzcapp:0.1
|
|
2
2
|
|
|
3
3
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
COPY --from=golang:1.18-alpine /usr/local/go/ /usr/local/go/
|
|
6
|
+
|
|
7
|
+
RUN apk add --no-cache openssh rsync musl-dev curl openssl curl nodejs npm \
|
|
6
8
|
&& echo "root:root" | chpasswd
|
|
7
9
|
|
|
8
10
|
EXPOSE 22
|
|
@@ -13,4 +15,4 @@ COPY entrypoint.sh /entrypoint.sh
|
|
|
13
15
|
|
|
14
16
|
RUN chmod +x /entrypoint.sh
|
|
15
17
|
|
|
16
|
-
ENTRYPOINT
|
|
18
|
+
ENTRYPOINT ./entrypoint.sh
|
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
services:
|
|
2
2
|
${APP_ID}:
|
|
3
|
-
image: nginx:1.21.4-alpine
|
|
4
|
-
volumes:
|
|
5
|
-
- ./nginx.conf.template:/etc/nginx/templates/nginx.conf.template
|
|
6
|
-
- ./50x.html:/etc/nginx/50x.html
|
|
7
|
-
environment:
|
|
8
|
-
- NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx
|
|
9
|
-
- APP_DEBUG_PORT=${HTTP_SERVICE_PORT}
|
|
10
|
-
- APP_DEBUG_SHELL=debug-shell.${APP_ID}.lzcapp
|
|
11
|
-
command: [nginx, '-g', 'daemon off;']
|
|
12
|
-
depends_on:
|
|
13
|
-
- debug-shell
|
|
14
|
-
debug-shell:
|
|
15
3
|
image: ${APP_IMAGE_NAME}
|
|
16
4
|
pull_policy: build
|
|
17
5
|
build: .
|
|
6
|
+
environment:
|
|
7
|
+
- HTTP_SERVICE_PORT=${HTTP_SERVICE_PORT}
|
|
18
8
|
volumes:
|
|
19
9
|
- ./debug/ssh:/root/.ssh
|
|
20
10
|
- project-data:/root/
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
FROM alpine
|
|
2
|
+
|
|
3
|
+
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
|
|
4
|
+
|
|
5
|
+
COPY --from=golang:1.18-alpine /usr/local/go/ /usr/local/go/
|
|
6
|
+
|
|
7
|
+
RUN apk add --no-cache openssh musl-dev curl openssl curl nodejs npm sshfs rsync \
|
|
8
|
+
&& echo "root:root" | chpasswd
|
|
9
|
+
|
|
10
|
+
EXPOSE 22
|
|
11
|
+
|
|
12
|
+
COPY sshd_config /etc/ssh/sshd_config
|
|
13
|
+
|
|
14
|
+
COPY entrypoint.sh /entrypoint.sh
|
|
15
|
+
|
|
16
|
+
RUN chmod +x /entrypoint.sh
|
|
17
|
+
|
|
18
|
+
CMD ["./entrypoint.sh"]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
|
|
2
|
+
|
|
3
|
+
# This is the sshd server system-wide configuration file. See
|
|
4
|
+
# sshd_config(5) for more information.
|
|
5
|
+
|
|
6
|
+
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
7
|
+
|
|
8
|
+
# The strategy used for options in the default sshd_config shipped with
|
|
9
|
+
# OpenSSH is to specify options with their default value where
|
|
10
|
+
# possible, but leave them commented. Uncommented options override the
|
|
11
|
+
# default value.
|
|
12
|
+
|
|
13
|
+
# Port 22
|
|
14
|
+
#AddressFamily any
|
|
15
|
+
#ListenAddress 0.0.0.0
|
|
16
|
+
#ListenAddress ::
|
|
17
|
+
|
|
18
|
+
#HostKey /etc/ssh/ssh_host_rsa_key
|
|
19
|
+
#HostKey /etc/ssh/ssh_host_ecdsa_key
|
|
20
|
+
#HostKey /etc/ssh/ssh_host_ed25519_key
|
|
21
|
+
|
|
22
|
+
# Ciphers and keying
|
|
23
|
+
#RekeyLimit default none
|
|
24
|
+
|
|
25
|
+
# Logging
|
|
26
|
+
#SyslogFacility AUTH
|
|
27
|
+
#LogLevel INFO
|
|
28
|
+
|
|
29
|
+
# Authentication:
|
|
30
|
+
|
|
31
|
+
#LoginGraceTime 2m
|
|
32
|
+
PermitRootLogin yes
|
|
33
|
+
#StrictModes yes
|
|
34
|
+
#MaxAuthTries 6
|
|
35
|
+
#MaxSessions 10
|
|
36
|
+
|
|
37
|
+
PubkeyAuthentication yes
|
|
38
|
+
|
|
39
|
+
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
|
40
|
+
# but this is overridden so installations will only check .ssh/authorized_keys
|
|
41
|
+
AuthorizedKeysFile /lzcapp/pkg/content/devshell/authorized_keys
|
|
42
|
+
|
|
43
|
+
#AuthorizedPrincipalsFile none
|
|
44
|
+
|
|
45
|
+
#AuthorizedKeysCommand none
|
|
46
|
+
#AuthorizedKeysCommandUser nobody
|
|
47
|
+
|
|
48
|
+
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
|
49
|
+
#HostbasedAuthentication no
|
|
50
|
+
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
|
51
|
+
# HostbasedAuthentication
|
|
52
|
+
#IgnoreUserKnownHosts no
|
|
53
|
+
# Don't read the user's ~/.rhosts and ~/.shosts files
|
|
54
|
+
#IgnoreRhosts yes
|
|
55
|
+
|
|
56
|
+
# To disable tunneled clear text passwords, change to no here!
|
|
57
|
+
PasswordAuthentication no
|
|
58
|
+
PermitEmptyPasswords no
|
|
59
|
+
|
|
60
|
+
# Change to no to disable s/key passwords
|
|
61
|
+
#KbdInteractiveAuthentication yes
|
|
62
|
+
|
|
63
|
+
# Kerberos options
|
|
64
|
+
#KerberosAuthentication no
|
|
65
|
+
#KerberosOrLocalPasswd yes
|
|
66
|
+
#KerberosTicketCleanup yes
|
|
67
|
+
#KerberosGetAFSToken no
|
|
68
|
+
|
|
69
|
+
# GSSAPI options
|
|
70
|
+
#GSSAPIAuthentication no
|
|
71
|
+
#GSSAPICleanupCredentials yes
|
|
72
|
+
|
|
73
|
+
# Set this to 'yes' to enable PAM authentication, account processing,
|
|
74
|
+
# and session processing. If this is enabled, PAM authentication will
|
|
75
|
+
# be allowed through the KbdInteractiveAuthentication and
|
|
76
|
+
# PasswordAuthentication. Depending on your PAM configuration,
|
|
77
|
+
# PAM authentication via KbdInteractiveAuthentication may bypass
|
|
78
|
+
# the setting of "PermitRootLogin without-password".
|
|
79
|
+
# If you just want the PAM account and session checks to run without
|
|
80
|
+
# PAM authentication, then enable this but set PasswordAuthentication
|
|
81
|
+
# and KbdInteractiveAuthentication to 'no'.
|
|
82
|
+
#UsePAM no
|
|
83
|
+
|
|
84
|
+
#AllowAgentForwarding yes
|
|
85
|
+
# Feel free to re-enable these if your use case requires them.
|
|
86
|
+
AllowTcpForwarding yes
|
|
87
|
+
GatewayPorts yes
|
|
88
|
+
X11Forwarding no
|
|
89
|
+
#X11DisplayOffset 10
|
|
90
|
+
#X11UseLocalhost yes
|
|
91
|
+
#PermitTTY yes
|
|
92
|
+
#PrintMotd yes
|
|
93
|
+
#PrintLastLog yes
|
|
94
|
+
#TCPKeepAlive yes
|
|
95
|
+
#PermitUserEnvironment no
|
|
96
|
+
#Compression delayed
|
|
97
|
+
ClientAliveInterval 3
|
|
98
|
+
ClientAliveCountMax 0
|
|
99
|
+
#UseDNS no
|
|
100
|
+
#PidFile /run/sshd.pid
|
|
101
|
+
#MaxStartups 10:30:100
|
|
102
|
+
#PermitTunnel no
|
|
103
|
+
#ChrootDirectory none
|
|
104
|
+
#VersionAddendum none
|
|
105
|
+
|
|
106
|
+
# no default banner path
|
|
107
|
+
#Banner none
|
|
108
|
+
|
|
109
|
+
# override default of no subsystems
|
|
110
|
+
Subsystem sftp /usr/lib/ssh/sftp-server
|
|
111
|
+
|
|
112
|
+
# Example of overriding settings on a per-user basis
|
|
113
|
+
#Match User anoncvs
|
|
114
|
+
# X11Forwarding no
|
|
115
|
+
# AllowTcpForwarding no
|
|
116
|
+
# PermitTTY no
|
|
117
|
+
# ForceCommand cvs server
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
lzc-sdk-version: 0.1
|
|
2
|
+
|
|
3
|
+
package: ${package} # app的唯一标识符
|
|
4
|
+
version: ${version} # app的版本
|
|
5
|
+
name: ${name} # app名称
|
|
6
|
+
description: ${description} # app描述
|
|
7
|
+
icon: ./icon.svg #必须是当前pkg内路径,会提供给启动器等地方使用
|
|
8
|
+
|
|
9
|
+
license: https://choosealicense.com/licenses/mit/
|
|
10
|
+
homepage: ${homepage} # 出现bug时候提交反馈的地方
|
|
11
|
+
author: ${author} # app author
|
|
12
|
+
|
|
13
|
+
#application作为一个特殊的container运行,对应的service名称为固定的`app`,其他service可以通过此名称与app进行通讯
|
|
14
|
+
application:
|
|
15
|
+
subdomain: ${subdomain} #期望的app域名
|
|
16
|
+
routes:
|
|
17
|
+
- /=file:///lzcapp/pkg/content/
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
FROM alpine
|
|
2
|
+
|
|
3
|
+
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
|
|
4
|
+
|
|
5
|
+
RUN apk add --no-cache openssh openssl sshfs rsync \
|
|
6
|
+
&& echo "root:root" | chpasswd
|
|
7
|
+
|
|
8
|
+
EXPOSE 22
|
|
9
|
+
|
|
10
|
+
COPY sshd_config /etc/ssh/sshd_config
|
|
11
|
+
|
|
12
|
+
COPY entrypoint.sh /entrypoint.sh
|
|
13
|
+
|
|
14
|
+
RUN chmod +x /entrypoint.sh
|
|
15
|
+
|
|
16
|
+
CMD ["./entrypoint.sh"]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
|
|
2
|
+
|
|
3
|
+
# This is the sshd server system-wide configuration file. See
|
|
4
|
+
# sshd_config(5) for more information.
|
|
5
|
+
|
|
6
|
+
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
7
|
+
|
|
8
|
+
# The strategy used for options in the default sshd_config shipped with
|
|
9
|
+
# OpenSSH is to specify options with their default value where
|
|
10
|
+
# possible, but leave them commented. Uncommented options override the
|
|
11
|
+
# default value.
|
|
12
|
+
|
|
13
|
+
# Port 22
|
|
14
|
+
#AddressFamily any
|
|
15
|
+
#ListenAddress 0.0.0.0
|
|
16
|
+
#ListenAddress ::
|
|
17
|
+
|
|
18
|
+
#HostKey /etc/ssh/ssh_host_rsa_key
|
|
19
|
+
#HostKey /etc/ssh/ssh_host_ecdsa_key
|
|
20
|
+
#HostKey /etc/ssh/ssh_host_ed25519_key
|
|
21
|
+
|
|
22
|
+
# Ciphers and keying
|
|
23
|
+
#RekeyLimit default none
|
|
24
|
+
|
|
25
|
+
# Logging
|
|
26
|
+
#SyslogFacility AUTH
|
|
27
|
+
#LogLevel INFO
|
|
28
|
+
|
|
29
|
+
# Authentication:
|
|
30
|
+
|
|
31
|
+
#LoginGraceTime 2m
|
|
32
|
+
PermitRootLogin yes
|
|
33
|
+
#StrictModes yes
|
|
34
|
+
#MaxAuthTries 6
|
|
35
|
+
#MaxSessions 10
|
|
36
|
+
|
|
37
|
+
PubkeyAuthentication yes
|
|
38
|
+
|
|
39
|
+
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
|
40
|
+
# but this is overridden so installations will only check .ssh/authorized_keys
|
|
41
|
+
AuthorizedKeysFile /lzcapp/pkg/content/devshell/authorized_keys
|
|
42
|
+
|
|
43
|
+
#AuthorizedPrincipalsFile none
|
|
44
|
+
|
|
45
|
+
#AuthorizedKeysCommand none
|
|
46
|
+
#AuthorizedKeysCommandUser nobody
|
|
47
|
+
|
|
48
|
+
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
|
49
|
+
#HostbasedAuthentication no
|
|
50
|
+
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
|
51
|
+
# HostbasedAuthentication
|
|
52
|
+
#IgnoreUserKnownHosts no
|
|
53
|
+
# Don't read the user's ~/.rhosts and ~/.shosts files
|
|
54
|
+
#IgnoreRhosts yes
|
|
55
|
+
|
|
56
|
+
# To disable tunneled clear text passwords, change to no here!
|
|
57
|
+
PasswordAuthentication no
|
|
58
|
+
PermitEmptyPasswords no
|
|
59
|
+
|
|
60
|
+
# Change to no to disable s/key passwords
|
|
61
|
+
#KbdInteractiveAuthentication yes
|
|
62
|
+
|
|
63
|
+
# Kerberos options
|
|
64
|
+
#KerberosAuthentication no
|
|
65
|
+
#KerberosOrLocalPasswd yes
|
|
66
|
+
#KerberosTicketCleanup yes
|
|
67
|
+
#KerberosGetAFSToken no
|
|
68
|
+
|
|
69
|
+
# GSSAPI options
|
|
70
|
+
#GSSAPIAuthentication no
|
|
71
|
+
#GSSAPICleanupCredentials yes
|
|
72
|
+
|
|
73
|
+
# Set this to 'yes' to enable PAM authentication, account processing,
|
|
74
|
+
# and session processing. If this is enabled, PAM authentication will
|
|
75
|
+
# be allowed through the KbdInteractiveAuthentication and
|
|
76
|
+
# PasswordAuthentication. Depending on your PAM configuration,
|
|
77
|
+
# PAM authentication via KbdInteractiveAuthentication may bypass
|
|
78
|
+
# the setting of "PermitRootLogin without-password".
|
|
79
|
+
# If you just want the PAM account and session checks to run without
|
|
80
|
+
# PAM authentication, then enable this but set PasswordAuthentication
|
|
81
|
+
# and KbdInteractiveAuthentication to 'no'.
|
|
82
|
+
#UsePAM no
|
|
83
|
+
|
|
84
|
+
#AllowAgentForwarding yes
|
|
85
|
+
# Feel free to re-enable these if your use case requires them.
|
|
86
|
+
AllowTcpForwarding yes
|
|
87
|
+
GatewayPorts yes
|
|
88
|
+
X11Forwarding no
|
|
89
|
+
#X11DisplayOffset 10
|
|
90
|
+
#X11UseLocalhost yes
|
|
91
|
+
#PermitTTY yes
|
|
92
|
+
#PrintMotd yes
|
|
93
|
+
#PrintLastLog yes
|
|
94
|
+
#TCPKeepAlive yes
|
|
95
|
+
#PermitUserEnvironment no
|
|
96
|
+
#Compression delayed
|
|
97
|
+
ClientAliveInterval 3
|
|
98
|
+
ClientAliveCountMax 0
|
|
99
|
+
#UseDNS no
|
|
100
|
+
#PidFile /run/sshd.pid
|
|
101
|
+
#MaxStartups 10:30:100
|
|
102
|
+
#PermitTunnel no
|
|
103
|
+
#ChrootDirectory none
|
|
104
|
+
#VersionAddendum none
|
|
105
|
+
|
|
106
|
+
# no default banner path
|
|
107
|
+
#Banner none
|
|
108
|
+
|
|
109
|
+
# override default of no subsystems
|
|
110
|
+
Subsystem sftp /usr/lib/ssh/sftp-server
|
|
111
|
+
|
|
112
|
+
# Example of overriding settings on a per-user basis
|
|
113
|
+
#Match User anoncvs
|
|
114
|
+
# X11Forwarding no
|
|
115
|
+
# AllowTcpForwarding no
|
|
116
|
+
# PermitTTY no
|
|
117
|
+
# ForceCommand cvs server
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# 整个文件中,可以通过 ${var} 的方式,使用 manifest.yml 文件中定义的值
|
|
2
|
+
|
|
3
|
+
# buildscript
|
|
4
|
+
# - 可以为构建脚本的路径地址
|
|
5
|
+
# - 如果构建命令简单,也可以直接写 sh 的命令
|
|
6
|
+
buildscript: ./build.sh
|
|
7
|
+
|
|
8
|
+
# manifest: 指定 lpk 包的 manifest.yml 文件路径
|
|
9
|
+
manifest: ./manifest.yml
|
|
10
|
+
|
|
11
|
+
# contentdir: 指定打包的内容,将会打包到 lpk 中
|
|
12
|
+
contentdir: ./build
|
|
13
|
+
|
|
14
|
+
# pkgout: lpk 包的输出路径
|
|
15
|
+
pkgout: ./
|
|
16
|
+
|
|
17
|
+
# icon 指定 lpk 包 icon 的路径路径,如果不指定将会警告
|
|
18
|
+
# icon 仅仅允许 png 后缀的文件
|
|
19
|
+
icon: ./lazycat.png
|
|
20
|
+
|
|
21
|
+
# devshell 自定义应用的开发容器环境
|
|
22
|
+
# - routers 指定应用容器的访问路由
|
|
23
|
+
|
|
24
|
+
# devshell 没有指定 image 的情况,将会默认使用 registry.lazycat.cloud/lzc-cli/devshell:latest
|
|
25
|
+
# devshell:
|
|
26
|
+
# routers:
|
|
27
|
+
# - /=http://127.0.0.1:8080
|
|
28
|
+
|
|
29
|
+
# devshell 指定 image 的情况
|
|
30
|
+
# devshell:
|
|
31
|
+
# routes:
|
|
32
|
+
# - /=http://127.0.0.1:3000
|
|
33
|
+
# image: registry.lazycat.cloud/lzc-cli/devshell:0.0.4
|
|
34
|
+
|
|
35
|
+
# devshell 指定构建Dockerfile
|
|
36
|
+
# image 字段如果没有定义,将默认使用 ${package}-devshell:${version}
|
|
37
|
+
# devshell:
|
|
38
|
+
# routes:
|
|
39
|
+
# - /=http://127.0.0.1:3000
|
|
40
|
+
# image: ${package}-devshell:${version}
|
|
41
|
+
# pull_policy: build
|
|
42
|
+
# build: .
|
|
43
|
+
|
|
44
|
+
# dvshell 指定开发依赖的情况
|
|
45
|
+
# 这种情况下,选用 apline:3.16 作为基础镜像,在 dependencies 中添加所需要的开发依赖即可
|
|
46
|
+
# 如果 dependencies 和 build 同时存在,将会优先使用 dependencies
|
|
47
|
+
devshell:
|
|
48
|
+
routes:
|
|
49
|
+
- /=http://127.0.0.1:3000
|
|
50
|
+
dependencies:
|
|
51
|
+
- go
|
|
52
|
+
- vim
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# 整个文件中,可以通过 ${var} 的方式,使用 manifest.yml 文件中定义的值
|
|
2
|
+
|
|
3
|
+
# buildscript
|
|
4
|
+
# - 可以为构建脚本的路径地址
|
|
5
|
+
# - 如果构建命令简单,也可以直接写 sh 的命令
|
|
6
|
+
buildscript: npm run build
|
|
7
|
+
|
|
8
|
+
# manifest: 指定 lpk 包的 manifest.yml 文件路径
|
|
9
|
+
manifest: ./manifest.yml
|
|
10
|
+
|
|
11
|
+
# contentdir: 指定打包的内容,将会打包到 lpk 中
|
|
12
|
+
contentdir: ./dist
|
|
13
|
+
|
|
14
|
+
# pkgout: lpk 包的输出路径
|
|
15
|
+
pkgout: ./
|
|
16
|
+
|
|
17
|
+
# icon 指定 lpk 包 icon 的路径路径,如果不指定将会警告
|
|
18
|
+
# icon 仅仅允许 png 后缀的文件
|
|
19
|
+
icon: ./lazycat.png
|
|
20
|
+
|
|
21
|
+
# devshell 自定义应用的开发容器环境
|
|
22
|
+
# - routers 指定应用容器的访问路由
|
|
23
|
+
|
|
24
|
+
# devshell 没有指定 image 的情况,将会默认使用 registry.lazycat.cloud/lzc-cli/devshell:latest
|
|
25
|
+
# devshell:
|
|
26
|
+
# routers:
|
|
27
|
+
# - /=http://127.0.0.1:8080
|
|
28
|
+
|
|
29
|
+
# devshell 指定 image 的情况
|
|
30
|
+
# devshell:
|
|
31
|
+
# routes:
|
|
32
|
+
# - /=http://127.0.0.1:3000
|
|
33
|
+
# image: registry.lazycat.cloud/lzc-cli/devshell:0.0.4
|
|
34
|
+
|
|
35
|
+
# devshell 指定构建Dockerfile
|
|
36
|
+
# image 字段如果没有定义,将默认使用 ${package}-devshell:${version}
|
|
37
|
+
# devshell:
|
|
38
|
+
# routes:
|
|
39
|
+
# - /=http://127.0.0.1:3000
|
|
40
|
+
# image: ${package}-devshell:${version}
|
|
41
|
+
# pull_policy: build
|
|
42
|
+
# build: .
|
|
43
|
+
|
|
44
|
+
# dvshell 指定开发依赖的情况
|
|
45
|
+
# 这种情况下,选用 apline:3.16 作为基础镜像,在 dependencies 中添加所需要的开发依赖即可
|
|
46
|
+
# 如果 dependencies 和 build 同时存在,将会优先使用 dependencies
|
|
47
|
+
devshell:
|
|
48
|
+
routes:
|
|
49
|
+
- /=http://127.0.0.1:3000
|
|
50
|
+
dependencies:
|
|
51
|
+
- nodejs
|
|
52
|
+
- vim
|
|
53
|
+
- npm
|