Documentation Index
Fetch the complete documentation index at: https://docs.wanderersguide.app/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites:
- Node.js version 19 or higher
- Docker
- Supabase CLI for your OS (follow the instructions here)
- Postgres, need
psql(the client command line)
- Supabase CLI (below). Best when you’re actively editing Edge Functions, since
supabase functions servewatches your TypeScript and reloads on save. - Docker Compose (jump to Self-hosting with Docker). Best for trying the full stack end-to-end without installing Node, Postgres, or the Supabase CLI on your host. Also what the Cypress E2E tests target.
Initialize Supabase locally
Make sure Docker is running and then run the following command:This will print a few details about the Supabase local setup that will be required later.
Populate local database
Go into the Replace
data/ folder and run:<DB_URL> with the value obtained in step 2.- It should look something like:
postgresql://postgres:postgres@127.0.0.1:54322/postgres
Set environment variables
In the
frontend/ directory, copy .env.local.template to .env.local and replace the placeholder variables in .env.local:- Replace
<API_URL>and<ANON_KEY>with the values obtained in step 2. - [Optional] If you’d like to roll virtual dice,
<DDDICE_API_KEY>must be replaced with the API key to dddice- The API key can be generated by creating a dddice account, visiting “My Account” -> “Developers” and clicking on “Create API Key”
Complete 🎉
Wanderer’s Guide should now be running locally! You can access it at: http://localhost:5173.To be able to log in, you need to have a user in the local database.
Creating a user
Visit Supabase studio
Go to the local supabase studio URL (default http://127.0.0.1:54323)
Create internal user record
On the authentication page, create a new user with email and password.
Copy the user UID generated.
Create public user record
Go to the Table Editor page and select the
public_user table.Create a new Public User record by clicking Insert -> Insert row.- Make sure to fill in the
user_idfield with the user UID generated in step 2.
Self-hosting with Docker
If you’d rather not install Node, Postgres, or the Supabase CLI on your host, the repo ships adocker-compose.yml that bundles the frontend with a self-hosted Supabase stack: Postgres, auth, REST, storage, edge functions, and the Kong gateway. Only Docker is required.
Configure environment
.env to set JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY, and POSTGRES_PASSWORD.For local testing, the demo values from the Supabase docker example work as a matched set.Open the app
Visit http://localhost:3000 and sign up with email + password.The DB ships with a trigger (installed by
create-db-docker.sh) that auto-creates the matching public_user row, so the manual Studio insert from the Creating a user section is not needed for the docker stack.Common docker operations
Running end-to-end tests
Cypress runs against the Docker stack above. Withnpm run docker:start already running:
cy:e2e bakes in CYPRESS_BASE_URL=http://localhost:3000 and the default test creds (test@wanderersguide.app / test1234). To scope to a single spec:
e2e workflow. See .github/workflows/e2e.yml.
Running the API tests
Beyond the UI Cypress suite, the Edge Functions have their own Deno-based test harness:connect() wrapper or one of those patterns shows up immediately.
Troubleshooting
Error: Cannot connect to the Docker daemon
Error: Cannot connect to the Docker daemon
This is a common issue when Docker is not running or not properly installed. Make sure Docker is installed and running on your machine.In the case of a Mac or Windows machine, you can try restarting Docker Desktop.
Error: psql command not found
Error: psql command not found
This error indicates that the
psql command-line tool for PostgreSQL is not installed or not in your system’s PATH. You can install it by following the instructions on the PostgreSQL website.If you have PostgreSQL installed but still see this error, ensure that the directory containing psql is included in your system’s PATH environment variable.Curious about how to contribute? Check out our Discord server and GitHub issues!

