Unified documentation site for the Soliplex ecosystem, built with MkDocs Material.
Live site: https://soliplex.github.io/
This repository hosts the unified documentation for all Soliplex projects. Documentation is automatically synchronized from multiple upstream repositories:
- soliplex/soliplex - Core Platform
- soliplex/ingester - Document Ingestion
- soliplex/ingester-agents - Ingester Agents
- soliplex/chatbot - Chatbot Interface
- soliplex/flutter - Flutter Frontend
- soliplex/ag-ui - AG UI Components
Documentation is automatically synchronized using GitHub Actions:
- Daily: Syncs all repositories at 2 AM UTC
- On Demand: Triggered when upstream repositories publish changes via
repository_dispatch - Manual: Can be triggered manually via GitHub Actions UI
- The sync-docs.yml workflow runs on schedule or trigger
- For each repository, sync-repo-docs.sh fetches documentation using git sparse checkout
- Documentation is copied to corresponding
docs/subdirectories - Changes are committed and pushed automatically
- GitHub Pages builds and deploys the updated site
To manually sync documentation from specific repositories:
- Go to Actions → Sync Documentation from Repos
- Click "Run workflow"
- Select which repository to sync (or "all")
- Click "Run workflow"
To test documentation sync locally:
# Sync specific repository
./scripts/sync-repo-docs.sh soliplex/soliplex docs/soliplex docs
# Sync all repositories
./scripts/sync-repo-docs.sh soliplex/soliplex docs/soliplex docs
./scripts/sync-repo-docs.sh soliplex/ingester docs/ingester docsNote: Synced directories (docs/soliplex/, docs/ingester/, etc.) are in .gitignore and should not be committed.
# Install dependencies
pip install -r requirements.txt
# Or install directly
pip install mkdocs-material
# Serve locally (default port 8001)
mkdocs serve
# Serve on different port
mkdocs serve -a localhost:8002The documentation site will be available at http://127.0.0.1:8001/
# Build static site
mkdocs build
# Output will be in site/soliplex.github.io/
├── .github/
│ └── workflows/
│ ├── build-docs.yml # Build and deploy to GitHub Pages
│ └── sync-docs.yml # Sync from upstream repos
├── scripts/
│ └── sync-repo-docs.sh # Sync script
├── docs/
│ ├── index.md # Landing page (manually maintained)
│ ├── soliplex/ # Auto-synced from soliplex/soliplex
│ ├── ingester/ # Auto-synced from soliplex/ingester
│ ├── agents/ # Auto-synced from soliplex/ingester-agents
│ ├── chatbot/ # Auto-synced from soliplex/chatbot
│ ├── flutter/ # Auto-synced from soliplex/flutter
│ └── ag-ui/ # Auto-synced from soliplex/ag-ui
├── mkdocs.yml # MkDocs configuration
├── requirements.txt # Python dependencies
└── README.md # This file
To add documentation from a new repository:
-
Edit .github/workflows/sync-docs.yml:
- Add the repository to the
workflow_dispatchinput options - Add a new sync step using the sync script
- Add the repository to the commit message generation
- Add the repository to the
-
Update mkdocs.yml:
- Add navigation entries for the new documentation
-
Update .gitignore:
- Add the new docs subdirectory to ignored paths
-
Update this README:
- Add the repository to the Overview list
If documentation sync fails:
- Check the Sync Docs workflow runs
- Verify the upstream repository has a
docs/directory or specified path - Check that the sync script has correct permissions (
chmod +x scripts/sync-repo-docs.sh) - Try running the sync script locally to identify issues
Branch Protection Error:
If the workflow fails with "Protected branch update failed - Required status check 'validate' is expected":
- Go to repository Settings → Branches → Branch protection rules for
main - Either:
- Option A (Recommended): Under "Allow specified actors to bypass required pull requests", add
github-actions[bot] - Option B: Under "Require status checks to pass before merging", remove the
validatecheck or ensure avalidateworkflow exists - Option C: Disable branch protection temporarily for testing
- Option A (Recommended): Under "Allow specified actors to bypass required pull requests", add
The sync workflow needs to push commits directly to main, so it must either bypass protection or have all required checks pass.
If the documentation build fails:
- Check the Build Docs workflow runs
- Verify all navigation paths in
mkdocs.ymlpoint to existing files - Check for Markdown syntax errors in documentation files
- Test the build locally with
mkdocs build --strict
If local development server has issues:
# Clean build cache
rm -rf site/ .cache/
# Reinstall dependencies
pip install -r requirements.txt --upgrade
# Serve with verbose output
mkdocs serve --verboseDo not edit synced directories directly (docs/soliplex/, docs/ingester/, etc.). These are automatically overwritten.
To update documentation:
- Make changes in the upstream repository (e.g., soliplex/soliplex)
- Documentation will sync automatically within 24 hours
- Or manually trigger sync via GitHub Actions
To update site configuration or landing page:
- Edit
mkdocs.ymlfor navigation and theme settings - Edit
docs/index.mdfor the landing page content - Create a pull request with changes
- soliplex/soliplex - Core Platform
- soliplex/ingester - Document Ingestion System
- soliplex/ingester-agents - Ingester Agent Framework
- soliplex/chatbot - Chatbot Interface
- soliplex/flutter - Flutter Mobile/Web Frontend
- soliplex/ag-ui - AG UI Component Library
Documentation is licensed under the same terms as the respective upstream projects.