@caelo-cms/provisioning 0.1.1 → 0.2.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/dist/cli.js +92 -7
- package/dist/cli.js.map +1 -1
- package/dist/compose.d.ts +7 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +10 -9
- package/dist/compose.js.map +1 -1
- package/dist/dns/cloudflare.d.ts +9 -0
- package/dist/dns/cloudflare.d.ts.map +1 -0
- package/dist/dns/cloudflare.js +160 -0
- package/dist/dns/cloudflare.js.map +1 -0
- package/dist/dns/index.d.ts +12 -0
- package/dist/dns/index.d.ts.map +1 -0
- package/dist/dns/index.js +42 -0
- package/dist/dns/index.js.map +1 -0
- package/dist/dns/manual.d.ts +5 -0
- package/dist/dns/manual.d.ts.map +1 -0
- package/dist/dns/manual.js +96 -0
- package/dist/dns/manual.js.map +1 -0
- package/dist/dns/types.d.ts +23 -0
- package/dist/dns/types.d.ts.map +1 -0
- package/dist/dns/types.js +3 -0
- package/dist/dns/types.js.map +1 -0
- package/dist/gcloud.d.ts +42 -0
- package/dist/gcloud.d.ts.map +1 -0
- package/dist/gcloud.js +187 -0
- package/dist/gcloud.js.map +1 -0
- package/dist/install-state.d.ts +54 -0
- package/dist/install-state.d.ts.map +1 -0
- package/dist/install-state.js +118 -0
- package/dist/install-state.js.map +1 -0
- package/dist/lifecycle.d.ts +19 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +589 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/migration-runner.d.ts +15 -0
- package/dist/migration-runner.d.ts.map +1 -0
- package/dist/migration-runner.js +174 -0
- package/dist/migration-runner.js.map +1 -0
- package/dist/redirects-emit.d.ts.map +1 -1
- package/dist/redirects-emit.js +4 -1
- package/dist/redirects-emit.js.map +1 -1
- package/dist/wizard.d.ts +35 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +160 -0
- package/dist/wizard.js.map +1 -0
- package/dist/wizards/gcp-cost.d.ts +27 -0
- package/dist/wizards/gcp-cost.d.ts.map +1 -0
- package/dist/wizards/gcp-cost.js +77 -0
- package/dist/wizards/gcp-cost.js.map +1 -0
- package/dist/wizards/gcp-pulumi.d.ts +37 -0
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -0
- package/dist/wizards/gcp-pulumi.js +100 -0
- package/dist/wizards/gcp-pulumi.js.map +1 -0
- package/dist/wizards/gcp.d.ts +9 -0
- package/dist/wizards/gcp.d.ts.map +1 -0
- package/dist/wizards/gcp.js +895 -0
- package/dist/wizards/gcp.js.map +1 -0
- package/package.json +13 -2
- package/stacks/aws/index.ts +6 -7
- package/stacks/azure/index.ts +11 -11
- package/stacks/gcp/Pulumi.production.yaml +16 -0
- package/stacks/gcp/Pulumi.yaml +52 -6
- package/stacks/gcp/index.ts +569 -188
- package/stacks/self-hosted/index.ts +3 -3
- package/static/welcome.html +155 -0
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
import { resolve } from "node:path";
|
|
24
24
|
import { local } from "@pulumi/command";
|
|
25
25
|
import * as pulumi from "@pulumi/pulumi";
|
|
26
|
-
import { generateBootstrapToken } from "../../
|
|
27
|
-
import { generateCaddyfile } from "../../
|
|
28
|
-
import { generateDockerCompose } from "../../
|
|
26
|
+
import { generateBootstrapToken } from "../../dist/bootstrap-token.js";
|
|
27
|
+
import { generateCaddyfile } from "../../dist/caddy.js";
|
|
28
|
+
import { generateDockerCompose } from "../../dist/compose.js";
|
|
29
29
|
|
|
30
30
|
const cfg = new pulumi.Config();
|
|
31
31
|
const domain = cfg.require("domain");
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- SPDX-License-Identifier: MPL-2.0 -->
|
|
3
|
+
<!--
|
|
4
|
+
Caelo CMS — fresh-install placeholder.
|
|
5
|
+
Uploaded by the provisioning wizard the first time it brings up the
|
|
6
|
+
static bucket. Replaced the moment the operator publishes their
|
|
7
|
+
first deploy via the admin app's "Publish" flow.
|
|
8
|
+
-->
|
|
9
|
+
<html lang="en">
|
|
10
|
+
<head>
|
|
11
|
+
<meta charset="utf-8">
|
|
12
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
13
|
+
<meta name="robots" content="noindex">
|
|
14
|
+
<title>Caelo CMS — your install is ready</title>
|
|
15
|
+
<style>
|
|
16
|
+
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
17
|
+
:root {
|
|
18
|
+
--fg: #0c0d12;
|
|
19
|
+
--muted: #4a4e5e;
|
|
20
|
+
--accent: #4f46e5;
|
|
21
|
+
--accent-glow: #818cf8;
|
|
22
|
+
--card-bg: rgba(255,255,255,0.78);
|
|
23
|
+
--card-border: rgba(255,255,255,0.55);
|
|
24
|
+
--shadow: 0 30px 60px -20px rgba(15,17,40,0.18), 0 8px 18px -8px rgba(15,17,40,0.10);
|
|
25
|
+
}
|
|
26
|
+
html, body { height: 100%; }
|
|
27
|
+
body {
|
|
28
|
+
font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
|
|
29
|
+
color: var(--fg);
|
|
30
|
+
display: grid;
|
|
31
|
+
place-items: center;
|
|
32
|
+
padding: 2rem;
|
|
33
|
+
background: #f6f6fb;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
position: relative;
|
|
36
|
+
}
|
|
37
|
+
/* Animated mesh-gradient background. Three soft blobs orbiting at
|
|
38
|
+
different speeds; backdrop-filter on the card softens them. */
|
|
39
|
+
.blob {
|
|
40
|
+
position: fixed;
|
|
41
|
+
border-radius: 50%;
|
|
42
|
+
filter: blur(80px);
|
|
43
|
+
opacity: 0.55;
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
animation: drift 22s ease-in-out infinite;
|
|
46
|
+
will-change: transform;
|
|
47
|
+
}
|
|
48
|
+
.blob.b1 { width: 520px; height: 520px; background: #818cf8; top: -120px; left: -160px; animation-delay: -3s; }
|
|
49
|
+
.blob.b2 { width: 460px; height: 460px; background: #f0abfc; bottom: -180px; right: -140px; animation-delay: -8s; }
|
|
50
|
+
.blob.b3 { width: 380px; height: 380px; background: #67e8f9; top: 40%; left: 55%; animation-delay: -14s; animation-duration: 27s; }
|
|
51
|
+
@keyframes drift {
|
|
52
|
+
0%, 100% { transform: translate(0, 0) scale(1); }
|
|
53
|
+
33% { transform: translate(40px, -30px) scale(1.07); }
|
|
54
|
+
66% { transform: translate(-30px, 35px) scale(0.96); }
|
|
55
|
+
}
|
|
56
|
+
@media (prefers-reduced-motion: reduce) {
|
|
57
|
+
.blob { animation: none; }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
main {
|
|
61
|
+
position: relative;
|
|
62
|
+
z-index: 1;
|
|
63
|
+
max-width: 36rem;
|
|
64
|
+
width: 100%;
|
|
65
|
+
background: var(--card-bg);
|
|
66
|
+
border: 1px solid var(--card-border);
|
|
67
|
+
border-radius: 22px;
|
|
68
|
+
padding: 2.5rem;
|
|
69
|
+
box-shadow: var(--shadow);
|
|
70
|
+
backdrop-filter: blur(14px) saturate(140%);
|
|
71
|
+
-webkit-backdrop-filter: blur(14px) saturate(140%);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.brand {
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
gap: 0.65rem;
|
|
78
|
+
font-weight: 600;
|
|
79
|
+
letter-spacing: -0.01em;
|
|
80
|
+
color: var(--muted);
|
|
81
|
+
font-size: 0.95rem;
|
|
82
|
+
margin-bottom: 1.5rem;
|
|
83
|
+
}
|
|
84
|
+
.brand .dot {
|
|
85
|
+
width: 10px; height: 10px; border-radius: 50%;
|
|
86
|
+
background: var(--accent);
|
|
87
|
+
box-shadow: 0 0 0 0 var(--accent-glow);
|
|
88
|
+
animation: pulse 1.8s ease-out infinite;
|
|
89
|
+
}
|
|
90
|
+
@keyframes pulse {
|
|
91
|
+
0% { box-shadow: 0 0 0 0 rgba(79,70,229,0.55); }
|
|
92
|
+
70% { box-shadow: 0 0 0 12px rgba(79,70,229,0); }
|
|
93
|
+
100% { box-shadow: 0 0 0 0 rgba(79,70,229,0); }
|
|
94
|
+
}
|
|
95
|
+
@media (prefers-reduced-motion: reduce) {
|
|
96
|
+
.brand .dot { animation: none; }
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
h1 {
|
|
100
|
+
font-size: clamp(1.65rem, 1.2rem + 1.6vw, 2.25rem);
|
|
101
|
+
letter-spacing: -0.02em;
|
|
102
|
+
line-height: 1.15;
|
|
103
|
+
margin-bottom: 0.65rem;
|
|
104
|
+
}
|
|
105
|
+
p { color: var(--muted); margin-bottom: 1rem; }
|
|
106
|
+
p:last-child { margin-bottom: 0; }
|
|
107
|
+
|
|
108
|
+
.cta {
|
|
109
|
+
display: inline-flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
gap: 0.5rem;
|
|
112
|
+
margin-top: 1.5rem;
|
|
113
|
+
padding: 0.75rem 1.1rem;
|
|
114
|
+
background: var(--fg);
|
|
115
|
+
color: #fff;
|
|
116
|
+
text-decoration: none;
|
|
117
|
+
border-radius: 12px;
|
|
118
|
+
font-weight: 500;
|
|
119
|
+
transition: transform 0.15s ease, box-shadow 0.15s ease;
|
|
120
|
+
}
|
|
121
|
+
.cta:hover { transform: translateY(-1px); box-shadow: 0 12px 24px -8px rgba(15,17,40,0.25); }
|
|
122
|
+
.cta svg { width: 14px; height: 14px; }
|
|
123
|
+
|
|
124
|
+
.hint {
|
|
125
|
+
margin-top: 2rem;
|
|
126
|
+
padding-top: 1.5rem;
|
|
127
|
+
border-top: 1px solid rgba(15,17,40,0.08);
|
|
128
|
+
font-size: 0.875rem;
|
|
129
|
+
color: var(--muted);
|
|
130
|
+
}
|
|
131
|
+
.hint code {
|
|
132
|
+
font: 0.85em ui-monospace, "SF Mono", Menlo, Consolas, monospace;
|
|
133
|
+
background: rgba(15,17,40,0.05);
|
|
134
|
+
padding: 0.15em 0.45em;
|
|
135
|
+
border-radius: 6px;
|
|
136
|
+
}
|
|
137
|
+
.hint a { color: var(--accent); text-decoration: none; }
|
|
138
|
+
.hint a:hover { text-decoration: underline; }
|
|
139
|
+
</style>
|
|
140
|
+
</head>
|
|
141
|
+
<body>
|
|
142
|
+
<div class="blob b1"></div>
|
|
143
|
+
<div class="blob b2"></div>
|
|
144
|
+
<div class="blob b3"></div>
|
|
145
|
+
|
|
146
|
+
<main>
|
|
147
|
+
<div class="brand"><span class="dot"></span>Caelo CMS</div>
|
|
148
|
+
<h1>Your install is up. One more step.</h1>
|
|
149
|
+
<p>This is the placeholder Caelo serves on a fresh deploy. The operator who provisioned this install has a one-time bootstrap link in their terminal output — opening it walks through Owner-account setup. After publish, this page disappears.</p>
|
|
150
|
+
<div class="hint">
|
|
151
|
+
Bootstrap link expires in 24h and rotates per <code>bunx @caelo-cms/provisioning</code> run. After Owner setup, the admin lives at <code>{{ADMIN_URL}}</code> behind <code>Sign in with Google</code> (IAP allowlist).
|
|
152
|
+
</div>
|
|
153
|
+
</main>
|
|
154
|
+
</body>
|
|
155
|
+
</html>
|