Skip to content

The CLI tool for managing multiple self-hosted Supabase projects on a single server

License

Notifications You must be signed in to change notification settings

atropical/indie-ventures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Indie Ventures

Self-hosted Supabase manager for running multiple isolated projects on a single server.

License: OSL-3.0

Indie Ventures is a beautiful CLI tool that makes it easy to manage multiple Supabase projects on a single server. Perfect for indie hackers, agencies, and developers who want to self-host Supabase without the complexity.

Features

  • Server Agnostic - Works on any Ubuntu/Debian server (Hetzner, DigitalOcean, AWS, bare metal, etc.)
  • Hybrid Architecture - Choose shared or isolated services per project
  • Multi-Domain Support - Each project can have multiple custom domains
  • Automatic SSL/TLS - Free Let's Encrypt certificates with auto-renewal
  • Beautiful CLI - Powered by Gum for gorgeous interactive prompts
  • One-Command Setup - Install via Homebrew, initialize in seconds
  • Easy Migration - Export projects when they outgrow shared hosting
  • Secure by Default - Auto-generated JWT secrets, isolated databases, HTTPS ready

Quick Start

Installation

Choose the installation method based on your use case:

For Production Servers

Use the direct installation script (recommended for security):

# SSH into your server
ssh root@your-server-ip

# Install indie-ventures
curl -fsSL https://raw.githubusercontent.com/atropical/indie-ventures/main/install.sh | sudo bash

# Initialize
indie init

The CLI will guide you through:

  • Choosing data directory location
  • Dependency installation (Docker, etc.)
  • Base credential setup
  • Service initialization

For Local Development

Use Homebrew on your Mac or Linux development machine:

# Install via Homebrew
brew tap atropical/indie-ventures
brew install indie-ventures

# Initialize
indie init

Security Note: The direct installation script is recommended for production servers to avoid installing Homebrew as root, which is a security risk. Homebrew is perfect for local development environments.

Updating:

  • Production servers: sudo indie update
  • Homebrew: brew upgrade indie-ventures

Add Your First Project

indie add

Interactive prompts will ask for:

  • Project name
  • Architecture (shared or isolated)
  • Domains

That's it! Your Supabase project is ready.

System Requirements

Minimum:

  • Ubuntu 20.04+ or Debian 11+
  • 2 CPU cores
  • 4GB RAM
  • 20GB storage

Recommended:

  • 4 CPU cores
  • 8GB RAM
  • 50GB+ SSD

Works on:

  • Hetzner Cloud
  • DigitalOcean
  • Linode
  • AWS EC2
  • Google Cloud
  • Azure VMs
  • Bare metal servers
  • Local development (macOS/Linux)

Architecture

Shared Mode (Default)

  • One Supabase service stack for multiple projects
  • Each project gets its own database and JWT secrets
  • Lower resource usage
  • Perfect for small-medium projects

Isolated Mode

  • Dedicated services per project
  • Complete isolation between projects
  • Higher resource usage
  • Recommended for production/important projects

You can mix both on the same server!

Commands

indie init              # Initialize server (first time only)
indie add               # Add new project
indie list              # List all projects
indie domains <name>    # Manage project domains
indie ssl enable <name> # Enable SSL/HTTPS (free Let's Encrypt)
indie ssl renew         # Renew all certificates
indie backup <name>     # Export project for migration
indie remove <name>     # Remove project (with backup)
indie status            # Check service health
indie update            # Update CLI to latest version (Homebrew: use 'brew upgrade')

Documentation

Provider-Specific Guides

Example Workflow

Add a blog project (shared mode)

indie add
> Project name: my-blog
> Architecture: shared
> Domains: blog.mydomain.com api.blog.mydomain.com

✓ Created database 'myblog'
✓ Generated JWT secrets
✓ Configured Nginx
✓ Project ready!

Your API URL: https://blog.mydomain.com
anon key: eyJhbGciOiJ…

Add a production SaaS (isolated mode)

indie add
> Project name: my-saas
> Architecture: isolated
> Domains: api.mysaas.com

✓ Starting dedicated services…
✓ Project ready at https://api.mysaas.com

List all projects

indie list

┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Project   ┃ Arch       ┃ Status ┃ Domains                 ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ my-blog   │ shared     │ up     │ blog.mydomain.com       │
│ my-saas   │ isolated   │ up     │ api.mysaas.com          │
└───────────┴────────────┴────────┴─────────────────────────┘

Export project for migration

indie backup my-saas

✓ Dumping database…
✓ Exporting storage files…
✓ Packaging configuration…
✓ Created: backups/my-saas-2025-10-28.tar.gz

This archive contains everything needed to migrate
your project to a dedicated server.

Contributing

Contributions are welcome! Please read our Contributing Guide first.

License

This project is licensed under the Open Software License 3.0.

Support

Credits

Built with:

  • Supabase - Open source Firebase alternative
  • Gum - Beautiful shell scripts
  • Docker - Containerization
  • Nginx - Reverse proxy

Made with ❤️ for indie hackers everywhere. This project has started as a vibe coding experiment. Use at your own risk and try to not be too judgemental.

About

The CLI tool for managing multiple self-hosted Supabase projects on a single server

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published