From e5c299216abbea0119f44f4840b688b2ccedb437 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Sun, 15 Mar 2026 14:50:24 +0700 Subject: [PATCH] Add --local-only flag to website-creator for local testing before deploy --- .gitignore | 1 + skills/website-creator/SKILL.md | 6 ++ .../scripts/create_astro_website.py | 57 +++++++++++++++---- 3 files changed, 53 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ea1fd5c..ad2e518 100644 --- a/.gitignore +++ b/.gitignore @@ -25,5 +25,6 @@ gsc-credentials.json # Shodh Memory data (local persistent memory) .shodh/ +shodh_data/ shodh_memory_data/ *.db diff --git a/skills/website-creator/SKILL.md b/skills/website-creator/SKILL.md index 439faef..0876189 100644 --- a/skills/website-creator/SKILL.md +++ b/skills/website-creator/SKILL.md @@ -811,6 +811,12 @@ python3 scripts/create_astro_website.py \ --features "blog,products,contact" \ --umami-id "xxx-xxx-xxx" \ --output "./dealplustech-website" + +# Local only (skip Gitea/Easypanel): +python3 scripts/create_astro_website.py \ + --name "My Website" \ + --local-only \ + --output "./my-website" ``` ### Refactor Existing Website diff --git a/skills/website-creator/scripts/create_astro_website.py b/skills/website-creator/scripts/create_astro_website.py index 1941d9c..91ea414 100644 --- a/skills/website-creator/scripts/create_astro_website.py +++ b/skills/website-creator/scripts/create_astro_website.py @@ -10,14 +10,20 @@ Creates complete Astro projects with: - Cookie consent management - Consent logging database (Astro DB) - PDPA-compliant legal pages -- Easypanel deployment +- Easypanel deployment (optional with --local-only) Usage: - python3 create_astro_website.py \ - --name "Deal Plus Tech" \ - --type "corporate" \ - --languages "th,en" \ + python3 create_astro_website.py \\ + --name "Deal Plus Tech" \\ + --type "corporate" \\ + --languages "th,en" \\ --output "./dealplustech-website" + + # Local only (skip Gitea/Easypanel): + python3 create_astro_website.py \\ + --name "My Website" \\ + --local-only \\ + --output "./my-website" """ import os @@ -254,6 +260,8 @@ def main(): help='Output directory') parser.add_argument('--no-interactive', action='store_true', help='Skip interactive setup (use defaults)') + parser.add_argument('--local-only', action='store_true', + help='Create website locally only, skip Gitea sync and Easypanel deploy') args = parser.parse_args() @@ -333,12 +341,39 @@ def main(): print(" 3. Update .env with your credentials") print(" 4. npm run dev") - # Auto-deploy (always on) - print("") - print("=" * 60) - print("🚀 AUTO-DEPLOY STARTING") - print("=" * 60) - print("") + # Check if local-only mode + if args.local_only: + print("") + print("=" * 60) + print("🏠 LOCAL MODE - No auto-deploy") + print("=" * 60) + print("") + print("Website created locally. To preview:") + print(f" cd {args.output}") + print(" npm install") + print(" npm run dev") + print("") + + # Ask if they want to deploy (skip if no-interactive mode) + if args.no_interactive: + print("✅ Done! Website is ready at:", args.output) + return + + deploy_choice = input("Do you want to sync to Gitea and deploy to Easypanel? (y/n): ").strip().lower() + + if deploy_choice != 'y': + print("") + print("✅ Done! Website is ready at:", args.output) + return + else: + print("") + print("Proceeding with deployment...") + else: + print("") + print("=" * 60) + print("🚀 AUTO-DEPLOY STARTING") + print("=" * 60) + print("") # Step 1: Sync to Gitea print("📦 Step 1/3: Syncing to Gitea...")