Major updates: - Added 35+ new skills from awesome-opencode-skills and antigravity repos - Merged SEO skills into seo-master - Merged architecture skills into architecture - Merged security skills into security-auditor and security-coder - Merged testing skills into testing-master and testing-patterns - Merged pentesting skills into pentesting - Renamed website-creator to thai-frontend-dev - Replaced skill-creator with github version - Removed Chutes references (use MiniMax API instead) - Added install-openclaw-skills.sh for cross-platform installation - Updated .env.example with MiniMax API credentials
7.0 KiB
7.0 KiB
🚀 Easypanel Deployment Integration Guide
How to deploy websites created with website-creator skill to Easypanel
📋 Current Implementation
The website-creator skill generates Docker-ready websites but does NOT automatically deploy to Easypanel. You need to use the easypanel-deploy skill separately.
🔧 Deployment Workflow
Step 1: Generate Website
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/website-creator
python3 scripts/create_astro_website.py \
--name "My Website" \
--languages "th,en" \
--output "./my-website"
Step 2: Initialize Git Repository
cd ./my-website
git init
git add .
git commit -m "Initial commit - PDPA compliant Astro website"
# Create remote repository on Gitea first, then:
git remote add origin https://git.moreminimore.com/username/my-website.git
git push -u origin main
Step 3: Deploy to Easypanel
Use the easypanel-deploy skill:
/use easypanel-deploy deploy
You'll be asked:
- Project name:
my-website - Service name:
my-website-service - Git repository URL:
https://git.moreminimore.com/username/my-website.git - Branch:
main - Port:
80
The skill will:
- Create project (if not exists)
- Create service
- Connect Git repository
- Set build type to Dockerfile
- Trigger deployment
- Check status
Step 4: Verify Deployment
/use easypanel-deploy status
→ Project: my-website
→ Service: my-website-service
Step 5: Set Environment Variables
In Easypanel dashboard:
- Go to your service
- Settings → Environment Variables
- Add these variables:
UMAMI_WEBSITE_ID=your-website-id
UMAMI_DOMAIN=analytics.example.com
ADMIN_PASSWORD=your-secure-password
ASTRO_DB_REMOTE_URL=file:/app/data/consent.db
- Redeploy to apply changes
🔄 Auto-Deploy After Initial Setup
Once deployed, Easypanel will auto-deploy on every push to main branch:
# Make changes
git add .
git commit -m "Update privacy policy"
git push origin main
# Easypanel will automatically rebuild and deploy
# Check status:
/use easypanel-deploy status
🔗 Integration Architecture
┌─────────────────────┐
│ website-creator │
│ (Python script) │
│ │
│ Generates: │
│ - Astro website │
│ - Dockerfile │
│ - docker-compose │
└──────────┬──────────┘
│
│ Manual step:
│ git push
↓
┌─────────────────────┐
│ Gitea Repository │
│ (git.moreminimore) │
└──────────┬──────────┘
│
│ Auto-deploy
│ or manual trigger
↓
┌─────────────────────┐
│ easypanel-deploy │
│ (Skill via API) │
│ │
│ Deploys to: │
│ - Easypanel │
│ - Docker │
└──────────┬──────────┘
│
↓
┌─────────────────────┐
│ Production URL │
│ https://... │
└─────────────────────┘
🛠️ Future Enhancement: Automatic Integration
To fully automate deployment, the website-creator skill could be extended to:
Option 1: Call easypanel-deploy via subprocess
# In create_astro_website.py
import subprocess
def deploy_to_easypanel(project_name, service_name, git_url):
"""Deploy to Easypanel using easypanel-deploy skill."""
# Push to Git first
subprocess.run(['git', 'add', '.'])
subprocess.run(['git', 'commit', '-m', 'Initial commit'])
subprocess.run(['git', 'push', '-u', 'origin', 'main'])
# Call easypanel-deploy via curl commands
# (from easypanel-deploy SKILL.md workflow)
print("✅ Deployed to Easypanel!")
print(f"URL: https://{project_name}.easypanel.app")
Option 2: Use task() delegation
# If running within OpenCode agent context
from opencode import task
def deploy_to_easypanel(project_name, service_name, git_url):
"""Delegate to easypanel-deploy skill."""
result = task(
category="quick",
load_skills=["easypanel-deploy"],
description="Deploy website to Easypanel",
prompt=f"""Deploy to Easypanel:
- Project: {project_name}
- Service: {service_name}
- Git URL: {git_url}
- Branch: main
- Port: 80
Follow easypanel-deploy workflow exactly."""
)
return result
Option 3: Generate deployment script
# Generate deploy.sh in website root
deploy_script = """#!/bin/bash
# Auto-deploy to Easypanel
PROJECT_NAME="{project_name}"
SERVICE_NAME="{service_name}"
GIT_URL="{git_url}"
# Push to Git
git add .
git commit -m "Deploy $(date)"
git push origin main
echo "✅ Code pushed. Easypanel will auto-deploy."
echo "Check status: /use easypanel-deploy status"
"""
(output_dir / 'deploy.sh').write_text(deploy_script)
✅ Current Status
| Feature | Status | Notes |
|---|---|---|
| Generate website | ✅ Complete | Docker-ready |
| Push to Git | ⚠️ Manual | User must run git commands |
| Deploy to Easypanel | ⚠️ Manual | Use /use easypanel-deploy |
| Auto-deploy on push | ✅ Works | After initial setup |
| Direct integration | ❌ Not implemented | Future enhancement |
📞 Quick Reference
Deploy Commands
# 1. Generate
python3 scripts/create_astro_website.py --name "site" --output "./site"
# 2. Git
cd ./site && git init && git add . && git commit -m "Initial"
git remote add origin <url> && git push -u origin main
# 3. Easypanel (via skill)
/use easypanel-deploy deploy
→ Project: site
→ Service: site-service
→ Git URL: <url>
→ Branch: main
→ Port: 80
# 4. Check status
/use easypanel-deploy status
Environment Variables
Set in Easypanel dashboard:
UMAMI_WEBSITE_ID=xxx-xxx-xxx
UMAMI_DOMAIN=analytics.example.com
ADMIN_PASSWORD=change-me-before-production
ASTRO_DB_REMOTE_URL=file:/app/data/consent.db
🎯 Recommended Workflow
For Production:
- Generate website with
website-creator - Test locally (
npm run dev) - Push to Gitea
- Deploy with
easypanel-deploy - Set environment variables
- Verify deployment
- Future updates: just
git push
For Development:
- Generate website
- Test locally
- Make changes
- Commit when ready
- Push to trigger deployment
📝 Summary
Current: Two separate skills, manual deployment step
website-creator→ Generates website ✅- User → Pushes to Git ⚠️
easypanel-deploy→ Deploys to Easypanel ⚠️
Future (if implemented): Single command deployment
website-creator→ Generates AND deploys ✅
For now: Use the workflow above for deployment.