@launchframe/cli 1.0.0-beta.2 → 1.0.0-beta.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchframe/cli",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.4",
4
4
  "description": "Production-ready B2B SaaS boilerplate with subscriptions, credits, and multi-tenancy",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -158,6 +158,22 @@ async function deployInit() {
158
158
  process.exit(1);
159
159
  }
160
160
 
161
+ // Create symlink for docker-compose.override.yml -> docker-compose.prod.yml
162
+ const symlinkSpinner = ora('Creating docker-compose.override.yml symlink...').start();
163
+
164
+ try {
165
+ await executeSSH(
166
+ vpsUser,
167
+ vpsHost,
168
+ `cd ${vpsAppFolder}/infrastructure && ln -sf docker-compose.prod.yml docker-compose.override.yml`
169
+ );
170
+ symlinkSpinner.succeed('Docker Compose override symlink created');
171
+ } catch (error) {
172
+ symlinkSpinner.fail('Failed to create symlink');
173
+ console.log(chalk.red(`\n❌ Error: ${error.message}\n`));
174
+ process.exit(1);
175
+ }
176
+
161
177
  // Check if waitlist is running and stop it (full-app deployment)
162
178
  try {
163
179
  const { stdout: psOutput } = await executeSSH(
@@ -464,6 +464,12 @@ function getDockerComposeDefinitions(serviceName, service, projectName, projectC
464
464
  ${serviceName}:
465
465
  image: ghcr.io/${githubOrg}/${projectName}-${serviceName}:latest
466
466
  restart: unless-stopped
467
+ healthcheck:
468
+ test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/"]
469
+ interval: 30s
470
+ timeout: 10s
471
+ start_period: 40s
472
+ retries: 3
467
473
  labels:
468
474
  - "traefik.enable=true"
469
475
  - "traefik.http.routers.${serviceName}.rule=Host(\`${serviceName}.\${PRIMARY_DOMAIN}\`)"
@@ -7,7 +7,11 @@ const chalk = require('chalk');
7
7
  */
8
8
  function isLaunchFrameProject() {
9
9
  const markerPath = path.join(process.cwd(), '.launchframe');
10
- return fs.existsSync(markerPath);
10
+ try {
11
+ return fs.existsSync(markerPath) && fs.statSync(markerPath).isFile();
12
+ } catch (error) {
13
+ return false;
14
+ }
11
15
  }
12
16
 
13
17
  /**