Skip to content

Quick Start

Get ReadyKit up and running in 5 minutes.

Prerequisites

  • Python 3.11+
  • Redis (for sessions and Celery)
  • Git
  • uv (fast Python package manager)

Local Setup

1. Install uv

bash
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or with pip
pip install uv

2. Clone and Setup

bash
git clone git@github.com:level09/readykit.git
cd readykit
./setup.sh

The setup script will:

  • Create a Python virtual environment
  • Install all dependencies via uv
  • Generate a .env file with secure random keys

3. Initialize the Application

bash
uv run flask create-db    # Create database tables
uv run flask install      # Create admin user (interactive)
uv run flask run          # Start development server

Visit http://localhost:5000 - you're ready to go!

TIP

The first user created with flask install becomes a superadmin with full platform access.

What Happens on First Login?

  1. User registers or logs in via OAuth
  2. A workspace is automatically created for them
  3. They're redirected to their workspace dashboard
  4. Solo users never see "workspace" UI - it's invisible until they invite team members

Docker Setup (Production)

One-command production stack:

bash
docker compose up --build

This starts:

  • Flask app via uWSGI
  • PostgreSQL database
  • Redis for sessions and Celery
  • Nginx reverse proxy
  • Celery worker for background tasks

Environment Configuration

Key variables in .env (auto-generated by setup.sh):

bash
# Security (auto-generated)
SECRET_KEY=your_secure_key
SECURITY_PASSWORD_SALT=your_salt
SECURITY_TOTP_SECRETS=your_totp_secrets

# Database
SQLALCHEMY_DATABASE_URI=sqlite:///enferno.sqlite3  # Dev
# SQLALCHEMY_DATABASE_URI=postgresql://user:pass@localhost/db  # Production

# Redis
REDIS_SESSION=redis://localhost:6379/1
CELERY_BROKER_URL=redis://localhost:6379/2

# OAuth (optional but recommended)
GOOGLE_AUTH_ENABLED=true
GOOGLE_OAUTH_CLIENT_ID=your_client_id
GOOGLE_OAUTH_CLIENT_SECRET=your_secret

GITHUB_AUTH_ENABLED=true
GITHUB_OAUTH_CLIENT_ID=your_client_id
GITHUB_OAUTH_CLIENT_SECRET=your_secret

# Stripe (required for billing)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_PRO_PRICE_ID=price_...
STRIPE_WEBHOOK_SECRET=whsec_...

Common Commands

bash
# Development
uv run flask run              # Start dev server
uv run flask create-db        # Create/reset database
uv run flask install          # Create admin user

# User management
uv run flask create -e user@example.com -p password123
uv run flask reset -e user@example.com -p newpassword

# Code quality
uv run ruff check --fix .     # Lint and auto-fix
uv run ruff format .          # Format code

# Background tasks
uv run celery -A enferno.tasks worker --loglevel=info

Next Steps

GuideDescription
WorkspacesUnderstand multi-tenant architecture
BillingSet up Stripe integration
TeamsConfigure team management
AuthenticationConfigure OAuth and 2FA

Built with ReadyKit