Skip to content

Deploying Nirvati

Introduction

Nirvati is an open-source home server platform designed to simplify self-hosting by providing a unified interface for managing applications, services, and data. Originally developed as a personal cloud solution, Nirvati enables users to run their own server infrastructure with minimal technical expertise.

The platform focuses on privacy and data ownership, allowing you to host your own applications instead of relying on third-party cloud services. Nirvati handles the complexity of server management, application deployment, and system maintenance through an intuitive web interface.

Key highlights of Nirvati:

  • Unified Dashboard: Manage all your self-hosted services from a single interface
  • Application Marketplace: Install applications with one-click deployment
  • User Management: Create and manage user accounts with role-based access
  • File Storage: Built-in file management and synchronization
  • Backup System: Automated backups for your data and configurations
  • Email Hosting: Integrated email server capabilities
  • VPN Support: Secure remote access to your home server
  • DNS Management: Built-in DNS configuration for local and external domains
  • System Monitoring: Monitor server health and resource usage
  • Open Source: Community-driven development with transparent code

This guide walks through deploying Nirvati on Klutch.sh using Docker.

Why Deploy Nirvati on Klutch.sh

Deploying Nirvati on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically builds and deploys your Nirvati instance without complex server configuration.

Persistent Storage: Attach persistent volumes for your data, applications, and configurations.

HTTPS by Default: Automatic SSL certificates ensure secure access to your platform.

GitHub Integration: Version-controlled deployments through your GitHub repository.

Scalable Resources: Allocate CPU and memory based on your application requirements.

Environment Variable Management: Securely store sensitive configuration data.

Custom Domains: Use your own domain for a personalized experience.

Always-On Availability: Your home server platform remains accessible 24/7.

Prerequisites

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

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic familiarity with Docker concepts
  • (Optional) A custom domain for your Nirvati instance

Understanding Nirvati Architecture

Nirvati consists of several integrated components:

Core Platform: The main application handling user authentication, dashboard rendering, and system management.

Application Manager: Handles installation, updates, and management of additional applications from the marketplace.

Database Backend: Stores user data, application configurations, and system settings.

File System: Manages file storage, sharing, and synchronization across devices.

Proxy Layer: Routes traffic to various applications and services running on the platform.

Deploying Nirvati on Klutch.sh

    Create Your GitHub Repository

    Create a new GitHub repository for your Nirvati deployment configuration.

    Create the Dockerfile

    Create a Dockerfile in your repository root:

    FROM debian:bullseye-slim
    # Install dependencies
    RUN apt-get update && apt-get install -y \
    curl \
    wget \
    gnupg \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*
    # Install Nirvati
    RUN curl -fsSL https://get.nirvati.org | bash
    # Set environment variables
    ENV NIRVATI_DOMAIN=${NIRVATI_DOMAIN}
    ENV NIRVATI_ADMIN_EMAIL=${NIRVATI_ADMIN_EMAIL}
    EXPOSE 80 443
    CMD ["nirvati", "start"]

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    NIRVATI_DOMAINYour app domain
    NIRVATI_ADMIN_EMAILAdmin email address

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /var/lib/nirvati50 GBApplication data and files
    /etc/nirvati1 GBConfiguration files
    /home100 GBUser home directories

    Deploy Your Application

    Click Deploy to start the build process.

    Complete Initial Setup

    Access your Nirvati instance and complete the setup wizard:

    1. Create your admin account
    2. Configure your domain settings
    3. Set up initial applications

Initial Configuration

Creating User Accounts

After deployment, set up user accounts:

  1. Access the admin dashboard
  2. Navigate to User Management
  3. Create accounts for family members or team
  4. Assign appropriate permissions

Installing Applications

Add applications from the marketplace:

  1. Open the App Store
  2. Browse available applications
  3. Click Install on desired apps
  4. Configure application-specific settings

Configuring File Storage

Set up file sharing and synchronization:

  1. Navigate to File Manager
  2. Create folder structures
  3. Set sharing permissions
  4. Configure sync clients if needed

Production Best Practices

Security Recommendations

  • Use strong, unique passwords
  • Enable two-factor authentication
  • Keep the platform updated
  • Configure firewall rules appropriately
  • Regular security audits

Backup Strategy

  1. Automated Backups: Configure Nirvati’s built-in backup system
  2. Off-site Backups: Store backups in a separate location
  3. Test Restores: Regularly verify backup integrity

Performance Optimization

  • Allocate resources based on usage patterns
  • Monitor system health regularly
  • Clean up unused applications

Troubleshooting Common Issues

Cannot Access Dashboard

  • Verify the deployment is running
  • Check port configuration
  • Review deployment logs

Application Installation Fails

  • Check available disk space
  • Verify network connectivity
  • Review application logs

Performance Issues

  • Monitor resource usage
  • Increase allocated resources if needed
  • Optimize installed applications

Additional Resources

Conclusion

Deploying Nirvati on Klutch.sh provides a complete home server platform with minimal configuration. The unified dashboard simplifies managing multiple self-hosted services while maintaining full control over your data. Whether hosting files, running applications, or managing email, Nirvati offers a cohesive solution for personal cloud computing.