@maka/maka-cli 5.123.0 → 5.123.1
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/README.md +64 -64
- package/bundle/typescript/package.json +120 -120
- package/bundle/typescript/src/README.md +64 -64
- package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
- package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
- package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/build/build.js +16 -16
- package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
- package/bundle/typescript/src/commands/create.js +36 -36
- package/bundle/typescript/src/commands/debug.js +4 -4
- package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
- package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/env/env.command.js +8 -8
- package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +206 -206
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/generate.js +2 -2
- package/bundle/typescript/src/commands/lint.js +10 -10
- package/bundle/typescript/src/commands/maka.cmd.js +26 -26
- package/bundle/typescript/src/commands/murder.js +14 -14
- package/bundle/typescript/src/commands/proxy.js +13 -13
- package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
- package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/run/run.command.js +24 -24
- package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/set/set.command.js +3 -3
- package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
- package/bundle/typescript/src/exec.js +0 -0
- package/bundle/typescript/src/generators/api.js +11 -11
- package/bundle/typescript/src/generators/collection.js +6 -6
- package/bundle/typescript/src/generators/hook.js +10 -10
- package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
- package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
- package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
- package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
- package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
- package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
- package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
- package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
- package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
- package/bundle/typescript/src/generators/services/translation.js +5 -5
- package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
- package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
- package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
- package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
- package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
- package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
- package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
- package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
- package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
- package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
- package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
- package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
- package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
- package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
- package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
- package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
- package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
- package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
- package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
- package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
- package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
- package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
- package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
- package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
- package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
- package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
- package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
- package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
- package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
- package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
- package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
- package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
- package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
- package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
- package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
- package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
- package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
- package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
- package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
- package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
- package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
- package/bundle/typescript/src/templates/react/component/component.css +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
- package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
- package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
- package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
- package/bundle/typescript/src/templates/react/route/route.js +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
- package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
- package/bundle/typescript/src/templates/react/test/test.js +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
- package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
- package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
- package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
- package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
- package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
- package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
- package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
- package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
- package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
- package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
- package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
- package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
- package/package.json +120 -120
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { Mongo } from 'meteor/mongo';<% if (where === 'client') { -%>
|
|
2
|
-
export const <%= name %> = new Mongo.Collection(null);<% } else { -%>
|
|
3
|
-
|
|
4
|
-
class <%= name %>Collection extends Mongo.Collection {
|
|
5
|
-
constructor() {
|
|
6
|
-
super('<%= name %>');
|
|
7
|
-
|
|
8
|
-
this.publicFields = {};
|
|
9
|
-
this.privateFields = {};
|
|
10
|
-
this.allow({
|
|
11
|
-
insert() { return false; },
|
|
12
|
-
update() { return false; },
|
|
13
|
-
remove() { return false; },
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async createIndexAsync(index, options) {
|
|
18
|
-
return await createIndexAsync(index, options);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
find(selector = {}, modifier) {
|
|
22
|
-
return super.find(selector, modifier);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async findOneAsync(selector = {}, modifier) {
|
|
26
|
-
return await super.findOneAsync(selector, modifier);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async insertAsync(doc) {
|
|
30
|
-
return await super.insertAsync(doc);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async updateAsync(selector, modifier) {
|
|
34
|
-
return await super.updateAsync(selector, modifier);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async upsertAsync(selector, modifier, options) {
|
|
38
|
-
return await super.upsertAsync(selector, modifier, options);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async remove(selector) {
|
|
42
|
-
return await super.removeAsync(selector);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @memberof Server.<%= name %>
|
|
48
|
-
* @member <%= name %>
|
|
49
|
-
*/
|
|
50
|
-
const <%= name %> = new <%= name %>Collection();
|
|
51
|
-
export default <%= name %>;<% } %>
|
|
1
|
+
import { Mongo } from 'meteor/mongo';<% if (where === 'client') { -%>
|
|
2
|
+
export const <%= name %> = new Mongo.Collection(null);<% } else { -%>
|
|
3
|
+
|
|
4
|
+
class <%= name %>Collection extends Mongo.Collection {
|
|
5
|
+
constructor() {
|
|
6
|
+
super('<%= name %>');
|
|
7
|
+
|
|
8
|
+
this.publicFields = {};
|
|
9
|
+
this.privateFields = {};
|
|
10
|
+
this.allow({
|
|
11
|
+
insert() { return false; },
|
|
12
|
+
update() { return false; },
|
|
13
|
+
remove() { return false; },
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async createIndexAsync(index, options) {
|
|
18
|
+
return await createIndexAsync(index, options);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
find(selector = {}, modifier) {
|
|
22
|
+
return super.find(selector, modifier);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async findOneAsync(selector = {}, modifier) {
|
|
26
|
+
return await super.findOneAsync(selector, modifier);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async insertAsync(doc) {
|
|
30
|
+
return await super.insertAsync(doc);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async updateAsync(selector, modifier) {
|
|
34
|
+
return await super.updateAsync(selector, modifier);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async upsertAsync(selector, modifier, options) {
|
|
38
|
+
return await super.upsertAsync(selector, modifier, options);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async remove(selector) {
|
|
42
|
+
return await super.removeAsync(selector);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @memberof Server.<%= name %>
|
|
48
|
+
* @member <%= name %>
|
|
49
|
+
*/
|
|
50
|
+
const <%= name %> = new <%= name %>Collection();
|
|
51
|
+
export default <%= name %>;<% } %>
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { Mongo } from 'meteor/mongo';<% if (where === 'client') { -%>
|
|
2
|
-
export const <%= name %> = new Mongo.Collection(null);<% } else { %>
|
|
3
|
-
|
|
4
|
-
class <%= name %>Collection extends Mongo.Collection<<%=name%>Collection> {
|
|
5
|
-
publicFields: any;
|
|
6
|
-
privateFields: any;
|
|
7
|
-
allow: any = () => {};
|
|
8
|
-
|
|
9
|
-
constructor() {
|
|
10
|
-
super('<%= name %>');
|
|
11
|
-
|
|
12
|
-
this.publicFields = {};
|
|
13
|
-
this.privateFields = {};
|
|
14
|
-
this.allow({
|
|
15
|
-
insert() { return false; },
|
|
16
|
-
update() { return false; },
|
|
17
|
-
remove() { return false; },
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async createIndexAsync(index: any, options: any) {
|
|
22
|
-
return await createIndexAsync(index, options);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
find(selector = {}, modifier?: any) {
|
|
26
|
-
return super.find(selector, modifier);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async findOneAsync(selector = {}, modifier?: any) {
|
|
30
|
-
return super.findOneAsync(selector, modifier);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async insertAsync(doc: any) {
|
|
34
|
-
return await super.insertAsync(doc);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async updateAsync(selector: any, modifier?: any) {
|
|
38
|
-
return await super.updateAsync(selector, modifier);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async upsertAsync(selector: any, modifier?: any, options?: any) {
|
|
42
|
-
return await super.upsertAsync(selector, modifier, options);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async removeAsync(selector: any) {
|
|
46
|
-
return await super.removeAsync(selector);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* @memberof Server.<%= name %>
|
|
52
|
-
* @member <%= name %>
|
|
53
|
-
*/
|
|
54
|
-
const <%= name %> = new <%= name %>Collection();
|
|
55
|
-
export default <%= name %>;<% } %>
|
|
1
|
+
import { Mongo } from 'meteor/mongo';<% if (where === 'client') { -%>
|
|
2
|
+
export const <%= name %> = new Mongo.Collection(null);<% } else { %>
|
|
3
|
+
|
|
4
|
+
class <%= name %>Collection extends Mongo.Collection<<%=name%>Collection> {
|
|
5
|
+
publicFields: any;
|
|
6
|
+
privateFields: any;
|
|
7
|
+
allow: any = () => {};
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
super('<%= name %>');
|
|
11
|
+
|
|
12
|
+
this.publicFields = {};
|
|
13
|
+
this.privateFields = {};
|
|
14
|
+
this.allow({
|
|
15
|
+
insert() { return false; },
|
|
16
|
+
update() { return false; },
|
|
17
|
+
remove() { return false; },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async createIndexAsync(index: any, options: any) {
|
|
22
|
+
return await createIndexAsync(index, options);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
find(selector = {}, modifier?: any) {
|
|
26
|
+
return super.find(selector, modifier);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async findOneAsync(selector = {}, modifier?: any) {
|
|
30
|
+
return super.findOneAsync(selector, modifier);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async insertAsync(doc: any) {
|
|
34
|
+
return await super.insertAsync(doc);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async updateAsync(selector: any, modifier?: any) {
|
|
38
|
+
return await super.updateAsync(selector, modifier);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async upsertAsync(selector: any, modifier?: any, options?: any) {
|
|
42
|
+
return await super.upsertAsync(selector, modifier, options);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async removeAsync(selector: any) {
|
|
46
|
+
return await super.removeAsync(selector);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @memberof Server.<%= name %>
|
|
52
|
+
* @member <%= name %>
|
|
53
|
+
*/
|
|
54
|
+
const <%= name %> = new <%= name %>Collection();
|
|
55
|
+
export default <%= name %>;<% } %>
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/* eslint-env jasmine */
|
|
2
|
-
import { Meteor } from 'meteor/meteor';
|
|
3
|
-
|
|
4
|
-
if (Meteor.isServer) {
|
|
5
|
-
const <%= name %> = require('./<%= fileName %>').default;
|
|
6
|
-
describe('<%= name %>', () => {
|
|
7
|
-
<% if (test === 'jasmine') { %>
|
|
8
|
-
it('has been defined', () => {
|
|
9
|
-
let isDefined = false;
|
|
10
|
-
if(<%= name %>) {
|
|
11
|
-
isDefined = true;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
expect(isDefined).toBe(true);
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
<% } else if (test === 'mocha') { %>
|
|
18
|
-
it('has been defined', () => {
|
|
19
|
-
let isDefined = false;
|
|
20
|
-
if(<%= name %>) {
|
|
21
|
-
isDefined = true;
|
|
22
|
-
}
|
|
23
|
-
assert.equal(isDefined, true);
|
|
24
|
-
});
|
|
25
|
-
<% } %>
|
|
26
|
-
});
|
|
27
|
-
}
|
|
1
|
+
/* eslint-env jasmine */
|
|
2
|
+
import { Meteor } from 'meteor/meteor';
|
|
3
|
+
|
|
4
|
+
if (Meteor.isServer) {
|
|
5
|
+
const <%= name %> = require('./<%= fileName %>').default;
|
|
6
|
+
describe('<%= name %>', () => {
|
|
7
|
+
<% if (test === 'jasmine') { %>
|
|
8
|
+
it('has been defined', () => {
|
|
9
|
+
let isDefined = false;
|
|
10
|
+
if(<%= name %>) {
|
|
11
|
+
isDefined = true;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
expect(isDefined).toBe(true);
|
|
15
|
+
|
|
16
|
+
});
|
|
17
|
+
<% } else if (test === 'mocha') { %>
|
|
18
|
+
it('has been defined', () => {
|
|
19
|
+
let isDefined = false;
|
|
20
|
+
if(<%= name %>) {
|
|
21
|
+
isDefined = true;
|
|
22
|
+
}
|
|
23
|
+
assert.equal(isDefined, true);
|
|
24
|
+
});
|
|
25
|
+
<% } %>
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/* eslint-env jasmine */
|
|
2
|
-
import { Meteor } from 'meteor/meteor';
|
|
3
|
-
|
|
4
|
-
if (Meteor.isServer) {
|
|
5
|
-
const <%= name %> = require('./<%= fileName %>').default;
|
|
6
|
-
describe('<%= name %>', () => {
|
|
7
|
-
<% if (test === 'jasmine') { %>
|
|
8
|
-
it('has been defined', () => {
|
|
9
|
-
let isDefined = false;
|
|
10
|
-
if(<%= name %>) {
|
|
11
|
-
isDefined = true;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
expect(isDefined).toBe(true);
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
<% } else if (test === 'mocha') { %>
|
|
18
|
-
it('has been defined', () => {
|
|
19
|
-
let isDefined = false;
|
|
20
|
-
if(<%= name %>) {
|
|
21
|
-
isDefined = true;
|
|
22
|
-
}
|
|
23
|
-
assert.equal(isDefined, true);
|
|
24
|
-
});
|
|
25
|
-
<% } %>
|
|
26
|
-
});
|
|
27
|
-
}
|
|
1
|
+
/* eslint-env jasmine */
|
|
2
|
+
import { Meteor } from 'meteor/meteor';
|
|
3
|
+
|
|
4
|
+
if (Meteor.isServer) {
|
|
5
|
+
const <%= name %> = require('./<%= fileName %>').default;
|
|
6
|
+
describe('<%= name %>', () => {
|
|
7
|
+
<% if (test === 'jasmine') { %>
|
|
8
|
+
it('has been defined', () => {
|
|
9
|
+
let isDefined = false;
|
|
10
|
+
if(<%= name %>) {
|
|
11
|
+
isDefined = true;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
expect(isDefined).toBe(true);
|
|
15
|
+
|
|
16
|
+
});
|
|
17
|
+
<% } else if (test === 'mocha') { %>
|
|
18
|
+
it('has been defined', () => {
|
|
19
|
+
let isDefined = false;
|
|
20
|
+
if(<%= name %>) {
|
|
21
|
+
isDefined = true;
|
|
22
|
+
}
|
|
23
|
+
assert.equal(isDefined, true);
|
|
24
|
+
});
|
|
25
|
+
<% } %>
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
# DATA VOLUME: if a second, bare (unpartitioned, unformatted) disk is
|
|
2
|
-
# attached to this instance, claim it for the bundle -- the thing most
|
|
3
|
-
# likely to blow out a small root volume on a redeploy (a staged
|
|
4
|
-
# extract briefly holds old + new bundle at once). A disk that already
|
|
5
|
-
# has partitions is left alone; only a genuinely blank one gets
|
|
6
|
-
# formatted. No-op on a single-disk box.
|
|
7
|
-
ROOT_DISK=$(lsblk -no pkname "$(findmnt -no SOURCE /)" 2>/dev/null)
|
|
8
|
-
DATA_DEV=$(lsblk -ndo NAME,TYPE | awk -v root="$ROOT_DISK" '$2=="disk" && $1!=root {print $1; exit}')
|
|
9
|
-
if [ -n "$DATA_DEV" ] && ! mountpoint -q /mnt/data; then
|
|
10
|
-
sudo mkdir -p /mnt/data
|
|
11
|
-
if [ "$(lsblk -ndo NAME "/dev/$DATA_DEV" | wc -l)" = "1" ]; then
|
|
12
|
-
sudo blkid "/dev/$DATA_DEV" >/dev/null 2>&1 || sudo mkfs -t ext4 -L data "/dev/$DATA_DEV"
|
|
13
|
-
UUID=$(sudo blkid -s UUID -o value "/dev/$DATA_DEV")
|
|
14
|
-
grep -q "$UUID" /etc/fstab || echo "UUID=$UUID /mnt/data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab
|
|
15
|
-
sudo mount /mnt/data
|
|
16
|
-
sudo chown "$(whoami):$(whoami)" /mnt/data
|
|
17
|
-
else
|
|
18
|
-
echo "/dev/$DATA_DEV has existing partitions -- not touching it automatically"
|
|
19
|
-
fi
|
|
20
|
-
fi
|
|
21
|
-
BUNDLE_ROOT=$HOME
|
|
22
|
-
mountpoint -q /mnt/data && BUNDLE_ROOT=/mnt/data
|
|
23
|
-
sudo apt-get update
|
|
24
|
-
# install git and nginx
|
|
25
|
-
sudo apt install build-essential git nginx -y
|
|
26
|
-
# setup node and npm with the proper node version using nvm
|
|
27
|
-
git clone https://gist.github.com/c427ccd6f4377b39299b9d402f5d51fe.git ~/maka-env/nvm-install
|
|
28
|
-
rm -rf ~/.bash_profile ~/.bashrc
|
|
29
|
-
touch ~/.bash_profile ~/.bashrc
|
|
30
|
-
echo "test -f ~/.bashrc && . ~/.bashrc" > ~/.bash_profile
|
|
31
|
-
chmod +x ~/maka-env/nvm-install/nvm-install.sh && ~/maka-env/nvm-install/nvm-install.sh
|
|
32
|
-
source ~/.bashrc
|
|
33
|
-
nvm install <%= nodeVersion %> || nvm install <%= fallbackVersion %>
|
|
34
|
-
[ "$(nvm current)" == "<%= nodeVersion %>" ] && nvm alias default <%= nodeVersion %> || nvm alias default <%= fallbackVersion %>
|
|
35
|
-
npm install -g pm2@latest
|
|
36
|
-
npm install -g @dotenvx/dotenvx@latest
|
|
37
|
-
pm2 install pm2-logrotate
|
|
38
|
-
pm2 set pm2-logrotate:max_size 20M
|
|
39
|
-
pm2 set pm2-logrotate:compress true
|
|
40
|
-
pm2 set pm2-logrotate:retain 30
|
|
41
|
-
rm -rf ~/maka-env/nvm-install
|
|
42
|
-
# Prepare nginx
|
|
43
|
-
[ -d /etc/systemd/system/nginx.service.d ] && echo "nginx.service.d exists" || sudo mkdir /etc/systemd/system/nginx.service.d
|
|
44
|
-
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > override.conf
|
|
45
|
-
sudo cp override.conf /etc/systemd/system/nginx.service.d/override.conf
|
|
46
|
-
sudo systemctl daemon-reload || null
|
|
47
|
-
sudo systemctl stop nginx
|
|
48
|
-
sudo nginx -s stop
|
|
49
|
-
sudo cp ~/nginx.conf /etc/nginx/sites-enabled/default
|
|
50
|
-
sudo systemctl daemon-reload && sudo systemctl start nginx
|
|
51
|
-
# Ensure certbot is installed and re-inject the SSL server block that
|
|
52
|
-
# `sudo cp` above just overwrote (domain/email from letsencrypt.json).
|
|
53
|
-
# certbot --nginx is idempotent: skips reissuing a still-valid cert but
|
|
54
|
-
# always makes sure the nginx config has the SSL block wired in.
|
|
55
|
-
sudo snap install core >/dev/null 2>&1
|
|
56
|
-
sudo snap refresh core >/dev/null 2>&1
|
|
57
|
-
sudo snap install --classic certbot >/dev/null 2>&1 || true
|
|
58
|
-
[ -L /usr/bin/certbot ] || sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
|
59
|
-
sudo certbot --nginx --agree-tos --expand -n --domains <%= domainNames %> --email <%= emailUpdate %>
|
|
60
|
-
# Decompress the bundle -- extracted onto BUNDLE_ROOT (the data volume
|
|
61
|
-
# when one's attached, see above), with ~/bundle symlinked to it so
|
|
62
|
-
# everything downstream (pm2, `cd bundle/programs/server` below) keeps
|
|
63
|
-
# resolving relative to $HOME unchanged.
|
|
64
|
-
echo "Attempting to decompress the bundle"
|
|
65
|
-
if [ -f app.tar.gz ]; then
|
|
66
|
-
echo "Bundle found, decompressing"
|
|
67
|
-
rm -rf "$BUNDLE_ROOT/bundle"
|
|
68
|
-
tar -xf app.tar.gz -C "$BUNDLE_ROOT"
|
|
69
|
-
elif [ -f app.tar.gz.bk ]; then
|
|
70
|
-
echo "No bundle found, using backup"
|
|
71
|
-
cp app.tar.gz.bk app.tar.gz
|
|
72
|
-
rm -rf "$BUNDLE_ROOT/bundle"
|
|
73
|
-
tar -xf app.tar.gz -C "$BUNDLE_ROOT"
|
|
74
|
-
else
|
|
75
|
-
echo "Could not find app.tar.gz, exiting!"
|
|
76
|
-
exit 1
|
|
77
|
-
fi
|
|
78
|
-
[ "$BUNDLE_ROOT" = "$HOME" ] || ln -sfn "$BUNDLE_ROOT/bundle" ~/bundle
|
|
79
|
-
cd bundle/programs/server
|
|
80
|
-
npm install
|
|
81
|
-
npm audit fix --force
|
|
82
|
-
cd ~
|
|
83
|
-
# Reset pm2
|
|
84
|
-
pm2 delete all
|
|
85
|
-
# updating PM2 to latest
|
|
86
|
-
pm2 update
|
|
87
|
-
# Bring up pm2 with environment
|
|
88
|
-
if [ -f ~/process.env ]; then
|
|
89
|
-
dotenvx run -f ~/process.env -- pm2 start ~/pm2.config.js
|
|
90
|
-
else
|
|
91
|
-
pm2 start ~/pm2.config.js
|
|
92
|
-
fi
|
|
93
|
-
# Configure pm2 to start on boot
|
|
94
|
-
pm2 startup
|
|
95
|
-
sudo env PATH=$PATH:$(which npm) $(which pm2) startup systemd -u <%= ec2User %> --hp /home/<%= ec2User %>
|
|
96
|
-
pm2 save
|
|
97
|
-
# remove backup tar, if any
|
|
98
|
-
# rm -f ~/app.tar.gz.bk
|
|
99
|
-
# backup tar bundle
|
|
100
|
-
mv ~/app.tar.gz ~/app.tar.gz.bk
|
|
101
|
-
exit 0
|
|
1
|
+
# DATA VOLUME: if a second, bare (unpartitioned, unformatted) disk is
|
|
2
|
+
# attached to this instance, claim it for the bundle -- the thing most
|
|
3
|
+
# likely to blow out a small root volume on a redeploy (a staged
|
|
4
|
+
# extract briefly holds old + new bundle at once). A disk that already
|
|
5
|
+
# has partitions is left alone; only a genuinely blank one gets
|
|
6
|
+
# formatted. No-op on a single-disk box.
|
|
7
|
+
ROOT_DISK=$(lsblk -no pkname "$(findmnt -no SOURCE /)" 2>/dev/null)
|
|
8
|
+
DATA_DEV=$(lsblk -ndo NAME,TYPE | awk -v root="$ROOT_DISK" '$2=="disk" && $1!=root {print $1; exit}')
|
|
9
|
+
if [ -n "$DATA_DEV" ] && ! mountpoint -q /mnt/data; then
|
|
10
|
+
sudo mkdir -p /mnt/data
|
|
11
|
+
if [ "$(lsblk -ndo NAME "/dev/$DATA_DEV" | wc -l)" = "1" ]; then
|
|
12
|
+
sudo blkid "/dev/$DATA_DEV" >/dev/null 2>&1 || sudo mkfs -t ext4 -L data "/dev/$DATA_DEV"
|
|
13
|
+
UUID=$(sudo blkid -s UUID -o value "/dev/$DATA_DEV")
|
|
14
|
+
grep -q "$UUID" /etc/fstab || echo "UUID=$UUID /mnt/data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab
|
|
15
|
+
sudo mount /mnt/data
|
|
16
|
+
sudo chown "$(whoami):$(whoami)" /mnt/data
|
|
17
|
+
else
|
|
18
|
+
echo "/dev/$DATA_DEV has existing partitions -- not touching it automatically"
|
|
19
|
+
fi
|
|
20
|
+
fi
|
|
21
|
+
BUNDLE_ROOT=$HOME
|
|
22
|
+
mountpoint -q /mnt/data && BUNDLE_ROOT=/mnt/data
|
|
23
|
+
sudo apt-get update
|
|
24
|
+
# install git and nginx
|
|
25
|
+
sudo apt install build-essential git nginx -y
|
|
26
|
+
# setup node and npm with the proper node version using nvm
|
|
27
|
+
git clone https://gist.github.com/c427ccd6f4377b39299b9d402f5d51fe.git ~/maka-env/nvm-install
|
|
28
|
+
rm -rf ~/.bash_profile ~/.bashrc
|
|
29
|
+
touch ~/.bash_profile ~/.bashrc
|
|
30
|
+
echo "test -f ~/.bashrc && . ~/.bashrc" > ~/.bash_profile
|
|
31
|
+
chmod +x ~/maka-env/nvm-install/nvm-install.sh && ~/maka-env/nvm-install/nvm-install.sh
|
|
32
|
+
source ~/.bashrc
|
|
33
|
+
nvm install <%= nodeVersion %> || nvm install <%= fallbackVersion %>
|
|
34
|
+
[ "$(nvm current)" == "<%= nodeVersion %>" ] && nvm alias default <%= nodeVersion %> || nvm alias default <%= fallbackVersion %>
|
|
35
|
+
npm install -g pm2@latest
|
|
36
|
+
npm install -g @dotenvx/dotenvx@latest
|
|
37
|
+
pm2 install pm2-logrotate
|
|
38
|
+
pm2 set pm2-logrotate:max_size 20M
|
|
39
|
+
pm2 set pm2-logrotate:compress true
|
|
40
|
+
pm2 set pm2-logrotate:retain 30
|
|
41
|
+
rm -rf ~/maka-env/nvm-install
|
|
42
|
+
# Prepare nginx
|
|
43
|
+
[ -d /etc/systemd/system/nginx.service.d ] && echo "nginx.service.d exists" || sudo mkdir /etc/systemd/system/nginx.service.d
|
|
44
|
+
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > override.conf
|
|
45
|
+
sudo cp override.conf /etc/systemd/system/nginx.service.d/override.conf
|
|
46
|
+
sudo systemctl daemon-reload || null
|
|
47
|
+
sudo systemctl stop nginx
|
|
48
|
+
sudo nginx -s stop
|
|
49
|
+
sudo cp ~/nginx.conf /etc/nginx/sites-enabled/default
|
|
50
|
+
sudo systemctl daemon-reload && sudo systemctl start nginx
|
|
51
|
+
# Ensure certbot is installed and re-inject the SSL server block that
|
|
52
|
+
# `sudo cp` above just overwrote (domain/email from letsencrypt.json).
|
|
53
|
+
# certbot --nginx is idempotent: skips reissuing a still-valid cert but
|
|
54
|
+
# always makes sure the nginx config has the SSL block wired in.
|
|
55
|
+
sudo snap install core >/dev/null 2>&1
|
|
56
|
+
sudo snap refresh core >/dev/null 2>&1
|
|
57
|
+
sudo snap install --classic certbot >/dev/null 2>&1 || true
|
|
58
|
+
[ -L /usr/bin/certbot ] || sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
|
59
|
+
sudo certbot --nginx --agree-tos --expand -n --domains <%= domainNames %> --email <%= emailUpdate %>
|
|
60
|
+
# Decompress the bundle -- extracted onto BUNDLE_ROOT (the data volume
|
|
61
|
+
# when one's attached, see above), with ~/bundle symlinked to it so
|
|
62
|
+
# everything downstream (pm2, `cd bundle/programs/server` below) keeps
|
|
63
|
+
# resolving relative to $HOME unchanged.
|
|
64
|
+
echo "Attempting to decompress the bundle"
|
|
65
|
+
if [ -f app.tar.gz ]; then
|
|
66
|
+
echo "Bundle found, decompressing"
|
|
67
|
+
rm -rf "$BUNDLE_ROOT/bundle"
|
|
68
|
+
tar -xf app.tar.gz -C "$BUNDLE_ROOT"
|
|
69
|
+
elif [ -f app.tar.gz.bk ]; then
|
|
70
|
+
echo "No bundle found, using backup"
|
|
71
|
+
cp app.tar.gz.bk app.tar.gz
|
|
72
|
+
rm -rf "$BUNDLE_ROOT/bundle"
|
|
73
|
+
tar -xf app.tar.gz -C "$BUNDLE_ROOT"
|
|
74
|
+
else
|
|
75
|
+
echo "Could not find app.tar.gz, exiting!"
|
|
76
|
+
exit 1
|
|
77
|
+
fi
|
|
78
|
+
[ "$BUNDLE_ROOT" = "$HOME" ] || ln -sfn "$BUNDLE_ROOT/bundle" ~/bundle
|
|
79
|
+
cd bundle/programs/server
|
|
80
|
+
npm install
|
|
81
|
+
npm audit fix --force
|
|
82
|
+
cd ~
|
|
83
|
+
# Reset pm2
|
|
84
|
+
pm2 delete all
|
|
85
|
+
# updating PM2 to latest
|
|
86
|
+
pm2 update
|
|
87
|
+
# Bring up pm2 with environment
|
|
88
|
+
if [ -f ~/process.env ]; then
|
|
89
|
+
dotenvx run -f ~/process.env -- pm2 start ~/pm2.config.js
|
|
90
|
+
else
|
|
91
|
+
pm2 start ~/pm2.config.js
|
|
92
|
+
fi
|
|
93
|
+
# Configure pm2 to start on boot
|
|
94
|
+
pm2 startup
|
|
95
|
+
sudo env PATH=$PATH:$(which npm) $(which pm2) startup systemd -u <%= ec2User %> --hp /home/<%= ec2User %>
|
|
96
|
+
pm2 save
|
|
97
|
+
# remove backup tar, if any
|
|
98
|
+
# rm -f ~/app.tar.gz.bk
|
|
99
|
+
# backup tar bundle
|
|
100
|
+
mv ~/app.tar.gz ~/app.tar.gz.bk
|
|
101
|
+
exit 0
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
version: "3.7"
|
|
2
|
-
services:
|
|
3
|
-
<%= app %>:
|
|
4
|
-
image: "<%= appFileCase %>:latest"
|
|
5
|
-
ports:
|
|
6
|
-
- 80:3000
|
|
7
|
-
volumes:
|
|
8
|
-
- ./pm2.config.js:/home/ubuntu/pm2.config.js
|
|
9
|
-
- ./settings.json:/home/ubuntu/settings.json
|
|
10
|
-
|
|
11
|
-
mongo:
|
|
12
|
-
image: "mongo"
|
|
13
|
-
ports:
|
|
14
|
-
- 27017:27017
|
|
15
|
-
|
|
16
|
-
networks:
|
|
17
|
-
default:
|
|
1
|
+
version: "3.7"
|
|
2
|
+
services:
|
|
3
|
+
<%= app %>:
|
|
4
|
+
image: "<%= appFileCase %>:latest"
|
|
5
|
+
ports:
|
|
6
|
+
- 80:3000
|
|
7
|
+
volumes:
|
|
8
|
+
- ./pm2.config.js:/home/ubuntu/pm2.config.js
|
|
9
|
+
- ./settings.json:/home/ubuntu/settings.json
|
|
10
|
+
|
|
11
|
+
mongo:
|
|
12
|
+
image: "mongo"
|
|
13
|
+
ports:
|
|
14
|
+
- 27017:27017
|
|
15
|
+
|
|
16
|
+
networks:
|
|
17
|
+
default:
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
server_tokens off;
|
|
2
|
-
map $http_upgrade $connection_upgrade {
|
|
3
|
-
default upgrade;
|
|
4
|
-
'' close;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
server {
|
|
8
|
-
listen 80 default_server;
|
|
9
|
-
listen [::]:80 default_server ipv6only=on;
|
|
10
|
-
<% if (domainNames) { -%>
|
|
11
|
-
server_name <%= domainNames.split(',').map(function(d) { return d.trim(); }).join(' ') %>;
|
|
12
|
-
<% } -%>
|
|
13
|
-
if ($http_user_agent ~ "MSIE" ) {
|
|
14
|
-
return 303 https://browser-update.org/update.html;
|
|
15
|
-
}
|
|
16
|
-
location = /favicon.ico {
|
|
17
|
-
alias /home/<%= ec2User %>/bundle/programs/web.browser/app;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
location / {
|
|
21
|
-
proxy_pass http://0.0.0.0:3000;
|
|
22
|
-
proxy_http_version 1.1;
|
|
23
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
24
|
-
proxy_set_header Connection "upgrade";
|
|
25
|
-
proxy_set_header X-Forwarded-For $remote_addr;
|
|
26
|
-
proxy_set_header Host $host;
|
|
27
|
-
if ($uri != '/') {
|
|
28
|
-
expires 30d;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
server_tokens off;
|
|
2
|
+
map $http_upgrade $connection_upgrade {
|
|
3
|
+
default upgrade;
|
|
4
|
+
'' close;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
server {
|
|
8
|
+
listen 80 default_server;
|
|
9
|
+
listen [::]:80 default_server ipv6only=on;
|
|
10
|
+
<% if (domainNames) { -%>
|
|
11
|
+
server_name <%= domainNames.split(',').map(function(d) { return d.trim(); }).join(' ') %>;
|
|
12
|
+
<% } -%>
|
|
13
|
+
if ($http_user_agent ~ "MSIE" ) {
|
|
14
|
+
return 303 https://browser-update.org/update.html;
|
|
15
|
+
}
|
|
16
|
+
location = /favicon.ico {
|
|
17
|
+
alias /home/<%= ec2User %>/bundle/programs/web.browser/app;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
location / {
|
|
21
|
+
proxy_pass http://0.0.0.0:3000;
|
|
22
|
+
proxy_http_version 1.1;
|
|
23
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
24
|
+
proxy_set_header Connection "upgrade";
|
|
25
|
+
proxy_set_header X-Forwarded-For $remote_addr;
|
|
26
|
+
proxy_set_header Host $host;
|
|
27
|
+
if ($uri != '/') {
|
|
28
|
+
expires 30d;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|