Back to home

BizPilot Documentation

v1.0

From zero to your first sale: local setup, VPS deployment, custom domain with free SSL, AI keys, payment gateways and troubleshooting — in four languages.

Select a language — every guide is fully translated, not machine-dumped.
EN · AR · FR · ES

Welcome to the BizPilot handbook — everything you need to run your business locally, ship it to a VPS, and get paid. Estimated setup time: 10 minutes.

Quick Start — Local Development

BizPilot is a single Next.js app with an embedded SQLite database.

Requirements: Node.js 18+ (or Bun 1.1+) and Git.

bash
git clone <your-repo-url> bizpilot
cd bizpilot
bun install            # or: npm install
cp .env.example .env

Open .env and set the essentials:

env
DATABASE_URL="file:/app/data/bizpilot.db"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
ADMIN_EMAIL="admin@example.com"
ADMIN_PASSWORD="change-me-now"

Create the schema, seed the admin account, then start the dev server:

bash
bunx prisma db push    # or: npx prisma db push
bun run db:seed        # or: npm run db:seed
bun run dev            # or: npm run dev

Sign in at /login with the ADMIN_EMAIL and ADMIN_PASSWORD values you just set.

Production Deployment (Docker)

On a fresh VPS, the bundled installer does everything: it installs Docker if missing, builds the image and starts the app with a restart policy.

bash
bash install.sh

Prefer manual control? Run:

bash
docker compose up -d --build
  • Your SQLite database lives in a persistent volume mounted at /app/data. Back up that folder and you back up your entire business — products, orders, keys and settings.
  • Upgrade with git pull && docker compose up -d --build; your data survives rebuilds.
  • Follow the logs with docker compose logs -f app.

Choosing a VPS

BizPilot is lightweight: a $4–10/month server comfortably serves thousands of visits per day.

Recommended specs: 1–2 vCPU · 2 GB RAM · 20 GB SSD. Add a 2 GB swap file on 1 GB plans.

Well-tested providers:

  • Hetzner (CX22) — best price/performance, EU and US regions
  • Contabo — very cheap, generous resources
  • DigitalOcean — predictable, excellent documentation
  • Vultr — many regions, hourly billing
  • OVH — EU-friendly, DDoS protection

Pick Ubuntu 22.04 or 24.04 LTS, then connect:

bash
ssh root@YOUR_SERVER_IP
# optional but recommended on small plans
fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile

Custom Domain & Free SSL

In your DNS panel, create an A record — @ (or store) pointing to your VPS IP, TTL 3600. Then pick a reverse proxy:

Option A — Caddy (automatic HTTPS, zero config):

bash
# /etc/caddy/Caddyfile
yourdomain.com {
    reverse_proxy localhost:3000
}

Caddy issues and renews your Let's Encrypt certificate automatically.

Option B — Nginx + Certbot:

nginx
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
bash
sudo certbot --nginx -d yourdomain.com

Finally, set your public URL in .env and restart: NEXT_PUBLIC_APP_URL=https://yourdomain.com.

AI Keys — Start Free

BizPilot works with zero AI keys: a built-in deterministic engine generates brand, catalog and copy for free. When you want premium output, add keys in Settings → AI Keys.

Groq — free and extremely fast:

  1. Create an account at console.groq.com/keys.
  2. Click Create API Key and copy it.
  3. Paste it under Settings → AI Keys → Groq.

Google Gemini — generous free tier:

  1. Visit aistudio.google.com/app/apikey.
  2. Create an API key — one click, no credit card.
  3. Paste it under Settings → AI Keys → Gemini.

How rotation protects you:

  • Add multiple keys per provider; they are tried in priority order.
  • On 429 (rate limit) the key enters cooldown and the next one takes over instantly.
  • Repeated 401/500 errors mark a key as dead — it is skipped automatically.
  • Result: generation is never interrupted mid-task.

Worthwhile paid upgrades:

  • OpenAI — gpt-4o-mini for cheap, sharp marketing copy; gpt-image-1 or DALL·E 3 for logos and banners.
  • Anthropic Claude — long-form product stories and FAQs.
  • OpenRouter — one key, 300+ models, painless A/B testing.

Prompt recipes that work:

  • Logos: minimal vector logo, flat, 2 colors, #10B981 and #F59E0B, white background, centered
  • Banners: wide banner 16:9, energetic gradient, modern e-commerce hero, no text
  • Social posts: Hook → Value → CTA — open with a pain point, give one concrete tip, close with a soft link.

Payments Setup

All three gateways confirm orders through signed webhooks — configure each endpoint exactly as shown.

Stripe (cards, Apple Pay, Google Pay):

  1. Grab your keys at dashboard.stripe.com/apikeys.
  2. Add a webhook endpoint: https://yourdomain.com/api/webhooks/stripe.
  3. Subscribe to checkout.session.completed and paste the signing secret in Settings → Payments.

Coinbase Commerce (BTC, ETH, USDT, USDC):

  1. Create an API key at commerce.coinbase.com → Settings → API Keys.
  2. Webhook URL: https://yourdomain.com/api/webhooks/coinbase.
  3. Payments confirm on-chain in seconds.

Binance Pay (official signed Merchant API):

  1. Enroll in the Binance Merchant Portal and create API and secret keys.
  2. Webhook URL: https://yourdomain.com/api/webhooks/binance.

Test Mode simulator: fire verified test checkout events end-to-end from Admin → Payments — no real money involved.

Digital vs Physical Products

  • Digital: upload the file or paste license/serial keys. Buyers receive a secure, expiring download link the moment payment clears — fully automated.
  • Physical: collect shipping addresses at checkout, track per-product inventory, and manage fulfillment with customer-facing tracking numbers.

Troubleshooting

  • Port 3000 busy → stop the other service or run PORT=3001 docker compose up -d.
  • "database is locked" → keep the SQLite file inside the /app/data volume and run a single app instance.
  • Webhook 401/400 → wrong signing secret or mismatched URL; re-copy it from the provider dashboard.
  • AI says "No keys configured" → Settings → AI Keys → add a free Groq or Gemini key (one minute, zero cost).