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
- Select HTTP as the traffic type
- Set the internal port to 3000
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM node:18-alpine
WORKDIR /app
# Install RanetoRUN npm install raneto
# Copy custom content and configurationCOPY content /app/node_modules/raneto/contentCOPY config.js /app/node_modules/raneto/config.js
# Environment configurationENV NODE_ENV=productionENV 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.mdPush 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:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
NODE_ENV | production |
PORT | 3000 |
Attach Persistent Volumes
Add persistent storage if you want to update content without redeployment:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/node_modules/raneto/content | 1 GB | Documentation 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 TitleDescription: Brief description of the pageSort: 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.