Skip to main content
Glama

documcp

by tosin2013
first-deployment.md8.15 kB
# Your First Documentation Deployment This tutorial walks you through deploying your first documentation site using DocuMCP, from analysis to live GitHub Pages deployment. ## What You'll Build By the end of this tutorial, you'll have: - A live documentation site on GitHub Pages - Automated deployment workflow - Professional Diataxis-structured content - Understanding of DocuMCP's deployment process ## Prerequisites - Completed the [Getting Started](getting-started.md) tutorial - GitHub repository with your code - Write access to the repository - GitHub Pages enabled in repository settings ## Step-by-Step Deployment ### Step 1: Complete Repository Analysis If you haven't already, analyze your repository: ```bash # Prompt to DocuMCP: "analyze my repository for documentation deployment" ``` Expected output includes analysis ID (e.g., `analysis_xyz789`) that we'll use throughout the deployment. ### Step 2: Get Deployment-Optimized Recommendations Request recommendations specifically for deployment: ```bash # Prompt: "recommend the best static site generator for GitHub Pages deployment based on analysis_xyz789" ``` DocuMCP will consider: - **GitHub Pages compatibility** (native Jekyll support vs. Actions required) - **Build time** (Hugo's speed vs. Docusaurus features) - **Maintenance overhead** (MkDocs simplicity vs. Eleventy flexibility) ### Step 3: Generate Deployment Configuration Create production-ready configuration: ```bash # For example, if Docusaurus was recommended: "generate Docusaurus configuration for production deployment to GitHub Pages" ``` This creates: - **docusaurus.config.js**: Optimized for GitHub Pages - **package.json updates**: Required dependencies - **Build scripts**: Production build configuration ### Step 4: Set Up Documentation Structure Create comprehensive documentation structure: ```bash # Prompt: "set up Diataxis documentation structure for Docusaurus deployment" ``` Creates organized folders: ``` docs/ ├── tutorials/ # Learning-oriented ├── how-to-guides/ # Problem-solving ├── reference/ # Information-oriented ├── explanation/ # Understanding-oriented └── index.md # Landing page ``` ### Step 5: Populate with Initial Content Generate starter content based on your project: ```bash # Prompt: "populate the documentation structure with content based on my project analysis" ``` DocuMCP creates: - **Project-specific tutorials** based on your codebase - **API documentation** extracted from your code - **Installation guides** tailored to your tech stack - **Configuration examples** using your actual project structure ### Step 6: Deploy to GitHub Pages Set up automated deployment: ```bash # Prompt: "deploy my Docusaurus documentation to GitHub Pages with automated workflow" ``` This generates: - **.github/workflows/deploy.yml**: GitHub Actions workflow - **Optimized build process**: Cached dependencies, parallel builds - **Security configuration**: OIDC tokens, minimal permissions ### Step 7: Verify Deployment Check that everything is working: ```bash # Prompt: "verify my GitHub Pages deployment is working correctly" ``` DocuMCP checks: - **Workflow status**: Build and deployment success - **Site accessibility**: Homepage loads correctly - **Navigation**: All sections are reachable - **Asset loading**: CSS, JS, images work properly ## Example: Complete TypeScript Library Deployment Here's a real example for a TypeScript library: ### 1. Analysis Results ```json { "id": "analysis_ts_lib_001", "structure": { "totalFiles": 47, "languages": { ".ts": 32, ".md": 5, ".json": 3 }, "hasTests": true, "hasCI": true }, "recommendations": { "primaryLanguage": "typescript", "projectType": "library" } } ``` ### 2. Recommendation ```json { "recommended": "docusaurus", "confidence": 0.88, "reasoning": [ "TypeScript ecosystem alignment", "Excellent API documentation support", "React component integration for examples" ] } ``` ### 3. Generated Configuration **docusaurus.config.js**: ```javascript const config = { title: 'TypeScript Library Docs', tagline: 'Comprehensive API documentation', url: 'https://yourusername.github.io', baseUrl: '/your-repo-name/', // GitHub Pages deployment config organizationName: 'yourusername', projectName: 'your-repo-name', deploymentBranch: 'gh-pages', trailingSlash: false, presets: [ [ 'classic', { docs: { routeBasePath: '/', sidebarPath: require.resolve('./sidebars.js'), }, theme: { customCss: require.resolve('./src/css/custom.css'), }, }, ], ], }; ``` ### 4. GitHub Actions Workflow **.github/workflows/deploy.yml**: ```yaml name: Deploy Documentation on: push: branches: [main] paths: ['docs/**', 'docusaurus.config.js'] permissions: contents: read pages: write id-token: write jobs: deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Build documentation run: npm run build - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: './build' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 ``` ## Verification Checklist After deployment, verify: - [ ] **Site is live** at `https://yourusername.github.io/repository-name` - [ ] **All sections load** (Tutorials, How-to, Reference, Explanation) - [ ] **Search works** (if enabled) - [ ] **Mobile responsive** design - [ ] **Fast loading** (check Core Web Vitals) - [ ] **SEO optimized** (meta tags, sitemap) ## Common Deployment Issues ### Build Failures **Problem**: Workflow fails during build **Solution**: - Check Node.js version compatibility - Verify all dependencies are in package.json - Review build logs in Actions tab ### Page Not Found (404) **Problem**: Site shows 404 error **Solution**: - Verify `baseUrl` in config matches repository name - Check GitHub Pages source is set to GitHub Actions - Confirm deployment branch exists ### Assets Not Loading **Problem**: CSS/JS files return 404 **Solution**: - Ensure `publicPath` is configured correctly - Check trailing slash configuration - Verify asset paths are relative ## Performance Optimization ### Build Speed - **Caching**: Enable npm cache in GitHub Actions - **Parallel builds**: Use appropriate number of workers - **Incremental builds**: Only rebuild changed files ### Site Performance - **Image optimization**: Compress and use modern formats - **Code splitting**: Load only necessary JavaScript - **CDN integration**: Use GitHub's CDN for assets ## Next Steps Now that you have a deployed documentation site: 1. **[Set up development workflow](development-setup.md)** for ongoing maintenance 2. **[Configure custom domain](../how-to/custom-domains.md)** (optional) 3. **[Set up monitoring](../how-to/site-monitoring.md)** for uptime tracking 4. **[Optimize for search](../how-to/seo-optimization.md)** engines ## Summary You've successfully: ✅ Analyzed your repository for deployment ✅ Generated production-ready configuration ✅ Set up professional documentation structure ✅ Deployed to GitHub Pages with automation ✅ Verified your live documentation site Your documentation is now live and will automatically update with each commit! ## Troubleshooting If you encounter issues: 1. Check the [troubleshooting guide](../how-to/troubleshooting.md) 2. Review GitHub Actions logs 3. Verify repository permissions 4. Confirm GitHub Pages settings Need help? Open an issue on the [DocuMCP repository](https://github.com/tosin2013/documcp/issues).

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tosin2013/documcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server