Skip to content

Self-Hosting with Docker Compose

RasnuCloud is fully self-hostable. Run the complete platform on your own infrastructure, with full control over your data.


Requirements

  • A Linux server with at least 2 vCPU and 4 GB RAM
  • Docker and Docker Compose installed
  • A domain name (for HTTPS)
  • An outbound SMTP server (for email — or you can use Resend, Postmark, or Mailgun)

Getting Started

1. Clone the repository

bash
git clone https://github.com/rasnucloud-io/rasnucloud.git
cd rasnucloud

2. Configure environment

bash
cp .env.example .env

Open .env and configure the required values. The minimum required configuration:

bash
APP_URL=https://rasnucloud.mycompany.com
APP_KEY=                          # Generate with: php artisan key:generate

DB_HOST=db
DB_DATABASE=rasnucloud
DB_USERNAME=rasnucloud
DB_PASSWORD=a-strong-password-here

REDIS_HOST=redis

MAIL_HOST=smtp.postmarkapp.com    # Or your SMTP provider
MAIL_PORT=587
MAIL_USERNAME=your-postmark-api-key
MAIL_PASSWORD=your-postmark-api-key
MAIL_FROM_ADDRESS=[email protected]

REVERB_APP_KEY=a-random-string    # Generate: openssl rand -hex 16
REVERB_APP_SECRET=a-random-string # Generate: openssl rand -hex 32

GEMINI_API_KEY=                   # Your Google AI API key

3. Start the stack

bash
docker compose up -d

4. Initialize the database

bash
docker compose exec app php artisan migrate --force

5. Configure your reverse proxy

Point your domain to this server and configure Nginx or Caddy to proxy to port 8000. See Reverse Proxy Setup →


The Stack

RasnuCloud runs as a set of Docker services managed by Compose. You don't need to understand what each service does to run the platform — but for reference:

ServiceWhat It Does
appThe RasnuCloud web application and API
workerBackground job processor for AI tasks, installations, and migrations
dbPostgreSQL — primary database
redisCache and real-time messaging
reverbWebSocket server for live terminal output and real-time updates

Upgrading

When a new version is released:

bash
git pull origin main
docker compose pull
docker compose up -d
docker compose exec app php artisan migrate --force

Check the Changelog for breaking changes before upgrading major versions.


Backup

Back up your database regularly:

bash
docker compose exec db pg_dump -U rasnucloud rasnucloud > rasnucloud-backup-$(date +%Y%m%d).sql

Store backups off-server. RasnuCloud does not automatically back up your data.

Released under the MIT License.