Skip to content

Rosepetal Controller installation and Docker Generator

A comprehensive toolset for building and deploying Rosepetal Controller in Docker containers, with support for NVIDIA GPUs, system services, and various development tools.

Overview

This project provides scripts and configurations to:

  • Build Docker containers for Rosepetal Controller
  • Set up development environments
  • Configure system services and networking
  • Install and manage dependencies

Installation Process

The installation process consists of two main parts:

  1. Host System Setup (INSTALL.so.sh):

    • This script is executed during the host operating system installation
    • Sets up basic system requirements
    • Installs Docker and NVIDIA container toolkit
    • Downloads the pre-built Rosepetal Controller Docker image
    • Configures system services and networking
  2. Docker Image Build (build.sh > Dockerfile and INSTALL.sh):

    • These files are used by build.sh to generate the Rosepetal Controller Docker image
    • Defines the container environment and dependencies
    • Sets up all required services and tools
    • Creates the production-ready container image

Key Features

  • NVIDIA GPU support with CUDA 11.8
  • Systemd integration
  • Network optimization tools
  • Development tools (Node.js, Python, OpenCV)
  • Monitoring and management tools (Cockpit, Ajenti)
  • Database support (RethinkDB)
  • Real-time messaging (NATS Server)
  • Node-RED and Rosepetal Node-RED contributions

Prerequisites

  • Ubuntu 22.04 or compatible Linux distribution
  • NVIDIA GPU with compatible drivers
  • Docker with NVIDIA Container Toolkit
  • Git access to Rosepetal repositories

Installation

bash
# Clone the repository
git clone https://github.com/rosepetal-ai/rosepetal-controller
cd rosepetal-controller

Host System Setup

bash
# Execute during OS installation
./INSTALL.so.sh

Docker Image Build

bash
# Build the Docker image
./build.sh

Development Environment

For development setup:

bash
# Run development container
./run.dev.sh

Production Deployment

bash
# Run production container
./run.sh

Components

Core Services

  • Node-RED: Flow-based development tool
  • TensorFlow Serving: Model serving platform
  • RethinkDB: Database system
  • NATS Server: Messaging system
  • Nginx: Web server
  • Cockpit: System administration interface
  • Ajenti: Web-based admin panel

Development Tools

  • Node.js and Yarn
  • Python development tools
  • OpenCV with GPU support
  • CUDA development toolkit

Testing Environment

The test-contrib directory contains a specialized Docker environment for testing the build process of:

  • rosepetal-node-red-contrib
  • rosepetal-node-red-dashboard-contrib
  • rosepetal-node-red-modules

To use the testing environment:

bash
cd test-contrib
./build.sh

This ensures that all Node-RED custom modules build correctly before deployment.

Network Tools

  • Network optimization scripts
  • ZeroTier VPN integration
  • Tailscale VPN support
  • DHCP server for local network management

Configuration

Environment Variables

  • HOST: Domain name for the deployment
  • GITPAT: GitHub Personal Access Token for repository access

Storage Volumes

  • /opt/storage: Persistent storage
  • /opt/data: RAM disk for temporary storage
  • /var/lib/rethinkdb: Database storage

Network Optimization

The system includes network optimization scripts that:

  • Configure MTU settings
  • Optimize TCP/IP stack
  • Set up CPU performance governors
  • Configure network interface parameters

Security Features

  • SSH server configuration
  • VPN integration (ZeroTier, Tailscale)
  • Docker security settings
  • System service isolation

Maintenance

Logs

  • System logs are available in /var/log/syslog
  • Docker logs can be accessed using docker logs rosepetal-dep-controller