Skip to content

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:

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
└── .dockerignore

Creating the Dockerfile

FROM ghcr.io/bouncepaw/mycorrhiza:latest
# Expose web interface
EXPOSE 1737
# Wiki data volume
VOLUME ["/wiki"]
# Set wiki name through environment
ENV WIKI_NAME="My Wiki"
# Start the wiki server
CMD ["mycorrhiza", "/wiki"]

Creating the .dockerignore File

.git
.github
*.md
LICENSE
.gitignore
.DS_Store

Deploying Mycorrhiza Wiki on Klutch.sh

    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:

    • Select HTTP as the traffic type
    • Set the internal port to 1737

    Attach Persistent Volumes

    Configure storage for wiki content:

    Mount PathRecommended SizePurpose
    /wiki5 GBWiki 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

  1. Navigate to any URL like /hypha/welcome
  2. Click “Edit” to create the page
  3. Write content in Mycomarkup syntax
  4. Save to create the hypha

Setting Up Authentication

For private wikis or controlled editing:

  1. Create a configuration file in the wiki directory
  2. Define users and permissions
  3. Restart the container to apply changes

Mycomarkup Syntax

Basic Formatting

**bold text**
//italic text//
__underlined text__
`inline code`
[[target]] - link to another hypha
[[target | display text]] - link with custom text
[[https://example.com]] - external link

Headers

= Level 1 Header
== Level 2 Header
=== Level 3 Header

Lists

* Unordered item
* Another item
** Nested item
# Ordered item
# Second item
## Nested ordered

Code Blocks

```language
code 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 pages
3. 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 hypha
2. Use the attachment interface
3. Upload files (images, documents, etc.)
4. Reference in content
### Git History
Access version history:
1. View history for any hypha
2. Compare versions
3. Revert to previous states
4. Clone the wiki repository for external editing
### External Editing
Work with wiki files directly:
1. Clone the wiki Git repository
2. Edit text files locally
3. Push changes back
4. 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 repository
2. Clone it externally for backup
3. Push to remote Git hosting
4. 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.