Overview
This guide covers everything you need to install before running Gumroad locally. Follow the instructions for your operating system carefully.System Requirements
Supported Platforms
- macOS 10.11 or later
- Linux Ubuntu/Debian distributions
- Windows via WSL (Windows Subsystem for Linux)
Minimum Specifications
- 8GB RAM (16GB recommended)
- 10GB free disk space
- Modern multi-core processor
Core Dependencies
Ruby
Gumroad uses Ruby 3.4.3 as specified in the.ruby-version file.
- macOS
- Linux
Using rbenv (recommended):Or using rvm:
See the official Ruby installation guide for alternative installation methods.
Node.js
Gumroad requires Node.js 20.17.0 as specified in the.node-version file.
- macOS
- Linux
Using nvm (recommended):Or using Homebrew:
Docker
Docker is used to run MySQL, Redis, Elasticsearch, and MongoDB services.- macOS
- Linux
Download and install Docker Desktop:
- Visit Docker Desktop for Mac
- Download the installer for your chip (Intel or Apple Silicon)
- Open the
.dmgfile and drag Docker to Applications - Launch Docker Desktop and complete setup
Database Dependencies
MySQL 8.0
A local MySQL installation is required for themysql2 Ruby gem, but you won’t run it as a service.
- macOS
- Linux
Percona Toolkit
Required for database maintenance operations.- macOS
- Linux
OpenSSL Configuration (macOS)
Configure Bundler to use Homebrew’s OpenSSL for the mysql2 gem:Media Processing Libraries
ImageMagick
Used for image preview editing and manipulation.- macOS
- Linux
libvips
Used with ActiveStorage for modern image format processing.- macOS
- Linux
FFmpeg
Required for video file metadata extraction.- macOS
- Linux
PDF Processing Tools
PDFtk
Used to stamp PDF files with the Gumroad logo and buyer emails.- macOS
- Linux
- Download from PDFtk Server
- Open the
.pkgfile to install
wkhtmltopdf
Required for generating PDF invoices from HTML.- macOS
- Linux
- Download version 0.12.6 from wkhtmltopdf downloads
- Open the
.pkgfile and follow the installer
Additional Linux Dependencies
Linux users may need these additional packages:Ruby Gems Setup
Install Bundler
Install Project Dependencies
Once you’ve cloned the Gumroad repository:Key Ruby Gems
Key Ruby Gems
- rails (7.1.6) - Web framework
- sidekiq (7.2) - Background job processing
- stripe (12.0) - Payment processing
- devise (4.8) - Authentication
- elasticsearch (7.11.2) - Search functionality
- puma (6.4.2) - Application server
- mysql2 - MySQL database adapter
- redis (5.0) - Cache and job queue
- rspec-rails (6.0) - Testing framework
Install dotenv
Required for some console commands:Node.js Packages Setup
Enable Corepack
Ensure the correct npm version (10.8.2) is used:Install Project Dependencies
Key Node.js Packages
Key Node.js Packages
- react (18.1.0) & react-dom - UI library
- typescript (5.5.0) - Type safety
- @inertiajs/react (2.3.13) - Modern monolith architecture
- tailwindcss (4.1.14) - CSS framework
- @stripe/react-stripe-js - Stripe integration
- webpack (5.75.0) - Module bundler
- eslint (9.6.0) - JavaScript linting
- @tiptap/react - Rich text editor
- recharts (2.15.2) - Charts and graphs
Verify Your Installation
Run this checklist to ensure everything is installed correctly:Environment Configuration
Optional: Set Up Custom Credentials
The app can boot without custom credentials, but you may want to configure:.env to add credentials for:
AWS S3
File storage and CDN
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
Stripe
Payment processing
- STRIPE_PUBLISHABLE_KEY
- STRIPE_SECRET_KEY
Resend
Email delivery
- RESEND_API_KEY
Other Services
- BUGSNAG_API_KEY
- GOOGLE_CLIENT_ID
- FACEBOOK_APP_ID
These credentials are optional for local development. The app will work with mock services.
Development Tools (Optional)
Git Hooks
Enable pre-commit hooks for linting:Editor Setup
For the best development experience:- VS Code: Install Ruby, ESLint, and Tailwind CSS extensions
- RubyMine: Built-in support for Rails and Ruby
- Any editor: Configure to use local ESLint and Rubocop
Next Steps
With all dependencies installed, you’re ready to:Quickstart Guide
Follow the step-by-step guide to get the app running
Development Guide
Learn about development workflows and best practices