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:
- 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 services Docker images
- Configures system services and networking
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-controllerHost System Setup
bash
# Execute during OS installation
sudo chmod +x INSTALL.so.sh
./INSTALL.so.sh "$HOST"Nota: "$HOST" ha de ser substituït pel nom que es vulgui donar al host, no s'ha de posar "$HOST" directament
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.shThis ensures that all Node-RED custom modules build correctly before deployment.
Network Tools
- Network optimization scripts
- 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 (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 [container_name]