Run this in PowerShell as Administrator to avoid long file path issues:
git config --system core.longpaths true-
Open PowerShell as Administrator and run:
wsl --install
-
Restart if prompted.
-
Choose a non-root username and password in the Ubuntu setup.
-
Always launch Ubuntu for development work (not PowerShell or CMD).
Install the version specified in .ruby-version (e.g., 3.4.3) using rbenv:
# Base toolchain + rbenv
sudo apt update
sudo apt install -y \
rbenv ruby-build git \
build-essential autoconf bison libssl-dev zlib1g-dev \
libreadline-dev libyaml-dev libffi-dev libgmp-dev
# One-time shell initialisation (also add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
# Install Ruby
rbenv install 3.4.3
rbenv global 3.4.3Install the version specified in .node-version (e.g., 20.17.0) using nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20.17.0
nvm use 20.17.0- Download Docker Desktop: https://www.docker.com/products/docker-desktop
- Open Docker → ⚙️ → Resources > WSL Integration
- Enable Ubuntu.
- Ensure Docker Desktop shows "Engine Running".
You don’t need to run MySQL locally — only its client libraries.
sudo apt install libmysqlclient-dev mysql-clientFor Percona Toolkit:
sudo apt install percona-toolkitInstall the required dependencies:
sudo apt update && sudo apt install -y \
build-essential libxslt-dev libxml2-dev \
imagemagick libvips-dev ffmpeg pdftkgem install bundler
bundle install
gem install dotenvcorepack enable
npm installCopy the example and fill in secrets (if needed):
cp .env.example .envLOCAL_DETACHED=true make localIn a new terminal:
sudo apt install libxslt-dev libxml2-dev
bin/rails db:prepare
bin/devVisit: https://gumroad.dev
Use:
- Email:
seller@gumroad.com - Password:
password - 2FA:
000000
See Users & authentication for other roles.
Run in Rails console:
DevTools.delete_all_indices_and_reindex_allbin/rails cbin/rake <task_name>We use ESLint (JS) and RuboCop (Ruby). You can enable pre-commit hooks:
git config --local core.hooksPath .githooks-
On
Your connection is not private, type:thisisunsafe -
To clear HSTS:
- Go to
chrome://net-internals/#hsts - Under Delete domain security policies, enter
gumroad.dev
- Go to
Add this entry to your /etc/hosts:
127.0.0.1 gumroad.devEdit the file:
sudo nano /etc/hosts- Use WSL Ubuntu only, never PowerShell or CMD.
- Use the versions from
.ruby-versionand.node-version. - If port
:8080is occupied, kill the process:
sudo lsof -i :8080
kill -9 <PID>- Ensure the following environment variable is set (for seller login):
HELPER_WIDGET_SECRET=<any random string>