Skip to content

Deploying Raneto

Introduction

Raneto is an open-source knowledge base platform powered by Markdown files. With no database required and a file-based architecture, Raneto makes it simple to create, maintain, and deploy documentation using just text files and folders.

Key features of Raneto include:

  • Markdown-Based: Write content in familiar Markdown format
  • No Database: Files are stored as plain text, easy to version control
  • Automatic Navigation: Generates navigation from folder structure
  • Full-Text Search: Built-in search across all content
  • Customizable Themes: Style your knowledge base with custom themes
  • Responsive Design: Works on desktop and mobile devices
  • Git-Friendly: Perfect for version control and collaboration
  • Fast and Lightweight: Minimal resource requirements
  • Meta Data Support: Add custom metadata to pages

This guide walks through deploying Raneto on Klutch.sh using Docker and setting up your knowledge base.

Prerequisites

Before deploying Raneto on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Raneto configuration
  • Your documentation content in Markdown format
  • Basic familiarity with Docker and Markdown

Deploying Raneto on Klutch.sh

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM node:18-alpine
    WORKDIR /app
    # Install Raneto
    RUN npm install raneto
    # Copy custom content and configuration
    COPY content /app/node_modules/raneto/content
    COPY config.js /app/node_modules/raneto/config.js
    # Environment configuration
    ENV NODE_ENV=production
    ENV PORT=3000
    WORKDIR /app/node_modules/raneto
    EXPOSE 3000
    CMD ["npm", "start"]

    Create Configuration File

    Create a config.js for your Raneto settings:

    var config = {
    // Site title
    site_title: 'My Knowledge Base',
    // Site tagline
    site_tagline: 'Documentation and Guides',
    // Base URL
    base_url: '',
    // Content directory
    content_dir: './content/',
    // Show table of contents
    table_of_contents: true,
    // Enable search
    allow_search: true,
    // Search excerpt length
    search_excerpt_length: 400,
    // Category sort
    category_sort: true,
    // Show edit link (for GitHub integration)
    allow_editing: false,
    // Theme
    theme_dir: './themes/',
    theme_name: 'default',
    // Analytics (optional)
    analytics: ''
    };
    module.exports = config;

    Create Content Structure

    Create a content directory with your documentation:

    content/
    ├── index.md
    ├── getting-started/
    │ ├── installation.md
    │ ├── configuration.md
    │ └── first-steps.md
    ├── guides/
    │ ├── basic-usage.md
    │ └── advanced-topics.md
    └── reference/
    └── api.md

    Push Your Repository to GitHub

    Commit and push your files to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “raneto-docs”.

    Create a New App

    Create a new app within your project and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    NODE_ENVproduction
    PORT3000

    Attach Persistent Volumes

    Add persistent storage if you want to update content without redeployment:

    Mount PathRecommended SizePurpose
    /app/node_modules/raneto/content1 GBDocumentation content

    Deploy Your Application

    Click Deploy to build and start your Raneto instance.

    Access Raneto

    Once deployment completes, access your knowledge base at https://your-app-name.klutch.sh.

Writing Content

Page Format

Each Markdown file should include meta information:

---
Title: Page Title
Description: Brief description of the page
Sort: 1
---
# Page Title
Your content here...

Organizing Categories

Folders become categories in the navigation. The folder name is used as the category title, or you can create a meta.json file:

{
"Title": "Getting Started",
"Sort": 1
}

Additional Resources

Conclusion

Deploying Raneto on Klutch.sh provides a simple, Markdown-powered knowledge base with automatic builds, persistent storage, and secure HTTPS access. Create beautiful documentation using plain text files and enjoy automatic navigation generation.