bruvtools πŸš€

by fcavalcantirj

2 341 downloads Not rated yet MIT

About

πŸš€ Your Private App Platform - Deploy Node.js, Python, Go, Java & more to CapRover, AWS, GCP with one CLI. Features MCP integration for Cursor.com, smart collision detection, auto-SSL, and costs 80% less than Heroku. Transform any $5 server into your personal Vercel.

Details

License
MIT

Explore

- Deploy any language with a single command.
- Automatic SSL certificates on every deployment.
- Zero-downtime rolling updates.
- Auto scaling of app instances.
- Private and secure – your own server.
- Cost effective at ~$5/month.
- Smart collision detection for app names.

- Domain name ($2/year) - for wildcard DNS (.yourdomain.com)
- Server with public IP ($5/month) - DigitalOcean, Vultr, Linode, etc.
- Docker installed - included in one-click deployment

npm install -g bruvtools
bruvtools --version  # Should show: 0.2.16

bruvtools init

bruvtools deploy my-app

For the easiest setup, use the automated script from within the bruvtools repository:

bash

git clone https://github.com/fcavalcantirj/bruvtools.git
cd bruvtools

chmod +x setup-mcp.sh
./setup-mcp.sh


Note: The setup script must be run from within the bruvtools repository directory as it uses the included mcp-server.js file.

bash

npm install -g bruvtools

1. Open Cursor.com Settings:
- Press Cmd/Ctrl + , to open settings
- Search for "MCP" or go to Extensions β†’ Model Context Protocol

2. Add bruvtools MCP Server:

   {
"mcpServers": {
"bruvtools": {
"command": "bruvtools",
"args": ["mcp"],
"env": {
"CAPROVER_PASSWORD": "your-caprover-password",
"CAPROVER_DOMAIN": "your-domain.com",
"CAPROVER_MACHINE": "your-machine-name"
}
}
}
}

3. Alternative: Use Local Configuration:
If you have bruvtools.yml and .env files in your project:

   {
"mcpServers": {
"bruvtools": {
"command": "bruvtools",
"args": ["mcp"],
"cwd": "${workspaceFolder}"
}
}
}

bruvtools deploy my-app

🚨 Large Environment Variable Detection & Auto-Splitting ⚠️ EXPERIMENTAL

bruvtools can detect when environment variables exceed platform limits and offers smart solutions (currently experimental):

bruvtools init

πŸ”„ Manual Token Reconstruction βœ… WORKING

You can manually implement split environment variables using this pattern:

// Universal function (manually add to your project)
function getEnvVar(varName) {
  // First try to get the variable directly
  if (process.env[varName]) {
    return process.env[varName];
  }
  
  // If not found, try to reconstruct from split parts
  let reconstructed = '';
  let partIndex = 1;
  
  while (true) {
    const partName = ${varName}_${partIndex};
    const part = process.env[partName];
    
    if (part) {
      reconstructed += part;
      partIndex++;
    } else {
      break;
    }
  }
  
  return reconstructed || undefined;
}

// Use in your app
const JWT_TOKEN = getEnvVar('JWT_TOKEN'); // Works with both single and split tokens!

bruvtools uses a clean separation between configuration and secrets:

default_provider: caprover
providers:
  caprover: 
    machine: your-caprover-machine-name
    domain: your-domain.com
projects:
  my-app:
    provider: caprover
    port: 80

CAPROVER_PASSWORD=your-caprover-password

Set up a wildcard A record in your DNS:
- Type: A record
- Host:
.captain (or .apps, .dev, etc.)
- Points to: Your server's IP address
- TTL: 300 (or default)

bruvtools init

bruvtools services # Show all deployed apps with URLs
bruvtools apps # Same as services (alias)
bruvtools deployed # Same as services (alias)
bruvtools dashboard # Same as services (alias)

bruvtools deploy <app-name> # Deploy with smart auto-creation
bruvtools create <app-name> # Create app manually (optional)
bruvtools status <app-name> # Check app status
bruvtools logs <app-name> # View app logs
bruvtools scale <app> <count> # Scale app replicas
bruvtools test <app-name> # Test app connectivity


bruvtools deploy my-app


bruvtools deploy my-app-dev     # Development
bruvtools deploy my-app-staging # Staging  
bruvtools deploy my-app-prod    # Production

ls examples/abecmed-api-legacy/keys/abecmed-368dfd6bae7c.json

cd bruvtools/examples/abecmed-api-legacy
bruvtools deploy abecmed-api-legacy

The Problem: CapRover and many cloud platforms have strict limits on environment variable sizes:
- CapRover: ~1000 character limit per environment variable
- Heroku: 32KB total for all environment variables
- AWS Lambda: 4KB total for all environment variables
- Docker: No hard limit, but performance degrades with very large values

Common Culprits:
- πŸ”‘ JWT Tokens: Often 1000+ characters (especially with extensive claims)
- πŸ” Private Keys: RSA/ECDSA keys can be 1600+ characters
- πŸ“„ JSON Configs: Large configuration objects
- 🌐 Base64 Encoded Data: Images, certificates, or binary data

1. Manual Splitting βœ… WORKING (recommended approach)


npm install -g bruvtools caprover

bruvtools --version # Should show: 0.2.16
caprover --version # Should show: 2.x.x

bruvtools init
bruvtools deploy my-app

---

Requirements: Node.js 16+ β€’ License: MIT β€’ Version: 0.2.16

Feature

Description

npm version
npm downloads
npm bundle size
Node.js version
License: MIT

> Your Private App Platform - Deploy microservices anywhere, any language, one CLI

Deploy Node.js, Go, Python, Java, PHP, Ruby, or any containerizable application to CapRover, AWS, GCP, or Kubernetes with the same simple commands. Zero vendor lock-in.

bruvtools transforms any cloud server into your private app platform - like having your own Heroku, Vercel, or Railway. Combined with CapRover, you get:

| Feature | Description |
|---------|-------------|
| βœ… Push to deploy | bruvtools deploy my-app and you're live |
| βœ… Auto SSL certificates | HTTPS enabled automatically |
| βœ… Any language | Node.js, Python, Go, Java, PHP, Ruby, Docker |
| βœ… Zero downtime deployments | Rolling updates built-in |
| βœ… Auto scaling | Scale apps up/down as needed |
| βœ… Private & secure | Your own server, your own rules |
| βœ… Cost effective | $5/month vs $25+ on other platforms |

npm install -g bruvtools
bruvtools --version  # Should show: 0.2.16
default_provider: caprover
providers:
  caprover: 
    machine: your-caprover-machine-name
    domain: your-domain.com
projects:
  my-app:
    provider: caprover
    port: 80

npm version
npm downloads
npm bundle size
Node.js version
License: MIT

> Your Private App Platform - Deploy microservices anywhere, any language, one CLI

Deploy Node.js, Go, Python, Java, PHP, Ruby, or any containerizable application to CapRover, AWS, GCP, or Kubernetes with the same simple commands. Zero vendor lock-in.

🎯 What is bruvtools?

bruvtools transforms any cloud server into your private app platform - like having your own Heroku, Vercel, or Railway. Combined with CapRover, you get:

| Feature | Description |
|---------|-------------|
| βœ… Push to deploy | bruvtools deploy my-app and you're live |
| βœ… Auto SSL certificates | HTTPS enabled automatically |
| βœ… Any language | Node.js, Python, Go, Java, PHP, Ruby, Docker |
| βœ… Zero downtime deployments | Rolling updates built-in |
| βœ… Auto scaling | Scale apps up/down as needed |
| βœ… Private & secure | Your own server, your own rules |
| βœ… Cost effective | $5/month vs $25+ on other platforms |

πŸš€ Quick Start: Your Private Platform in 5 Minutes

Step 1: Create Your CapRover Server (2 minutes)

The easiest way to get started is with DigitalOcean's one-click CapRover deployment:

Deploy to DigitalOcean

What this gives you:
- βœ… $5/month server with CapRover pre-installed
- βœ… $100 free credit for new DigitalOcean users (2 months free!)
- βœ… Docker & firewall configured automatically
- βœ… Ready to deploy in minutes

Alternative setup: Follow the CapRover Getting Started Guide for manual installation on any cloud provider.

Step 2: Install bruvtools (30 seconds)

npm install -g bruvtools
bruvtools --version  # Should show: 0.2.16

Step 3: Configure & Deploy (2 minutes)

```bash

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.