@wocker/ws 1.0.23 → 1.0.25
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/lib/AppModule.js +14 -25
- package/lib/controllers/DebugController.d.ts +1 -2
- package/lib/controllers/DebugController.js +4 -6
- package/lib/controllers/ExperimentalController.d.ts +1 -1
- package/lib/controllers/ExperimentalController.js +1 -2
- package/lib/controllers/PluginController.d.ts +1 -1
- package/lib/controllers/PluginController.js +1 -2
- package/lib/controllers/ProjectController.d.ts +7 -11
- package/lib/controllers/ProjectController.js +63 -217
- package/lib/controllers/index.d.ts +0 -1
- package/lib/controllers/index.js +0 -1
- package/lib/env.d.ts +2 -2
- package/lib/env.js +5 -5
- package/lib/main.js +4 -8
- package/lib/makes/index.d.ts +0 -1
- package/lib/makes/index.js +0 -1
- package/lib/modules/core/index.d.ts +2 -0
- package/lib/modules/core/index.js +45 -0
- package/lib/modules/docker/index.d.ts +3 -2
- package/lib/modules/docker/index.js +9 -5
- package/lib/modules/docker/services/ComposeService.d.ts +32 -0
- package/lib/modules/docker/services/ComposeService.js +129 -0
- package/lib/modules/docker/services/DockerService.d.ts +2 -2
- package/lib/modules/docker/services/DockerService.js +7 -29
- package/lib/modules/docker/services/ImageService.d.ts +2 -8
- package/lib/modules/docker/services/ImageService.js +15 -3
- package/lib/modules/docker/services/ModemService.d.ts +4 -2
- package/lib/modules/docker/services/ModemService.js +25 -5
- package/lib/modules/docker/services/ProtoService.js +2 -2
- package/lib/modules/docker/type/ComposeConfig.d.ts +12 -0
- package/lib/modules/docker/type/ComposeConfig.js +2 -0
- package/lib/modules/index.d.ts +3 -0
- package/lib/modules/index.js +3 -0
- package/lib/modules/keystore/controllers/KeystoreController.d.ts +1 -1
- package/lib/modules/keystore/controllers/KeystoreController.js +1 -2
- package/lib/modules/keystore/providers/FileKeystoreProvider.d.ts +3 -4
- package/lib/modules/keystore/providers/FileKeystoreProvider.js +4 -5
- package/lib/modules/keystore/services/KeystoreService.d.ts +3 -3
- package/lib/modules/keystore/services/KeystoreService.js +7 -6
- package/lib/modules/preset/controllers/PresetController.d.ts +18 -0
- package/lib/modules/preset/controllers/PresetController.js +158 -0
- package/lib/modules/preset/controllers/PresetListener.d.ts +15 -0
- package/lib/modules/preset/controllers/PresetListener.js +143 -0
- package/lib/modules/preset/index.d.ts +5 -0
- package/lib/modules/preset/index.js +39 -0
- package/lib/modules/preset/repositories/PresetRepository.d.ts +16 -0
- package/lib/{repositories → modules/preset/repositories}/PresetRepository.js +9 -11
- package/lib/{services → modules/preset/services}/PresetService.d.ts +4 -12
- package/lib/{services → modules/preset/services}/PresetService.js +31 -26
- package/lib/modules/project/controllers/ProjectController.d.ts +14 -0
- package/lib/modules/project/controllers/ProjectController.js +143 -0
- package/lib/modules/project/index.d.ts +5 -0
- package/lib/modules/project/index.js +39 -0
- package/lib/modules/project/repositories/ProjectRepository.d.ts +13 -0
- package/lib/modules/project/repositories/ProjectRepository.js +90 -0
- package/lib/modules/project/services/ProjectService.d.ts +25 -0
- package/lib/modules/project/services/ProjectService.js +253 -0
- package/lib/modules/proxy/controllers/CertController.d.ts +1 -1
- package/lib/modules/proxy/controllers/CertController.js +2 -2
- package/lib/modules/proxy/controllers/ProxyController.d.ts +4 -6
- package/lib/modules/proxy/controllers/ProxyController.js +9 -11
- package/lib/modules/proxy/index.js +3 -1
- package/lib/modules/proxy/services/CertService.d.ts +3 -4
- package/lib/modules/proxy/services/CertService.js +5 -6
- package/lib/modules/proxy/services/ProxyService.d.ts +3 -3
- package/lib/modules/proxy/services/ProxyService.js +18 -18
- package/lib/services/PluginService.d.ts +1 -3
- package/lib/services/PluginService.js +9 -13
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/index.js +0 -1
- package/package.json +7 -6
- package/lib/controllers/PresetController.d.ts +0 -27
- package/lib/controllers/PresetController.js +0 -364
- package/lib/makes/Logger.d.ts +0 -9
- package/lib/makes/Logger.js +0 -34
- package/lib/modules/app/index.d.ts +0 -2
- package/lib/modules/app/index.js +0 -16
- package/lib/repositories/PresetRepository.d.ts +0 -23
- package/lib/repositories/index.d.ts +0 -1
- package/lib/repositories/index.js +0 -17
- package/lib/services/AppConfigService.d.ts +0 -24
- package/lib/services/AppConfigService.js +0 -154
- package/lib/services/AppEventsService.d.ts +0 -9
- package/lib/services/AppEventsService.js +0 -43
- package/lib/services/LogService.d.ts +0 -15
- package/lib/services/LogService.js +0 -67
- package/lib/services/ProjectService.d.ts +0 -27
- package/lib/services/ProjectService.js +0 -206
- package/lib/utils/followProgress2.d.ts +0 -1
- package/lib/utils/followProgress2.js +0 -63
- package/plugins/proxmox/Dockerfile +0 -35
- package/plugins/proxy/Dockerfile +0 -25
- package/plugins/proxy/Procfile +0 -2
- package/plugins/proxy/bin/wocker-create-ca +0 -19
- package/plugins/proxy/bin/wocker-create-cert +0 -38
- package/plugins/proxy/bin/wocker-create-domains +0 -21
- package/presets/go/Dockerfile +0 -19
- package/presets/go/config.json +0 -14
- package/presets/php-fpm/Dockerfile +0 -173
- package/presets/php-fpm/bin/compare-version +0 -3
- package/presets/php-fpm/config.json +0 -55
- package/presets/php-fpm/etc/nginx/sites-available/default.conf +0 -36
- package/presets/shopify/Dockerfile +0 -160
- package/presets/shopify/bin/compare-version +0 -3
- package/presets/shopify/config.json +0 -26
- package/presets/shopify/etc/apache2/apache2.conf +0 -230
- package/presets/shopify/etc/apache2/mods-available/mpm_prefork.conf +0 -16
- package/presets/shopify/etc/apache2/sites-available/000-default.conf +0 -21
- package/proto/buildkit.proto +0 -55
- package/proto/solver/pb/ops.proto +0 -443
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AppEventsService = void 0;
|
|
10
|
-
const core_1 = require("@wocker/core");
|
|
11
|
-
let AppEventsService = class AppEventsService extends core_1.AppEventsService {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.handles = {};
|
|
15
|
-
}
|
|
16
|
-
on(event, handle) {
|
|
17
|
-
if (!this.handles[event]) {
|
|
18
|
-
this.handles[event] = new Set();
|
|
19
|
-
}
|
|
20
|
-
this.handles[event].add(handle);
|
|
21
|
-
return () => {
|
|
22
|
-
this.off(event, handle);
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
off(event, handle) {
|
|
26
|
-
if (!this.handles[event]) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
this.handles[event].delete(handle);
|
|
30
|
-
}
|
|
31
|
-
async emit(event, ...args) {
|
|
32
|
-
if (!this.handles[event]) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
for (const handle of this.handles[event].values()) {
|
|
36
|
-
await handle(...args);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
exports.AppEventsService = AppEventsService;
|
|
41
|
-
exports.AppEventsService = AppEventsService = __decorate([
|
|
42
|
-
(0, core_1.Injectable)("APP_EVENTS_SERVICE")
|
|
43
|
-
], AppEventsService);
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { FileSystem, LogService as CoreLogService } from "@wocker/core";
|
|
2
|
-
import { AppConfigService } from "./AppConfigService";
|
|
3
|
-
export declare class LogService extends CoreLogService {
|
|
4
|
-
protected readonly appConfigService: AppConfigService;
|
|
5
|
-
constructor(appConfigService: AppConfigService);
|
|
6
|
-
protected get fs(): FileSystem;
|
|
7
|
-
protected get logName(): string;
|
|
8
|
-
debug(...data: any[]): void;
|
|
9
|
-
log(...data: any[]): void;
|
|
10
|
-
info(...data: any[]): void;
|
|
11
|
-
warn(...data: any[]): void;
|
|
12
|
-
error(...data: any[]): void;
|
|
13
|
-
clear(): void;
|
|
14
|
-
protected _log(type: string, ...data: any[]): void;
|
|
15
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.LogService = void 0;
|
|
16
|
-
const core_1 = require("@wocker/core");
|
|
17
|
-
const format_1 = __importDefault(require("date-fns/format"));
|
|
18
|
-
const makes_1 = require("../makes");
|
|
19
|
-
const AppConfigService_1 = require("./AppConfigService");
|
|
20
|
-
let LogService = class LogService extends core_1.LogService {
|
|
21
|
-
constructor(appConfigService) {
|
|
22
|
-
super();
|
|
23
|
-
this.appConfigService = appConfigService;
|
|
24
|
-
makes_1.Logger.install(this);
|
|
25
|
-
}
|
|
26
|
-
get fs() {
|
|
27
|
-
return this.appConfigService.fs;
|
|
28
|
-
}
|
|
29
|
-
get logName() {
|
|
30
|
-
return "ws.log";
|
|
31
|
-
}
|
|
32
|
-
debug(...data) {
|
|
33
|
-
this._log("debug", ...data);
|
|
34
|
-
}
|
|
35
|
-
log(...data) {
|
|
36
|
-
this._log("log", ...data);
|
|
37
|
-
}
|
|
38
|
-
info(...data) {
|
|
39
|
-
this._log("info", ...data);
|
|
40
|
-
}
|
|
41
|
-
warn(...data) {
|
|
42
|
-
this._log("warn", ...data);
|
|
43
|
-
}
|
|
44
|
-
error(...data) {
|
|
45
|
-
this._log("error", ...data);
|
|
46
|
-
}
|
|
47
|
-
clear() {
|
|
48
|
-
this.fs.writeFile(this.logName, "");
|
|
49
|
-
}
|
|
50
|
-
_log(type, ...data) {
|
|
51
|
-
if (type === "debug" && !this.appConfigService.config.debug) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const time = (0, format_1.default)(new Date(), "yyyy-MM-dd HH:mm:ss"), logData = data.map((item) => {
|
|
55
|
-
return typeof item !== "string" ? JSON.stringify(item) : item;
|
|
56
|
-
}).join(" ");
|
|
57
|
-
if (!this.fs.exists(this.logName)) {
|
|
58
|
-
this.fs.writeFile(this.logName, "");
|
|
59
|
-
}
|
|
60
|
-
this.fs.appendFile(this.logName, `[${time}] ${type}: ${logData}\n`);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
exports.LogService = LogService;
|
|
64
|
-
exports.LogService = LogService = __decorate([
|
|
65
|
-
(0, core_1.Injectable)("LOG_SERVICE"),
|
|
66
|
-
__metadata("design:paramtypes", [AppConfigService_1.AppConfigService])
|
|
67
|
-
], LogService);
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Project, ProjectProperties } from "@wocker/core";
|
|
2
|
-
import { DockerService } from "../modules/docker";
|
|
3
|
-
import { KeystoreService } from "../modules/keystore";
|
|
4
|
-
import { AppConfigService } from "./AppConfigService";
|
|
5
|
-
import { AppEventsService } from "./AppEventsService";
|
|
6
|
-
type SearchParams = Partial<{
|
|
7
|
-
name: string;
|
|
8
|
-
path: string;
|
|
9
|
-
}>;
|
|
10
|
-
export declare class ProjectService {
|
|
11
|
-
protected readonly appConfigService: AppConfigService;
|
|
12
|
-
protected readonly appEventsService: AppEventsService;
|
|
13
|
-
protected readonly keystoreService: KeystoreService;
|
|
14
|
-
protected readonly dockerService: DockerService;
|
|
15
|
-
constructor(appConfigService: AppConfigService, appEventsService: AppEventsService, keystoreService: KeystoreService, dockerService: DockerService);
|
|
16
|
-
fromObject(data: Partial<ProjectProperties>): Project;
|
|
17
|
-
get(name?: string): Project;
|
|
18
|
-
getById(id: string): Project;
|
|
19
|
-
cdProject(name: string): void;
|
|
20
|
-
start(project: Project, restart?: boolean, rebuild?: boolean): Promise<void>;
|
|
21
|
-
stop(project: Project): Promise<void>;
|
|
22
|
-
save(project: Project): void;
|
|
23
|
-
search(params?: Partial<SearchParams>): Project[];
|
|
24
|
-
searchOne(params?: Partial<SearchParams>): Project | null;
|
|
25
|
-
logs(detach?: boolean): Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ProjectService = void 0;
|
|
13
|
-
const core_1 = require("@wocker/core");
|
|
14
|
-
const docker_1 = require("../modules/docker");
|
|
15
|
-
const keystore_1 = require("../modules/keystore");
|
|
16
|
-
const AppConfigService_1 = require("./AppConfigService");
|
|
17
|
-
const AppEventsService_1 = require("./AppEventsService");
|
|
18
|
-
let ProjectService = class ProjectService {
|
|
19
|
-
constructor(appConfigService, appEventsService, keystoreService, dockerService) {
|
|
20
|
-
this.appConfigService = appConfigService;
|
|
21
|
-
this.appEventsService = appEventsService;
|
|
22
|
-
this.keystoreService = keystoreService;
|
|
23
|
-
this.dockerService = dockerService;
|
|
24
|
-
}
|
|
25
|
-
fromObject(data) {
|
|
26
|
-
const _this = this;
|
|
27
|
-
return new class extends core_1.Project {
|
|
28
|
-
constructor(data) {
|
|
29
|
-
super(data);
|
|
30
|
-
}
|
|
31
|
-
async getSecret(key, defaultValue) {
|
|
32
|
-
return _this.keystoreService.get(`p:${this.name}:${key}`, defaultValue);
|
|
33
|
-
}
|
|
34
|
-
async setSecret(key, value) {
|
|
35
|
-
return _this.keystoreService.set(`p:${this.name}:${key}`, value);
|
|
36
|
-
}
|
|
37
|
-
save() {
|
|
38
|
-
_this.save(this);
|
|
39
|
-
}
|
|
40
|
-
}(data);
|
|
41
|
-
}
|
|
42
|
-
get(name) {
|
|
43
|
-
const project = name
|
|
44
|
-
? this.searchOne({ name })
|
|
45
|
-
: this.searchOne({
|
|
46
|
-
path: this.appConfigService.pwd()
|
|
47
|
-
});
|
|
48
|
-
if (!project) {
|
|
49
|
-
throw new Error("Project not found");
|
|
50
|
-
}
|
|
51
|
-
if (name) {
|
|
52
|
-
this.appConfigService.setPWD(project.path);
|
|
53
|
-
}
|
|
54
|
-
return project;
|
|
55
|
-
}
|
|
56
|
-
getById(id) {
|
|
57
|
-
const projectData = this.appConfigService.config.getProject(id);
|
|
58
|
-
const data = this.appConfigService.fs.readJSON("projects", id, "config.json");
|
|
59
|
-
return this.fromObject({
|
|
60
|
-
...data,
|
|
61
|
-
path: projectData.path
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
cdProject(name) {
|
|
65
|
-
const project = this.searchOne({
|
|
66
|
-
name
|
|
67
|
-
});
|
|
68
|
-
if (!project) {
|
|
69
|
-
throw new Error("Project not found");
|
|
70
|
-
}
|
|
71
|
-
this.appConfigService.setPWD(project.path);
|
|
72
|
-
}
|
|
73
|
-
async start(project, restart, rebuild) {
|
|
74
|
-
let container = await this.dockerService.getContainer(project.containerName);
|
|
75
|
-
if (container && (restart || rebuild)) {
|
|
76
|
-
container = null;
|
|
77
|
-
await this.appEventsService.emit("project:stop", project);
|
|
78
|
-
await this.dockerService.removeContainer(project.containerName);
|
|
79
|
-
}
|
|
80
|
-
if (!container) {
|
|
81
|
-
if (project.type === core_1.PROJECT_TYPE_DOCKERFILE) {
|
|
82
|
-
project.imageName = `project-${project.name}:develop`;
|
|
83
|
-
if (rebuild) {
|
|
84
|
-
await this.dockerService.imageRm(project.imageName);
|
|
85
|
-
}
|
|
86
|
-
const images = await this.dockerService.imageLs({
|
|
87
|
-
tag: project.imageName
|
|
88
|
-
});
|
|
89
|
-
if (images.length === 0) {
|
|
90
|
-
await this.dockerService.buildImage({
|
|
91
|
-
tag: project.imageName,
|
|
92
|
-
buildArgs: project.buildArgs,
|
|
93
|
-
context: this.appConfigService.pwd(),
|
|
94
|
-
src: project.dockerfile
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (rebuild) {
|
|
99
|
-
await this.appEventsService.emit("project:rebuild", project);
|
|
100
|
-
}
|
|
101
|
-
await this.appEventsService.emit("project:beforeStart", project);
|
|
102
|
-
const config = this.appConfigService.getConfig();
|
|
103
|
-
container = await this.dockerService.createContainer({
|
|
104
|
-
name: project.containerName,
|
|
105
|
-
image: project.imageName,
|
|
106
|
-
env: {
|
|
107
|
-
...config.env || {},
|
|
108
|
-
...project.env || {}
|
|
109
|
-
},
|
|
110
|
-
ports: project.ports || [],
|
|
111
|
-
volumes: (project.volumes || []).map((volume) => {
|
|
112
|
-
const regVolume = /^([^:]+):([^:]+)(?::([^:]+))?$/;
|
|
113
|
-
const [, source, destination, options] = regVolume.exec(volume);
|
|
114
|
-
if (source.startsWith("/")) {
|
|
115
|
-
return volume;
|
|
116
|
-
}
|
|
117
|
-
return `${this.appConfigService.pwd(source)}:${destination}` + (options ? `:${options}` : "");
|
|
118
|
-
}),
|
|
119
|
-
extraHosts: Object.keys(project.extraHosts || {}).map((host) => {
|
|
120
|
-
return `${project.extraHosts[host]}:${host}`;
|
|
121
|
-
})
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
const { State: { Status } } = await container.inspect();
|
|
125
|
-
if (Status === "created" || Status === "exited") {
|
|
126
|
-
await container.start();
|
|
127
|
-
}
|
|
128
|
-
await this.appEventsService.emit("project:start", project);
|
|
129
|
-
}
|
|
130
|
-
async stop(project) {
|
|
131
|
-
const container = await this.dockerService.getContainer(project.containerName);
|
|
132
|
-
if (!container) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
await this.appEventsService.emit("project:stop", project);
|
|
136
|
-
await this.dockerService.removeContainer(project.containerName);
|
|
137
|
-
}
|
|
138
|
-
save(project) {
|
|
139
|
-
if (!project.name) {
|
|
140
|
-
throw new Error("Project should has a name");
|
|
141
|
-
}
|
|
142
|
-
if (!project.path) {
|
|
143
|
-
throw new Error("Project should has a path");
|
|
144
|
-
}
|
|
145
|
-
if (!project.id) {
|
|
146
|
-
project.id = project.name;
|
|
147
|
-
}
|
|
148
|
-
if (!this.appConfigService.fs.exists(`projects/${project.id}`)) {
|
|
149
|
-
this.appConfigService.fs.mkdir(`projects/${project.id}`, {
|
|
150
|
-
recursive: true
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
const { path, ...rest } = project.toJSON();
|
|
154
|
-
this.appConfigService.addProject(project.id, project.name, path);
|
|
155
|
-
this.appConfigService.fs.writeJSON(`projects/${project.id}/config.json`, rest);
|
|
156
|
-
this.appConfigService.save();
|
|
157
|
-
}
|
|
158
|
-
search(params = {}) {
|
|
159
|
-
const { name, path } = params;
|
|
160
|
-
const projects = [];
|
|
161
|
-
for (const projectRef of this.appConfigService.projects || []) {
|
|
162
|
-
if (name && projectRef.name !== name) {
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
if (path && projectRef.path !== path) {
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
const project = this.getById(projectRef.name);
|
|
169
|
-
if (name && project.name !== name) {
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
projects.push(project);
|
|
173
|
-
}
|
|
174
|
-
return projects;
|
|
175
|
-
}
|
|
176
|
-
searchOne(params = {}) {
|
|
177
|
-
const [project] = this.search(params);
|
|
178
|
-
return project || null;
|
|
179
|
-
}
|
|
180
|
-
async logs(detach) {
|
|
181
|
-
const project = this.get();
|
|
182
|
-
const container = await this.dockerService.getContainer(project.containerName);
|
|
183
|
-
if (!container) {
|
|
184
|
-
throw new Error("Project not started");
|
|
185
|
-
}
|
|
186
|
-
if (!detach) {
|
|
187
|
-
await this.dockerService.logs(container);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
const data = await container.logs({
|
|
191
|
-
stdout: true,
|
|
192
|
-
stderr: true,
|
|
193
|
-
follow: false
|
|
194
|
-
});
|
|
195
|
-
process.stdout.write(data);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
exports.ProjectService = ProjectService;
|
|
200
|
-
exports.ProjectService = ProjectService = __decorate([
|
|
201
|
-
(0, core_1.Injectable)("PROJECT_SERVICE"),
|
|
202
|
-
__metadata("design:paramtypes", [AppConfigService_1.AppConfigService,
|
|
203
|
-
AppEventsService_1.AppEventsService,
|
|
204
|
-
keystore_1.KeystoreService,
|
|
205
|
-
docker_1.DockerService])
|
|
206
|
-
], ProjectService);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const followProgress2: (stream: NodeJS.ReadableStream) => Promise<void>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.followProgress2 = void 0;
|
|
7
|
-
const protobufjs_1 = __importDefault(require("protobufjs"));
|
|
8
|
-
const yoctocolors_cjs_1 = __importDefault(require("yoctocolors-cjs"));
|
|
9
|
-
const env_1 = require("../env");
|
|
10
|
-
const followProgress2 = async (stream) => {
|
|
11
|
-
const root = await protobufjs_1.default.load([
|
|
12
|
-
`${env_1.ROOT_DIR}/proto/solver/pb/ops.proto`,
|
|
13
|
-
`${env_1.ROOT_DIR}/proto/buildkit.proto`
|
|
14
|
-
]);
|
|
15
|
-
const StatusResponse = root.lookupType("moby.buildkit.v1.StatusResponse");
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
let isEnded = false;
|
|
18
|
-
let success = 0, error = 0;
|
|
19
|
-
const handleEnd = () => {
|
|
20
|
-
if (!isEnded) {
|
|
21
|
-
isEnded = true;
|
|
22
|
-
console.log(`success: ${success} errors: ${error}`);
|
|
23
|
-
resolve();
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
stream.on("data", (data) => {
|
|
28
|
-
const content = data.toString().replace(/}\s*\{/g, '},{'), items = JSON.parse(`[${content}]`);
|
|
29
|
-
for (const item of items) {
|
|
30
|
-
switch (item.id) {
|
|
31
|
-
case "moby.buildkit.trace": {
|
|
32
|
-
if (!item.aux) {
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
let buffer = Buffer.from(item.aux, "base64");
|
|
36
|
-
try {
|
|
37
|
-
const decoded = StatusResponse.decode(buffer);
|
|
38
|
-
const obj = StatusResponse.toObject(decoded, {
|
|
39
|
-
enums: String,
|
|
40
|
-
longs: String,
|
|
41
|
-
bytes: String,
|
|
42
|
-
defaults: true,
|
|
43
|
-
});
|
|
44
|
-
console.dir(obj, { depth: null });
|
|
45
|
-
success++;
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
error++;
|
|
49
|
-
console.error(yoctocolors_cjs_1.default.red(`Error: ${err.message}`));
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
default:
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
stream.on("end", handleEnd);
|
|
59
|
-
stream.on("close", handleEnd);
|
|
60
|
-
stream.on("error", reject);
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
exports.followProgress2 = followProgress2;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
FROM debian:stable
|
|
2
|
-
|
|
3
|
-
RUN apt-get update \
|
|
4
|
-
&& apt-get install -y wget
|
|
5
|
-
|
|
6
|
-
RUN apt-get update && apt-get install -y gnupg
|
|
7
|
-
|
|
8
|
-
RUN echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" | tee /etc/apt/sources.list.d/pve-install-repo.list
|
|
9
|
-
|
|
10
|
-
#RUN wget http://download.proxmox.com/debian/proxmox-release-bullseye.gpg
|
|
11
|
-
RUN wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg
|
|
12
|
-
RUN apt-key add proxmox-ve-release-6.x.gpg
|
|
13
|
-
|
|
14
|
-
RUN echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
|
|
15
|
-
|
|
16
|
-
RUN apt update
|
|
17
|
-
RUN apt install proxmox-ve postfix open-iscsi
|
|
18
|
-
|
|
19
|
-
# RUN apt remove os-prober
|
|
20
|
-
|
|
21
|
-
#RUN mv proxmox-release-bullseye.gpg /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
|
|
22
|
-
|
|
23
|
-
#RUN chmod +r /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
|
|
24
|
-
|
|
25
|
-
#RUN apt update
|
|
26
|
-
|
|
27
|
-
#RUN apt full-upgrade -y
|
|
28
|
-
|
|
29
|
-
#RUN apt update
|
|
30
|
-
|
|
31
|
-
#RUN echo "deb http://download.proxmox.com/debian/ceph-pacific bullseye main" | tee /etc/apt/sources.list.d/ceph.list
|
|
32
|
-
|
|
33
|
-
# RUN apt-get install -y proxmox-ve postfix open-iscsi
|
|
34
|
-
|
|
35
|
-
#RUN apt update
|
package/plugins/proxy/Dockerfile
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
FROM nginxproxy/nginx-proxy:1.6.4-alpine
|
|
2
|
-
|
|
3
|
-
ARG SSH_PASSWORD=''
|
|
4
|
-
|
|
5
|
-
COPY ./bin/wocker-create-ca /usr/local/bin/wocker-create-ca
|
|
6
|
-
COPY ./bin/wocker-create-cert /usr/local/bin/wocker-create-cert
|
|
7
|
-
COPY ./bin/wocker-create-domains /usr/local/bin/wocker-create-domains
|
|
8
|
-
|
|
9
|
-
RUN chmod +x /usr/local/bin/wocker-create-ca && \
|
|
10
|
-
chmod +x /usr/local/bin/wocker-create-cert && \
|
|
11
|
-
chmod +x /usr/local/bin/wocker-create-domains
|
|
12
|
-
|
|
13
|
-
RUN if [ -n "$SSH_PASSWORD" ]; then \
|
|
14
|
-
apk update && apk add --no-cache openssh; \
|
|
15
|
-
mkdir -p /var/run/sshd; \
|
|
16
|
-
echo "root:$SSH_PASSWORD" | chpasswd; \
|
|
17
|
-
sed -i 's/AllowTcpForwarding no/AllowTcpForwarding yes/' /etc/ssh/sshd_config; \
|
|
18
|
-
sed -i 's/GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config; \
|
|
19
|
-
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \
|
|
20
|
-
sed -i 's/#UsePAM yes/UsePAM no/' /etc/ssh/sshd_config; \
|
|
21
|
-
ssh-keygen -A; \
|
|
22
|
-
echo "sshd: /usr/sbin/sshd -D" >> /app/Procfile; \
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
EXPOSE 22
|
package/plugins/proxy/Procfile
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
CA_DIR=/etc/nginx/ca-certs
|
|
4
|
-
|
|
5
|
-
if [ ! -f $CA_DIR/Wocker-CA.key ]; then
|
|
6
|
-
mkdir -p $CA_DIR
|
|
7
|
-
|
|
8
|
-
openssl req -x509 -nodes -new -sha256 \
|
|
9
|
-
-days 1024 \
|
|
10
|
-
-newkey rsa:2048 \
|
|
11
|
-
-keyout $CA_DIR/Wocker-CA.key \
|
|
12
|
-
-out $CA_DIR/Wocker-CA.pem \
|
|
13
|
-
-subj "/C=UA/ST=Kyiv/O=Wocker/CN=Wocker-CA"
|
|
14
|
-
|
|
15
|
-
openssl x509 \
|
|
16
|
-
-outform pem \
|
|
17
|
-
-in $CA_DIR/Wocker-CA.pem \
|
|
18
|
-
-out $CA_DIR/Wocker-CA.crt
|
|
19
|
-
fi
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
if [ -z "$1" ]; then
|
|
4
|
-
echo "Usage: $0 <name>"
|
|
5
|
-
exit 1
|
|
6
|
-
fi
|
|
7
|
-
|
|
8
|
-
NAME=$1
|
|
9
|
-
CA_DIR=/etc/nginx/ca-certs
|
|
10
|
-
CERT_DIR=/etc/nginx/certs
|
|
11
|
-
DAYS_VALID=365
|
|
12
|
-
COUNTRY="UA"
|
|
13
|
-
STATE="Kyiv"
|
|
14
|
-
CITY="Kyiv"
|
|
15
|
-
ORGANIZATION="Wocker"
|
|
16
|
-
ORG_UNIT="Wocker"
|
|
17
|
-
COMMON_NAME=$NAME
|
|
18
|
-
|
|
19
|
-
mkdir -p $CERT_DIR
|
|
20
|
-
|
|
21
|
-
openssl req \
|
|
22
|
-
-new \
|
|
23
|
-
-nodes \
|
|
24
|
-
-newkey rsa:2048 \
|
|
25
|
-
-keyout $CERT_DIR/$NAME.key \
|
|
26
|
-
-out $CERT_DIR/$NAME.csr \
|
|
27
|
-
-subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORG_UNIT/CN=$COMMON_NAME"
|
|
28
|
-
|
|
29
|
-
openssl x509 \
|
|
30
|
-
-req \
|
|
31
|
-
-sha256 \
|
|
32
|
-
-days 1024 \
|
|
33
|
-
-in $CERT_DIR/$NAME.csr \
|
|
34
|
-
-CA $CA_DIR/Wocker-CA.pem \
|
|
35
|
-
-CAkey $CA_DIR/Wocker-CA.key \
|
|
36
|
-
-CAcreateserial \
|
|
37
|
-
-extfile $CERT_DIR/$NAME.ext \
|
|
38
|
-
-out $CERT_DIR/$NAME.crt
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
NAME=$1
|
|
4
|
-
CERT_DIR=/etc/nginx/certs
|
|
5
|
-
|
|
6
|
-
shift
|
|
7
|
-
|
|
8
|
-
CONTENT="authorityKeyIdentifier=keyid,issuer
|
|
9
|
-
basicConstraints=CA:FALSE
|
|
10
|
-
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
|
|
11
|
-
subjectAltName = @alt_names
|
|
12
|
-
[alt_names]"
|
|
13
|
-
|
|
14
|
-
index=1
|
|
15
|
-
for arg in "$@"; do
|
|
16
|
-
CONTENT="$CONTENT
|
|
17
|
-
DNS.$index = $arg"
|
|
18
|
-
((index++))
|
|
19
|
-
done
|
|
20
|
-
|
|
21
|
-
echo "$CONTENT" > $CERT_DIR/$NAME.ext
|
package/presets/go/Dockerfile
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
FROM golang:latest
|
|
2
|
-
|
|
3
|
-
ENV GO_RUN "go run main.go"
|
|
4
|
-
|
|
5
|
-
WORKDIR /usr/app
|
|
6
|
-
|
|
7
|
-
# -----
|
|
8
|
-
RUN apt-get update
|
|
9
|
-
RUN apt-get install -y \
|
|
10
|
-
xvfb \
|
|
11
|
-
libfontconfig \
|
|
12
|
-
wkhtmltopdf
|
|
13
|
-
# -----
|
|
14
|
-
|
|
15
|
-
EXPOSE 80
|
|
16
|
-
|
|
17
|
-
CMD go mod download && \
|
|
18
|
-
# go get github.com/loov/watchrun && \
|
|
19
|
-
${GO_RUN}
|