Frequently Asked Questions

Frequently asked questions about GEO Wiki Pro knowledge base platform, covering deployment, configuration, and usage

# Frequently Asked Questions > Quick solutions for issues with GEO Wiki Pro --- ## 🔧 Installation & Deployment ### Q: How to install GEO Wiki Pro? **A:** Two installation methods: **Method 1: Docker Deployment (Recommended)** ```bash # Clone the repository git clone https://github.com/your-org/geo-wiki-pro.git cd geo-wiki-pro # Configure environment variables cp .env.example .env # Edit .env, set JWT_SECRET (at least 32 characters) # Start services docker-compose up -d # Verify curl http://localhost:3002/api/v1/health ``` **Method 2: Local Development** ```bash # Install dependencies npm install # Start frontend and backend npm run dev:full ``` ### Q: How to deploy with Baota Panel? **A:** See the [Baota Deployment Guide](/docs/baota-deployment) for complete Nginx configuration and troubleshooting. ### Q: Cannot access after Docker deployment? **A:** Check the following: 1. **Port mapping**: Ensure ports are correctly mapped in `docker-compose.yml` 2. **.env configuration**: Confirm `JWT_SECRET` is set with length >= 32 3. **Check logs**: `docker compose logs api` for error messages 4. **Firewall**: Ensure the port is not blocked --- ## 🌐 Multilingual ### Q: How to add a new language? **A:** Follow these steps: 1. Create translation file `src/i18n/{lang}.json` 2. Register the new language in `src/utils/i18n.js` 3. Create documents in `data/docs/{lang}/` directory 4. Use CLI: `geo doc create --file doc.md --lang {lang}` ### Q: How do different language versions sync? **A:** GEO Wiki Pro uses cascade merging: - Chinese (zh) is the base language - When querying other languages, zh docs are read first, then overlaid by the target language - `category`, `tags`, `author`, `sort` are shared fields, synced to all language versions - `title`, `description`, `content` are independent, different per language --- ## 📝 Document Management ### Q: How to manage documents via CLI? **A:** Use the `geo` command-line tool: ```bash # Install npm install -g geowiki-cli # Login geo login --url https://geowiki.pro # Create document geo doc create --file article.md --category support --sort 1 # Update document geo doc update --slug my-doc --file updated.md --lang zh # Delete document geo doc delete --slug old-doc # List documents geo doc list --category support ``` ### Q: What is a slug? How to choose one? **A:** A slug is the URL identifier for a document. Rules: - Only letters, numbers, hyphens, underscores allowed - Maximum 200 characters - Use lowercase English with hyphens - Examples: `docker-deployment`, `faq`, `rest-api` --- ## 🎨 Markdown Extensions ### Q: What extended syntax is supported? **A:** GEO Wiki Pro supports: | Syntax | Description | Example | |--------|-------------|---------| | `:::video[desc](url)` | Video embed | `:::video[Demo](https://bilibili.com/...)` | | `:::model[title](url)` | 3D model card | `:::model[Product Model](/media/model.step)` | | `::: note` / `::: tip` / `::: warning` | Callouts | Info, tips, warnings | | `::: faq` | FAQ block | Q&A format | | `![alt](url)` | Image (alt becomes caption) | `![Wiring](/media/wiring.png)` | | `[name](url)` | File download card | `[Manual](/media/manual.pdf)` | --- ## 🔒 Security ### Q: How is the admin panel protected? **A:** Multiple security layers: 1. **JWT Auth**: httpOnly cookie, 2-hour expiry 2. **CSRF Protection**: Double-submit cookie HMAC 3. **CSP Policy**: Helmet nonce-based Content Security Policy 4. **Rate Limiting**: 300/min global, 10/min for auth 5. **Password Encryption**: bcrypt storage 6. **Forced password change** on first login --- ## 📡 API ### Q: How does API authentication work? **A:** JWT cookie authentication: ```bash # Login to get token curl -X POST "https://geowiki.pro/api/v1/auth/login" \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "your-password"}' \ -c cookies.txt # Use token for admin endpoints curl "https://geowiki.pro/api/v1/admin/docs" \ -b cookies.txt ``` ### Q: Do public endpoints require authentication? **A:** No. These endpoints are fully public: - `GET /api/v1/docs` — Document list - `GET /api/v1/docs/:slug` — Single document - `GET /api/v1/docs/search` — Search - `GET /api/v1/categories` — Categories - `GET /api/v1/tags` — Tags - `GET /api/v1/config` — Site config - `GET /api/v1/llms.txt` — AI crawler feed - `GET /api/v1/geo/sitemap.xml` — XML sitemap --- ## 📚 More Resources - [Quick Start](/docs/cli-quick-reference) - [Docker Deployment](/docs/docker-deployment) - [REST API Reference](/docs/rest-api) - [Markdown Extensions](/docs/markdown-extensions) --- *Last updated: 2026-06-06 | Version: v3.0.2*