Options
Reactive Resume offers flexibility in how you want to use it. Choose the option that best fits your needs:Use the Cloud Version
The fastest way to get started. Recommended for most users.
Self-Host with Docker
Deploy your own instance with complete control. Requires some technical knowledge.
Using the Cloud Version
The easiest way to use Reactive Resume is through our cloud version at rxresu.me. This service is completely free and will always remain free.Create an Account
Visit rxresu.me and sign up for free using your email, or sign in with your GitHub or Google account.
Create Your First Resume
Click the Create Resume button on your dashboard. Give your resume a name and select a template to get started.
Fill in Your Details
Use our intuitive builder to add your:
- Personal information
- Work experience
- Education
- Skills
- Projects
- And more…
Self-Host with Docker
For users who prefer complete control over their data, you can deploy Reactive Resume on your own infrastructure using Docker.Prerequisites
Before you begin, ensure you have the following installed:- Docker (v20.10 or higher)
- Docker Compose (v2.0 or higher)
There is no difference in features between the cloud-hosted version and the self-hosted option. Both provide the same privacy, customization, and functionality. Choose whichever deployment type suits your needs!
Quick Deployment
Configure Environment Variables
Create a
.env file in the root directory with the following variables:Start the Services
- PostgreSQL — Database for storing user data and resumes
- SeaweedFS — S3-compatible storage for file uploads
- Printer — PDF and screenshot generation service (browserless/chromium)
- Reactive Resume — The main application
Docker Compose Services
Here’s what each service in the stack does:| Service | Port | Description |
|---|---|---|
postgres | 5432 | PostgreSQL database for storing all application data |
seaweedfs | 8333 | S3-compatible object storage for file uploads |
printer | 4000 | Headless Chromium service for PDF and screenshot generation |
app | 3000 | The main Reactive Resume application |
Health Checks
All services include built-in health checks. You can verify everything is running correctly:healthy status.
Environment Variables Reference
Here’s a complete list of environment variables you can configure:Required Variables
| Variable | Description | Example |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | postgresql://user:pass@host:5432/db |
AUTH_SECRET | Secret key for authentication | Generate with openssl rand -base64 32 |
APP_URL | Public URL of your Application | https://rxresu.me |
PRINTER_ENDPOINT | URL of the printer service | http://printer:3000 |
Optional Variables
| Variable | Description | Default |
|---|---|---|
PRINTER_APP_URL | Public URL for the printer to access the Application | — |
GOOGLE_CLIENT_ID | Google OAuth Client ID | — |
GOOGLE_CLIENT_SECRET | Google OAuth Client Secret | — |
GITHUB_CLIENT_ID | GitHub OAuth Client ID | — |
GITHUB_CLIENT_SECRET | GitHub OAuth Client Secret | — |
OAUTH_PROVIDER_NAME | Custom OAuth Provider Name | — |
OAUTH_CLIENT_ID | Custom OAuth Client ID | — |
OAUTH_CLIENT_SECRET | Custom OAuth Client Secret | — |
OAUTH_DISCOVERY_URL | OIDC Discovery URL (use this OR manual URLs below) | — |
OAUTH_AUTHORIZATION_URL | OAuth Authorization URL (manual config) | — |
OAUTH_TOKEN_URL | OAuth Token URL (manual config) | — |
OAUTH_USER_INFO_URL | OAuth User Info URL (manual config) | — |
OAUTH_SCOPES | OAuth Scopes (space-separated) | openid profile email |
SMTP_HOST | SMTP Server Host (for email features) | — |
SMTP_PORT | SMTP Server Port | 587 |
SMTP_USER | SMTP Username | — |
SMTP_PASS | SMTP Password | — |
SMTP_FROM | Default FROM address for emails | — |
SMTP_SECURE | Use secure SMTP connection (true or false) | false |
S3_ACCESS_KEY_ID | S3 Access Key | — |
S3_SECRET_ACCESS_KEY | S3 Secret Key | — |
S3_REGION | S3 Region | us-east-1 |
S3_ENDPOINT | S3-compatible Endpoint URL | — |
S3_BUCKET | S3 Bucket Name | — |
S3_FORCE_PATH_STYLE | Use path-style URLs for S3 (set true for MinIO/SeaweedFS) | false |
FLAG_DEBUG_PRINTER | Used for debugging the printer route | false |
FLAG_DISABLE_SIGNUPS | Disables new user signups | false |
FLAG_DISABLE_EMAIL_AUTH | Disables email/password login (SSO only) | false |
Note: Some variables are only required for using related features (OAuth, SMTP, S3, etc.) and can be left unset if unused.
Hybrid Setup Note: The
PRINTER_APP_URL variable is required when running Reactive Resume outside of Docker while the printer service is running inside Docker. In this scenario, the printer needs to reach your local app to render resumes for PDF generation. Since Docker containers cannot access localhost on your host machine directly, you must set PRINTER_APP_URL to http://host.docker.internal:3000. This special hostname allows Docker containers to communicate with services running on your host machine.Alternative Printer Options: If you don’t want to use browserless, you can use any headless Chrome/Chromium instance with its remote debugging port open. For example, run
chromium --remote-debugging-port=9222 and point PRINTER_ENDPOINT to that instance.Next Steps
Development Setup
Set up a development environment to contribute or customize Reactive Resume.
Project Architecture
Learn about the project structure and architecture.
Having trouble? Check our GitHub Issues or reach out via email.