Skip to main content

Overview

This guide covers everything you need to install before running Gumroad locally. Follow the instructions for your operating system carefully.
Windows users should use WSL (Windows Subsystem for Linux) to run Gumroad. Once you have WSL set up with Ubuntu, follow the Linux installation instructions below.

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.
Using rbenv (recommended):
Or using rvm:
Verify installation:
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.
Using nvm (recommended):
Or using Homebrew:
Verify installation:

Docker

Docker is used to run MySQL, Redis, Elasticsearch, and MongoDB services.
Download and install Docker Desktop:
  1. Visit Docker Desktop for Mac
  2. Download the installer for your chip (Intel or Apple Silicon)
  3. Open the .dmg file and drag Docker to Applications
  4. Launch Docker Desktop and complete setup
Verify installation:

Database Dependencies

MySQL 8.0

A local MySQL installation is required for the mysql2 Ruby gem, but you won’t run it as a service.
Do not start MySQL as a service. The app connects to MySQL running in Docker.

Percona Toolkit

Required for database maintenance operations.

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.
Verify installation:

libvips

Used with ActiveStorage for modern image format processing.
Verify installation:

FFmpeg

Required for video file metadata extraction.
Verify installation:

PDF Processing Tools

PDFtk

Used to stamp PDF files with the Gumroad logo and buyer emails.
  1. Download from PDFtk Server
  2. Open the .pkg file to install
PDFtk may be blocked by macOS Gatekeeper. If installation fails:
  1. Go to System Settings > Privacy & Security
  2. Click “Open Anyway” next to the pdftk message
  3. Try installation again
Verify installation:

wkhtmltopdf

Required for generating PDF invoices from HTML.
  1. Download version 0.12.6 from wkhtmltopdf downloads
  2. Open the .pkg file and follow the installer
Similar to PDFtk, wkhtmltopdf may be blocked by Gatekeeper. Follow the same process to allow it in System Settings > Privacy & Security.
Verify installation:

Additional Linux Dependencies

Linux users may need these additional packages:

Ruby Gems Setup

Install Bundler

Verify installation:

Install Project Dependencies

Once you’ve cloned the Gumroad repository:
This installs all gems from the Gemfile, including:
  • 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

This installs all packages from package.json, including:
  • 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:
1

Check Ruby Version

2

Check Node.js Version

3

Check Docker

4

Check Image Processing

5

Check PDF Tools

6

Check Ruby Gems

7

Check Node Packages

Create a checklist script to verify your installation automatically. Save time on future setups!

Environment Configuration

Optional: Set Up Custom Credentials

The app can boot without custom credentials, but you may want to configure:
Edit .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:
This will automatically run ESLint and Rubocop on commits.

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

Troubleshooting Installation Issues

Ruby Installation Fails

MySQL Gem Won’t Install

Docker Permission Denied (Linux)

NPM Install Fails

If you continue to experience issues, check the GitHub issues for similar problems and solutions.