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:
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
Docker Image Build (
build.sh
>Dockerfile
andINSTALL.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
- These files are used by
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 deploymentGITPAT
: 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