@ossy/deployment-tools 1.17.10 → 1.17.11

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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.17.11 (2026-05-25)
7
+
8
+ **Note:** Version bump only for package @ossy/deployment-tools
9
+
10
+
11
+
12
+
13
+
6
14
  ## 1.17.10 (2026-05-25)
7
15
 
8
16
  **Note:** Version bump only for package @ossy/deployment-tools
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ossy/deployment-tools",
3
- "version": "1.17.10",
3
+ "version": "1.17.11",
4
4
  "description": "Collection of scripts and tools to aid deployment of containers and static files to Amazon Web Services through GitHub Actions",
5
5
  "source": "./src/index.js",
6
6
  "main": "./src/index.js",
@@ -26,5 +26,5 @@
26
26
  "devDependencies": {
27
27
  "jest": "^27.5.1"
28
28
  },
29
- "gitHead": "9c65b3f68767d269cb25810b3110798f1acc7a1d"
29
+ "gitHead": "c50aee3d73f8c3f71ce2d8a91e9be2de90c6c4d9"
30
30
  }
@@ -15,6 +15,32 @@ api.ossy.se {
15
15
  reverse_proxy localhost:3001
16
16
  }
17
17
 
18
+ # TODO: remove this block once ossy.se traffic flows through the platform runtime.
19
+ # Once ossy app publish is validated for ossy.se, delete this block and the
20
+ # ossy-website-ossy.service so the catch-all below serves it via the platform.
21
+ ossy.se {
22
+ tls {
23
+ dns route53 {
24
+ max_retries 10
25
+ profile ci-client
26
+ }
27
+ }
28
+ reverse_proxy localhost:3002
29
+ }
30
+
31
+ # TODO: remove this block once www.plexus-sanitas.com traffic flows through the platform runtime.
32
+ # Once ossy app publish is validated for plexus-sanitas, delete this block and the
33
+ # ossy-website-plexus-sanitas.service so the catch-all below serves it via the platform.
34
+ www.plexus-sanitas.com {
35
+ tls {
36
+ dns route53 {
37
+ max_retries 10
38
+ profile ci-client
39
+ }
40
+ }
41
+ reverse_proxy localhost:3003
42
+ }
43
+
18
44
  :443 {
19
45
  tls {
20
46
  on_demand
@@ -19,6 +19,8 @@ const { getInstallNodeJs, getInstallNpm, getInstallDocker } = require('./user-da
19
19
  const { CaddyService } = require('./caddy.service')
20
20
  const { OssyRuntimeService } = require('./ossy-runtime.service')
21
21
  const { OssyApiService } = require('./ossy-api.service')
22
+ const { OssyWebsiteOssyService } = require('./ossy-website-ossy.service')
23
+ const { OssyWebsitePlexusSanitasService } = require('./ossy-website-plexus-sanitas.service')
22
24
  const { AwsProfile } = require('./aws-profile')
23
25
  const { SupportedRegions } = require('../../config')
24
26
 
@@ -120,7 +122,9 @@ class ContainerDeploymentTarget extends Construct {
120
122
  'docker network create ossy-network || true',
121
123
  ...CaddyService.install(),
122
124
  ...OssyRuntimeService.install(),
123
- ...OssyApiService.install()
125
+ ...OssyApiService.install(),
126
+ ...OssyWebsiteOssyService.install(),
127
+ ...OssyWebsitePlexusSanitasService.install()
124
128
  )
125
129
 
126
130
  userData.addS3DownloadCommand({
@@ -136,7 +140,11 @@ class ContainerDeploymentTarget extends Construct {
136
140
  ...OssyRuntimeService.enable(),
137
141
  ...OssyRuntimeService.start(),
138
142
  ...OssyApiService.enable(),
139
- ...OssyApiService.start()
143
+ ...OssyApiService.start(),
144
+ ...OssyWebsiteOssyService.enable(),
145
+ ...OssyWebsiteOssyService.start(),
146
+ ...OssyWebsitePlexusSanitasService.enable(),
147
+ ...OssyWebsitePlexusSanitasService.start()
140
148
  )
141
149
 
142
150
  const ec2Instance = new Instance(this, 'Ec2Instance', {
@@ -0,0 +1,52 @@
1
+ // TODO: remove this service once ossy.se traffic flows through the platform runtime.
2
+ // The platform runtime (ghcr.io/ossy-se/platform) is the long-term host for all
3
+ // tenant sites including ossy.se. This service is a stopgap while the CMS-based
4
+ // publish flow is validated in production.
5
+
6
+ const systemdServiceFile = `
7
+ [Unit]
8
+ Description=Ossy Website (ossy.se)
9
+ After=network.target docker.service
10
+ Requires=docker.service
11
+
12
+ [Service]
13
+ EnvironmentFile=/etc/environment
14
+ ExecStartPre=-/usr/bin/docker rm -f ossy-website-ossy
15
+ ExecStartPre=/usr/bin/docker pull ghcr.io/ossy-se/website-ossy:latest
16
+ ExecStart=/usr/bin/docker run --name ossy-website-ossy \\
17
+ --network ossy-network \\
18
+ -p 3002:3000 \\
19
+ -e PORT=3000 \\
20
+ -e OSSY_API_URL=http://ossy-api:3001 \\
21
+ -e OSSY_COOKIE_SECRET=\${OSSY_COOKIE_SECRET} \\
22
+ ghcr.io/ossy-se/website-ossy:latest
23
+ ExecStop=/usr/bin/docker stop ossy-website-ossy
24
+ Restart=on-failure
25
+ RestartSec=5
26
+
27
+ [Install]
28
+ WantedBy=multi-user.target
29
+ `
30
+
31
+ /**
32
+ * @class
33
+ */
34
+ class OssyWebsiteOssyService {
35
+
36
+ static install() {
37
+ return [`sudo tee /etc/systemd/system/ossy-website-ossy.service > /dev/null << 'EOF'\n${systemdServiceFile}\nEOF`]
38
+ }
39
+
40
+ static enable() {
41
+ return ['sudo systemctl enable ossy-website-ossy']
42
+ }
43
+
44
+ static start() {
45
+ return ['sudo systemctl start ossy-website-ossy']
46
+ }
47
+
48
+ }
49
+
50
+ module.exports = {
51
+ OssyWebsiteOssyService
52
+ }
@@ -0,0 +1,52 @@
1
+ // TODO: remove this service once www.plexus-sanitas.com traffic flows through the platform runtime.
2
+ // The platform runtime (ghcr.io/ossy-se/platform) is the long-term host for all
3
+ // tenant sites including plexus-sanitas. This service is a stopgap while the CMS-based
4
+ // publish flow is validated in production.
5
+
6
+ const systemdServiceFile = `
7
+ [Unit]
8
+ Description=Ossy Website (www.plexus-sanitas.com)
9
+ After=network.target docker.service
10
+ Requires=docker.service
11
+
12
+ [Service]
13
+ EnvironmentFile=/etc/environment
14
+ ExecStartPre=-/usr/bin/docker rm -f ossy-website-plexus-sanitas
15
+ ExecStartPre=/usr/bin/docker pull ghcr.io/ossy-se/website-plexus-sanitas:latest
16
+ ExecStart=/usr/bin/docker run --name ossy-website-plexus-sanitas \\
17
+ --network ossy-network \\
18
+ -p 3003:3000 \\
19
+ -e PORT=3000 \\
20
+ -e OSSY_API_URL=http://ossy-api:3001 \\
21
+ -e OSSY_COOKIE_SECRET=\${OSSY_COOKIE_SECRET} \\
22
+ ghcr.io/ossy-se/website-plexus-sanitas:latest
23
+ ExecStop=/usr/bin/docker stop ossy-website-plexus-sanitas
24
+ Restart=on-failure
25
+ RestartSec=5
26
+
27
+ [Install]
28
+ WantedBy=multi-user.target
29
+ `
30
+
31
+ /**
32
+ * @class
33
+ */
34
+ class OssyWebsitePlexusSanitasService {
35
+
36
+ static install() {
37
+ return [`sudo tee /etc/systemd/system/ossy-website-plexus-sanitas.service > /dev/null << 'EOF'\n${systemdServiceFile}\nEOF`]
38
+ }
39
+
40
+ static enable() {
41
+ return ['sudo systemctl enable ossy-website-plexus-sanitas']
42
+ }
43
+
44
+ static start() {
45
+ return ['sudo systemctl start ossy-website-plexus-sanitas']
46
+ }
47
+
48
+ }
49
+
50
+ module.exports = {
51
+ OssyWebsitePlexusSanitasService
52
+ }