Deploying Mycorrhiza Wiki
Introduction
Mycorrhiza Wiki is a lightweight, Git-backed wiki engine that stores all content as plain text files on the filesystem. Named after the symbiotic fungal networks that connect trees underground, Mycorrhiza emphasizes interconnection between pages through its unique Mycomarkup syntax and bidirectional linking system.
Written in Go, Mycorrhiza is fast, resource-efficient, and requires no database. All wiki content is stored as plain text files, making it easy to backup, version control, and migrate. The built-in Git integration automatically tracks all changes, providing complete history and easy rollback capabilities.
Key highlights of Mycorrhiza:
- Filesystem-Based: All content stored as plain text files, no database required
- Git Integration: Automatic version control for all changes
- Mycomarkup: Custom markup language designed for wiki content
- Bidirectional Links: Automatic backlink tracking between pages
- File Attachments: Attach images and files directly to pages
- Categories (Hyphae): Organize content with hierarchical categorization
- Fast and Light: Written in Go with minimal resource requirements
- Simple Deployment: Single binary with no external dependencies
This guide walks through deploying Mycorrhiza Wiki on Klutch.sh using Docker.
Why Deploy Mycorrhiza Wiki on Klutch.sh
Deploying Mycorrhiza Wiki on Klutch.sh provides several benefits:
Always Available: Your wiki is accessible from anywhere, perfect for personal knowledge bases or team documentation.
Persistent Storage: Wiki files persist in attached volumes, with Git history preserved across container restarts.
Simplified Deployment: Push to GitHub and Klutch.sh handles the rest. No server management required.
HTTPS by Default: Secure access to your wiki with automatic SSL certificates.
Version Control: Git integration means your entire wiki history is preserved and accessible.
Prerequisites
Before deploying Mycorrhiza Wiki on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker concepts
Understanding Mycorrhiza Architecture
Mycorrhiza has a simple, elegant architecture:
Go Web Server: Handles HTTP requests, renders pages, and manages the wiki interface.
Filesystem Storage: Wiki pages (hyphae) are stored as directories containing text files and attachments.
Git Repository: The wiki directory is a Git repository, automatically tracking all changes.
Mycomarkup Parser: Converts Mycomarkup syntax to HTML for rendering.
User System: Optional authentication for editing and administration.
Terminology
- Hypha: A wiki page (singular: hypha, plural: hyphae)
- Mycomarkup: The markup language used for writing content
- Attachment: Files associated with a hypha
Preparing Your Repository
Create a GitHub repository for your deployment.
Repository Structure
mycorrhiza-deploy/├── Dockerfile└── .dockerignoreCreating the Dockerfile
FROM ghcr.io/bouncepaw/mycorrhiza:latest
# Expose web interfaceEXPOSE 1737
# Wiki data volumeVOLUME ["/wiki"]
# Set wiki name through environmentENV WIKI_NAME="My Wiki"
# Start the wiki serverCMD ["mycorrhiza", "/wiki"]Creating the .dockerignore File
.git.github*.mdLICENSE.gitignore.DS_StoreDeploying Mycorrhiza Wiki on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 1737
Push Your Repository to GitHub
Initialize and push your repository with the Dockerfile to GitHub.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a project named “mycorrhiza” or “wiki”.
Create a New App
Create a new app and connect your GitHub repository.
Configure HTTP Traffic
Mycorrhiza serves its web interface over HTTP:
Attach Persistent Volumes
Configure storage for wiki content:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/wiki | 5 GB | Wiki content, attachments, and Git history |
Deploy Your Application
Click Deploy to build and start your Mycorrhiza instance.
Access Your Wiki
Visit https://your-app-name.klutch.sh to access your wiki.
Initial Configuration
First Access
On first visit, Mycorrhiza creates an empty wiki. The home page will guide you to create content.
Creating Your First Hypha
- Navigate to any URL like
/hypha/welcome - Click “Edit” to create the page
- Write content in Mycomarkup syntax
- Save to create the hypha
Setting Up Authentication
For private wikis or controlled editing:
- Create a configuration file in the wiki directory
- Define users and permissions
- Restart the container to apply changes
Mycomarkup Syntax
Basic Formatting
**bold text**//italic text//__underlined text__`inline code`Links
[[target]] - link to another hypha[[target | display text]] - link with custom text[[https://example.com]] - external linkHeaders
= Level 1 Header== Level 2 Header=== Level 3 HeaderLists
* Unordered item* Another item** Nested item
# Ordered item# Second item## Nested orderedCode Blocks
```languagecode here### Transclusion
Include content from other hyphae:<= other-hypha
### Images
Attach images to a hypha and reference them:img { attachment-name.jpg }
## Organization Strategies
### Hierarchical Structure
Use slashes to create hierarchy:/projects /projects/project-a /projects/project-a/notes /projects/project-b
### Category Tags
Use backlinks and categories to group related hyphae:
1. Create a category hypha like `/categories/programming`2. Link to it from relevant pages3. The category page shows all backlinks automatically
### Interlinking
Mycorrhiza tracks bidirectional links automatically:
- Every link creates a backlink- View backlinks on any hypha- Discover connections through the link graph
## Advanced Features
### File Attachments
Add files to hyphae:
1. Edit a hypha2. Use the attachment interface3. Upload files (images, documents, etc.)4. Reference in content
### Git History
Access version history:
1. View history for any hypha2. Compare versions3. Revert to previous states4. Clone the wiki repository for external editing
### External Editing
Work with wiki files directly:
1. Clone the wiki Git repository2. Edit text files locally3. Push changes back4. Mycorrhiza reflects updates
## Use Cases
### Personal Knowledge Base
Build your second brain:
- Daily notes and journals- Topic explorations- Book and article notes- Personal documentation
### Team Documentation
Collaborative knowledge sharing:
- Project documentation- Meeting notes- Procedures and guides- Internal resources
### Digital Garden
Public knowledge sharing:
- Working notes- Connected ideas- Learning in public- Progressive writing
## Production Best Practices
### Backup Strategy
Protect your wiki:
1. The wiki is a Git repository2. Clone it externally for backup3. Push to remote Git hosting4. Export periodically
### Performance
Mycorrhiza is lightweight:
- Minimal resource requirements- Fast page rendering- Efficient file storage- Scales well with content growth
### Security
For production wikis:
- Configure authentication for editing- Use strong passwords- Consider read-only public access- Regular security updates
## Troubleshooting
### Wiki Not Loading
- Verify container is running- Check HTTP port configuration (1737)- Review container logs
### Cannot Create Pages
- Verify volume permissions- Check disk space- Ensure write access to wiki directory
### Git History Missing
- Git repository initialized on first write- Verify volume persistence- Check Git configuration in container
### Attachments Not Displaying
- Verify file was uploaded successfully- Check file path in Mycomarkup- Ensure sufficient storage space
## Alternative Wiki Engines
Consider these alternatives based on your needs:
| Wiki | Database | Markup | Best For ||------|----------|--------|----------|| Mycorrhiza | None (files) | Mycomarkup | Simple, interconnected notes || Wiki.js | PostgreSQL | Markdown | Full-featured wiki || BookStack | MySQL | WYSIWYG | Documentation || DokuWiki | None (files) | Wiki syntax | PHP-based simplicity |
## Additional Resources
- <a href="https://mycorrhiza.wiki/" target="_blank" rel="noopener noreferrer">Official Mycorrhiza Website</a>- <a href="https://mycorrhiza.wiki/hypha/mycomarkup" target="_blank" rel="noopener noreferrer">Mycomarkup Documentation</a>- <a href="https://github.com/bouncepaw/mycorrhiza" target="_blank" rel="noopener noreferrer">Mycorrhiza GitHub Repository</a>- <a href="/concepts/volumes" target="_blank" rel="noopener noreferrer">Klutch.sh Persistent Volumes</a>- <a href="/concepts/deployments" target="_blank" rel="noopener noreferrer">Klutch.sh Deployments</a>
## Conclusion
Deploying Mycorrhiza Wiki on Klutch.sh gives you a lightweight, interconnected wiki system with built-in version control. The filesystem-based storage and Git integration make it easy to backup, migrate, and maintain your knowledge base.
Whether you're building a personal second brain, team documentation, or a public digital garden, Mycorrhiza on Klutch.sh provides a reliable foundation for growing your interconnected knowledge network.