# ๐Ÿ“‹ SEO Skills - Credentials Setup Guide **Purpose:** Set up all API credentials for testing all features --- ## ๐Ÿ”‘ CREDENTIALS REQUIRED BY FEATURE ### **Core Features (No Credentials Needed)** โœ… These features work **without any API credentials**: - โœ… Multi-channel content generation (Facebook, Google Ads, Blog, X) - โœ… Thai keyword density analysis - โœ… Thai readability scoring - โœ… Content quality scoring (0-100) - โœ… Context file creation **You can test Groups 1-3 immediately without any credentials!** --- ### **Image Features (Needs Chutes AI)** ๐ŸŽจ **Required for:** Tests 4.1, 4.3 | Variable | Description | Where to Get | |----------|-------------|--------------| | `CHUTES_API_TOKEN` | API token for image generation/editing | https://chutes.ai/ | **Setup:** 1. Sign up at https://chutes.ai/ 2. Get API token from dashboard 3. Add to `.env`: ```bash CHUTES_API_TOKEN=your_token_here ``` --- ### **Analytics Features (Optional)** ๐Ÿ“Š **Required for:** Tests 6.2-6.5 #### **Google Analytics 4** | Variable | Description | Where to Get | |----------|-------------|--------------| | `GA4_PROPERTY_ID` | Your GA4 property ID (e.g., G-123456789) | GA4 Admin โ†’ Data Streams | | `GA4_CREDENTIALS_PATH` | Path to service account JSON file | Google Cloud Console | **Setup:** 1. Go to Google Cloud Console 2. Create service account 3. Download JSON credentials 4. Grant service account access to GA4 property 5. Add to `.env`: ```bash GA4_PROPERTY_ID=G-XXXXXXXXXX GA4_CREDENTIALS_PATH=/path/to/ga4-credentials.json ``` --- #### **Google Search Console** | Variable | Description | Where to Get | |----------|-------------|--------------| | `GSC_SITE_URL` | Your verified site URL | GSC dashboard | | `GSC_CREDENTIALS_PATH` | Path to service account JSON file | Google Cloud Console | **Setup:** 1. Use same service account as GA4 (or create new) 2. Grant service account access to GSC property 3. Add to `.env`: ```bash GSC_SITE_URL=https://yoursite.com GSC_CREDENTIALS_PATH=/path/to/gsc-credentials.json ``` --- #### **DataForSEO** | Variable | Description | Where to Get | |----------|-------------|--------------| | `DATAFORSEO_LOGIN` | API login | https://dataforseo.com/ dashboard | | `DATAFORSEO_PASSWORD` | API password | https://dataforseo.com/ dashboard | **Setup:** 1. Sign up at https://dataforseo.com/ 2. Get API credentials from dashboard 3. Add to `.env`: ```bash DATAFORSEO_LOGIN=your_login DATAFORSEO_PASSWORD=your_password ``` --- #### **Umami Analytics** | Variable | Description | Where to Get | |----------|-------------|--------------| | `UMAMI_API_URL` | Your Umami instance URL | Your Umami dashboard | | `UMAMI_API_KEY` | API key from Umami | Umami dashboard โ†’ Settings | | `UMAMI_WEBSITE_ID` | Website ID in Umami | Umami dashboard โ†’ Websites | **Setup:** 1. Self-host Umami or use cloud version 2. Get API key from dashboard 3. Add to `.env`: ```bash UMAMI_API_URL=https://analytics.yoursite.com UMAMI_API_KEY=your_api_key UMAMI_WEBSITE_ID=your_website_id ``` --- ### **Git/Auto-Publish Features (Optional)** ๐Ÿš€ **Required for:** Test 5.1 (auto-publish) | Variable | Description | Where to Get | |----------|-------------|--------------| | `GIT_USERNAME` | Your Git username | Gitea/GitHub profile | | `GIT_EMAIL` | Your Git email | Gitea/GitHub profile | | `GIT_TOKEN` | Personal access token | Gitea/GitHub settings | | `GIT_URL` | Git server URL | Your Gitea/GitHub instance | **Setup:** 1. Generate personal access token from Gitea/GitHub 2. Add to `.env`: ```bash GIT_USERNAME=your_username GIT_EMAIL=your@email.com GIT_TOKEN=your_token GIT_URL=https://git.moreminimore.com ``` --- ## ๐Ÿ“ SETUP WORKFLOW ### **Step 1: Copy .env.example** ```bash cd /Users/kunthawatgreethong/Gitea/opencode-skill cp .env.example .env ``` ### **Step 2: Edit .env** ```bash nano .env # or use your preferred editor ``` ### **Step 3: Add Your Credentials** **Minimum for testing core features (nothing required!):** ```bash # Leave everything blank - core features still work! ``` **For full testing:** ```bash # Images (for Tests 4.1, 4.3) CHUTES_API_TOKEN=your_chutes_token # Git (for Test 5.1) GIT_USERNAME=your_username GIT_EMAIL=your@email.com GIT_TOKEN=your_git_token # Analytics (for Tests 6.2-6.5, skip if you don't have) GA4_PROPERTY_ID=G-XXXXXXXXXX GA4_CREDENTIALS_PATH=/path/to/ga4.json GSC_SITE_URL=https://yoursite.com GSC_CREDENTIALS_PATH=/path/to/gsc.json DATAFORSEO_LOGIN=your_login DATAFORSEO_PASSWORD=your_password UMAMI_API_URL=https://analytics.yoursite.com UMAMI_API_KEY=your_key UMAMI_WEBSITE_ID=your_id ``` ### **Step 4: Verify Setup** ```bash # Check .env exists ls -la .env # Check it has your credentials (first 5 chars only) grep "^CHUTES_API_TOKEN=" .env | cut -c1-20 ``` --- ## โœ… CREDENTIAL CHECKLIST Before testing, check which credentials you have: ### **Core Features (No credentials needed)** - [ ] None required! Ready to test Groups 1-3 ### **Image Features** - [ ] `CHUTES_API_TOKEN` - Required for Tests 4.1, 4.3 - [ ] Skip if not available (image features are optional) ### **Git/Auto-Publish** - [ ] `GIT_USERNAME` - [ ] `GIT_EMAIL` - [ ] `GIT_TOKEN` - [ ] Required for Test 5.1 ### **Analytics (All Optional)** - [ ] `GA4_PROPERTY_ID` + `GA4_CREDENTIALS_PATH` - Test 6.2 - [ ] `GSC_SITE_URL` + `GSC_CREDENTIALS_PATH` - Test 6.3 - [ ] `DATAFORSEO_LOGIN` + `DATAFORSEO_PASSWORD` - Test 6.4 - [ ] `UMAMI_API_URL` + `UMAMI_API_KEY` + `UMAMI_WEBSITE_ID` - Test 6.5 --- ## ๐Ÿงช TESTING STRATEGY ### **Phase 1: Test Without Credentials** (Recommended Start) Test these features that don't need any credentials: - โœ… Group 1: Content generation (all 5 channels) - โœ… Group 2: Thai analysis (keyword, readability, quality) - โœ… Group 3: Context management **Time:** 1 hour **Credentials needed:** None! --- ### **Phase 2: Add Image Credentials** Add `CHUTES_API_TOKEN` and test: - โœ… Group 4: Image generation and editing **Time:** 30 minutes **Credentials needed:** Chutes AI token only --- ### **Phase 3: Add Git Credentials** Add Git credentials and test: - โœ… Group 5: Auto-publish to Astro **Time:** 20 minutes **Credentials needed:** Git token + Chutes (optional) --- ### **Phase 4: Add Analytics Credentials** (Optional) Add analytics credentials if you have them: - โœ… Group 6: Analytics integrations **Time:** 30 minutes **Credentials needed:** GA4/GSC/DataForSEO/Umami (any you have) --- ## ๐Ÿ”’ SECURITY NOTES 1. **NEVER commit .env** - It's in .gitignore for a reason! 2. **Use separate service accounts** for each service when possible 3. **Limit service account permissions** to read-only where possible 4. **Rotate tokens regularly** for security 5. **Use environment variables** in production instead of .env file --- ## ๐Ÿ“ž TROUBLESHOOTING ### **Issue: Credentials Not Being Read** **Check:** ```bash # Verify .env file exists ls -la .env # Check it's being loaded (add to your script) python3 -c "from dotenv import load_dotenv; load_dotenv(); import os; print(os.getenv('CHUTES_API_TOKEN', 'Not set'))" ``` --- ### **Issue: GA4/GSC Authentication Failed** **Common causes:** - Service account doesn't have access to GA4/GSC property - Wrong credentials path - JSON file corrupted **Fix:** 1. In GA4 Admin โ†’ Add user with service account email 2. Grant "Viewer" or "Analyst" role 3. Verify credentials path is absolute path --- ### **Issue: Git Push Fails** **Common causes:** - Token doesn't have write permissions - Wrong Git URL - Repository doesn't exist **Fix:** 1. Generate new token with `repo` or `write` scope 2. Verify Git URL is correct 3. Create repository first if it doesn't exist --- ## ๐Ÿ“– QUICK REFERENCE | Feature | Credentials | Test | Status | |---------|-------------|------|--------| | Content Generation | None | 1.1-1.3 | โœ… Ready | | Thai Analysis | None | 2.1-2.3 | โœ… Ready | | Context Management | None | 3.1-3.2 | โœ… Ready | | Image Generation | CHUTES_API_TOKEN | 4.1, 4.3 | โณ Optional | | Image Editing | CHUTES_API_TOKEN | 4.2, 4.3 | โณ Optional | | Auto-Publish | GIT_* | 5.1 | โณ Optional | | GA4 | GA4_* | 6.2 | โณ Optional | | GSC | GSC_* | 6.3 | โณ Optional | | DataForSEO | DATAFORSEO_* | 6.4 | โณ Optional | | Umami | UMAMI_* | 6.5 | โณ Optional | --- **Ready to test! Start with Phase 1 (no credentials needed).** ๐Ÿš€