create-grocms 0.1.0

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/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+ GroCMS Installer CLI Notice
2
+ Copyright (c) 2026 Mix Reality PTY LTD.
3
+ All rights reserved.
4
+
5
+ This tool ('create-grocms') is provided by Mix Reality PTY LTD for authorized
6
+ customers, evaluators, and partners to scaffold, configure, and initialize
7
+ installations of GroCMS.
8
+
9
+ Use of this installer to download, extract, deploy, or run the GroCMS core
10
+ platform requires a valid, active commercial license or authorized evaluation
11
+ access granted by Mix Reality PTY LTD.
12
+
13
+ Downloading or running the GroCMS core software without an authorized commercial
14
+ license agreement is strictly prohibited. The core platform is proprietary,
15
+ closed-source commercial software.
16
+
17
+ For full terms and conditions governing the GroCMS platform, refer to the
18
+ canonical LICENSE.txt included with the GroCMS release and visit:
19
+ https://grocms.com
20
+
21
+ Direct commercial licensing inquiries to:
22
+ Mix Reality PTY LTD
23
+ Email: get@grocms.com
package/README.md ADDED
@@ -0,0 +1,141 @@
1
+ # create-grocms
2
+
3
+ The official scaffolding CLI for [GroCMS](https://grocms.com) — structured content and visual website publishing.
4
+
5
+ ## Usage
6
+
7
+ Install Node.js **24.x** and npm first. To scaffold a new GroCMS installation
8
+ using the published installer:
9
+
10
+ ```bash
11
+ npx create-grocms@latest my-website
12
+ ```
13
+
14
+ Or run interactively:
15
+
16
+ ```bash
17
+ npx create-grocms@latest
18
+ ```
19
+
20
+ Enter your commercial download key at the masked prompt. npm supplies this
21
+ small installer; it then downloads the separate GroCMS application from
22
+ `https://download.grocms.com`. npm access alone does not grant access to the
23
+ application. The installer version and downloaded CMS release are independent.
24
+
25
+ Docker Engine with Compose v2 is required for the setup commands printed after
26
+ scaffolding. Git is optional. Choose a new or empty project directory; this
27
+ command creates an installation and is not an updater for an existing site.
28
+
29
+ ### Options
30
+
31
+ | Option | Description |
32
+ |---|---|
33
+ | `[target-directory]` | Directory to create project in (e.g. `my-website`) |
34
+ | `--url <url>` | Configured public site URL (default: `http://localhost:3100`) |
35
+ | `--key, -k <license>` | Commercial license key or download token |
36
+ | `--release-url <url>` | Custom release server endpoint |
37
+ | `--local-archive <path>` | Install directly from a local release ZIP file |
38
+ | `--skip-install` | Do not run `npm ci` automatically |
39
+ | `--demo` | Show first-setup instructions for the optional reference demo |
40
+ | `--no-demo` | Explicitly select the minimal starter (the default) |
41
+
42
+ ### What this tool does
43
+
44
+ 1. Connects to your release server or uses a verified release archive.
45
+ 2. Extracts the clean GroCMS codebase into your chosen directory.
46
+ 3. Automatically generates cryptographically strong `BETTER_AUTH_SECRET` and database passwords.
47
+ 4. Generates `.env.local`, `.env.infrastructure.local`, and `.env.production.local`.
48
+ 5. Initializes a fresh Git repository.
49
+ 6. Installs all pinned dependencies with `npm ci`.
50
+
51
+ The CLI prints the remaining setup commands; it does not initialize the database or publish content. Following the default commands creates a minimal website with one **Hello world!** Post, one **Welcome** homepage, official **GroCMS** branding, a basic content template and settings. It includes no sample images, authors or marketing layouts. Repeat setup preserves existing authored content.
52
+
53
+ Choose `--demo` only for a fresh demonstration installation. Its local instructions use `npm run setup -- --design-only && npm run seed:demo` to prepare untouched design drafts before publishing the richer reference site. For production, add `--demo true` to the initial operations setup command below. Demo seeding refuses to replace an initialized minimal site or other authored content.
54
+
55
+ The target must be new or empty, including when entered interactively. Links,
56
+ nonempty folders and existing environment files are refused. Files are validated
57
+ and prepared in private staging, then moved together into the final destination.
58
+ The installer never merges files into an existing website or replaces secrets.
59
+ If dependency installation fails, keep the scaffold, correct the reported npm
60
+ problem and run `npm ci` in that folder. Do not rerun the scaffolder over it.
61
+
62
+ Source archives are limited to 64 MiB compressed, 256 MiB expanded, 32 MiB per
63
+ file and 10,000 entries. Unsafe paths, links, special files, duplicate names,
64
+ case collisions and inconsistent file/directory paths are rejected before
65
+ extraction. Download credentials use the Bearer header. The masked interactive
66
+ prompt avoids putting a key in shell history; the existing `--key` argument is
67
+ still supported. Older query-authenticated clients remain compatible with the
68
+ server, but query credentials may appear in third-party proxy logs.
69
+
70
+ ## Production installation sequence
71
+
72
+ Install Node.js 24, npm, Docker Engine with Compose v2, and Git if desired. The
73
+ download service/registry and dependency registries must be reachable. Use the
74
+ generated `.env.production.local`, which contains separate administrator,
75
+ migrator and runtime passwords. Keep all `.env*` files private and backed up.
76
+ Review the public URL, storage and SMTP configuration before startup. The
77
+ development-only `POSTGRES_PASSWORD` is not the production role contract.
78
+
79
+ ```bash
80
+ cd my-website
81
+ docker compose --env-file .env.production.local -f compose.yaml build web worker
82
+ docker compose --env-file .env.production.local -f compose.yaml up -d --wait db
83
+ docker compose --env-file .env.production.local -f compose.yaml run --rm --no-deps migrate
84
+ ```
85
+
86
+ Create a private `.env.bootstrap.local` containing `GCMS_BOOTSTRAP_EMAIL`,
87
+ `GCMS_BOOTSTRAP_NAME` and a strong `GCMS_BOOTSTRAP_PASSWORD`, then run:
88
+
89
+ ```bash
90
+ node scripts/ops/setup.mjs --env-file .env.production.local --credentials-file .env.bootstrap.local --project gcms
91
+ node scripts/ops/deploy.mjs --env-file .env.production.local --project gcms
92
+ ```
93
+
94
+ `gcms` is the generated Compose project name. If you change it, use that same
95
+ project name consistently. The operations guide included in the release covers
96
+ readiness, captured email for local tests, trusted proxy configuration, backups
97
+ and restoration. Bootstrap never requires elevating the runtime database role.
98
+
99
+ ## Proprietary Commercial Software
100
+
101
+ Copyright (c) 2026 Mix Reality PTY LTD. All rights reserved.
102
+
103
+ This tool is provided for authorized customers, evaluators, and partners of GroCMS.
104
+ Downloading and running the GroCMS core platform requires a valid commercial license agreement from Mix Reality PTY LTD.
105
+
106
+ See [LICENSE.txt](LICENSE.txt) for details. For inquiries, contact `get@grocms.com` or visit [https://grocms.com](https://grocms.com).
107
+
108
+ ## Building the installer package
109
+
110
+ This section is for maintainers working in the GroCMS source repository. The
111
+ presence of this source does not establish that a given version is available on
112
+ npm. Public publication is a separate, manual release step.
113
+
114
+ From the repository root, after installing its locked dependencies with
115
+ `npm ci`, create an output directory and pack the installer:
116
+
117
+ ```powershell
118
+ New-Item -ItemType Directory -Force artifacts/installer | Out-Null
119
+ npm pack --workspace=create-grocms --pack-destination artifacts/installer
120
+ ```
121
+
122
+ The workspace's `prepack` runs `build.mjs`. It bundles the CLI, its runtime
123
+ dependencies and the existing private `@grocms/archive` helper into
124
+ `dist/index.js`. The published `bin` and `main` point to that file; customers do
125
+ not need the GroCMS workspace, its private packages, or an installer build step.
126
+ The package retains its proprietary `LICENSE.txt`, dependency notices in
127
+ `dist/THIRD_PARTY_NOTICES.txt`, and corresponding licences in `dist/licenses`.
128
+ It contains no CMS application archive, customer credentials or release ledger.
129
+
130
+ Before publishing, inspect the exact tarball's inventory and verify its help
131
+ command and synthetic archive installation in a clean directory outside the
132
+ workspace. Complete a licensed download and dependency installation against the
133
+ intended release service, including denial of invalid credentials. Do not use
134
+ live customer sites as installer test destinations. Publishing only a source
135
+ directory or checking the development CLI does not establish that the packaged
136
+ installer works.
137
+
138
+ Publish only the reviewed tarball after these checks and an authorized release
139
+ decision. Keep the archive and its checksum as the publication evidence; do not
140
+ repack different bytes under the same reviewed identity. No automatic public
141
+ publication is part of this package's build.
@@ -0,0 +1,10 @@
1
+ # create-grocms third-party notices
2
+
3
+ GroCMS installer and archive integration: Copyright (c) 2026 Mix Reality PTY LTD. All rights reserved.
4
+ The following bundled dependencies retain their upstream licenses. These licenses do not apply to GroCMS proprietary code.
5
+
6
+ @clack/core@0.3.5 (MIT): licenses/@clack__core@0.3.5/LICENSE
7
+ @clack/prompts@0.8.2 (MIT): licenses/@clack__prompts@0.8.2/LICENSE
8
+ adm-zip@0.6.1 (MIT): licenses/adm-zip@0.6.1/LICENSE
9
+ picocolors@1.1.1 (ISC): licenses/picocolors@1.1.1/LICENSE
10
+ sisteransi@1.0.5 (MIT): licenses/sisteransi@1.0.5/license