Back to Reactive Resume

Quickstart

docs/getting-started/quickstart.mdx

5.1.010.4 KB
Original Source

Options

Reactive Resume offers flexibility in how you want to use it. Choose the option that best fits your needs:

<CardGroup cols={2}> <Card title="Use the Cloud Version" icon="cloud" href="#use-the-cloud-version"> The fastest way to get started. **Recommended for most users.** </Card> <Card title="Self-Host with Docker" icon="docker" href="#self-host-with-docker"> Deploy your own instance with complete control. **Requires some technical knowledge.** </Card> </CardGroup>

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.

<Steps> <Step title="Create an Account"> Visit [rxresu.me](https://rxresu.me) and sign up for free using your email, or sign in with your GitHub or Google account. </Step>
<Step title="Create Your First Resume">
	Click the **Create Resume** button on your dashboard. Give your resume a name and select a template to get started.
</Step>

<Step title="Fill in Your Details">
	Use our intuitive builder to add your: - Personal information - Work experience - Education - Skills - Projects -
	And more...
</Step>

<Step title="Export & Share">
	When you're ready, export your resume as a PDF or share it via a unique public link.
</Step>
</Steps>

<Tip>Your resume updates in real-time as you type. The preview panel shows exactly how your final PDF will look.</Tip>


Self-Host with Docker

For users who prefer complete control over their data, you can deploy Reactive Resume on your own infrastructure using Docker.

<Info> **From v5.1.0 onwards** — PDF generation now runs entirely client-side via `@react-pdf/renderer`. Self-hosted deployments no longer require Browserless, Chromium, or any external print service as a dependency. The `PRINTER_*` and `BROWSERLESS_*` environment variables are no longer read and can be removed from your `.env`. </Info>

Prerequisites

Before you begin, ensure you have the following installed:

<Info> There is <strong>no difference in features</strong> 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! </Info>

Quick Deployment

<Steps> <Step title="Clone the Repository"> ```bash git clone https://github.com/amruthpillai/reactive-resume.git cd Reactive-Resume ``` </Step>
<Step title="Configure Environment Variables">
	Create a `.env` file in the root directory with the following variables:
bash
# Application
APP_URL=http://localhost:3000

# Database
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres

# Authentication (generate a secure secret)
AUTH_SECRET=your-secure-secret-key-here

# Storage (S3-compatible via SeaweedFS)
S3_ACCESS_KEY_ID=seaweedfs
S3_SECRET_ACCESS_KEY=seaweedfs
S3_ENDPOINT=http://seaweedfs:8333
S3_BUCKET=reactive-resume
S3_FORCE_PATH_STYLE=true
	<Warning>
		For production deployments, always use strong, unique values for `AUTH_SECRET` and database credentials.
	</Warning>
</Step>

<Step title="Start the Services">
	```bash
	docker compose up -d
	```

	This starts:
	- **PostgreSQL** — Database for storing user data and resumes
	- **SeaweedFS** — S3-compatible storage for file uploads
	- **Reactive Resume** — The main application
</Step>

<Step title="Access Your Instance">
	Once all services are running, access your Reactive Resume instance at:

	```text
	http://localhost:3000
	```
</Step>
</Steps>

Docker Compose Services

Here's what each service in the stack does:

ServicePortDescription
postgres5432PostgreSQL database for storing all application data
seaweedfs8333S3-compatible object storage for file uploads
reactive_resume3000The main Reactive Resume application

Health Checks

All services include built-in health checks. You can verify everything is running correctly:

bash
docker compose ps

You should see all services with a healthy status.


Environment Variables Reference

Here's a complete list of environment variables you can configure:

Required Variables

VariableDescriptionExample
DATABASE_URLPostgreSQL connection stringpostgresql://user:pass@host:5432/db
AUTH_SECRETSecret key for authenticationGenerate with openssl rand -hex 32
APP_URLPublic URL of your Applicationhttps://rxresu.me

Optional Variables

VariableDescriptionDefault
GOOGLE_CLIENT_IDGoogle OAuth Client ID
GOOGLE_CLIENT_SECRETGoogle OAuth Client Secret
GITHUB_CLIENT_IDGitHub OAuth Client ID
GITHUB_CLIENT_SECRETGitHub OAuth Client Secret
LINKEDIN_CLIENT_IDLinkedIn OAuth Client ID
LINKEDIN_CLIENT_SECRETLinkedIn OAuth Client Secret
OAUTH_PROVIDER_NAMECustom OAuth Provider Name
OAUTH_CLIENT_IDCustom OAuth Client ID
OAUTH_CLIENT_SECRETCustom OAuth Client Secret
OAUTH_DISCOVERY_URLOIDC Discovery URL (use this OR manual URLs below)
OAUTH_AUTHORIZATION_URLOAuth Authorization URL (manual config)
OAUTH_TOKEN_URLOAuth Token URL (manual config)
OAUTH_USER_INFO_URLOAuth User Info URL (manual config)
OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTSTrusted HTTPS hosts/origins for dynamic OAuth redirects
OAUTH_SCOPESOAuth Scopes (space-separated)openid profile email
BETTER_AUTH_API_KEYBetter Auth dashboard API key
BETTER_AUTH_URLBetter Auth base URL override (advanced)APP_URL
BETTER_AUTH_SECRETBetter Auth secret override (advanced)AUTH_SECRET
AI_ALLOWED_BASE_URLSAllowlist for custom AI provider base URLs
SMTP_HOSTSMTP Server Host (for email features)
SMTP_PORTSMTP Server Port587
SMTP_USERSMTP Username
SMTP_PASSSMTP Password
SMTP_FROMDefault FROM address for emails
SMTP_SECUREUse secure SMTP connection (true or false)false
S3_ACCESS_KEY_IDS3 Access Key
S3_SECRET_ACCESS_KEYS3 Secret Key
S3_REGIONS3 Regionus-east-1
S3_ENDPOINTS3-compatible Endpoint URL
S3_BUCKETS3 Bucket Name
S3_FORCE_PATH_STYLEUse path-style URLs for S3 (set true for MinIO/SeaweedFS)false
FLAG_DISABLE_SIGNUPSDisables new user signupsfalse
FLAG_DISABLE_EMAIL_AUTHDisables email/password login (SSO only)false
FLAG_DISABLE_IMAGE_PROCESSINGDisables image processingfalse

Note: Some variables are only required for using related features (OAuth, SMTP, S3, etc.) and can be left unset if unused.

Health check behavior: /api/health reports status for database and storage. A failure in either dependency returns HTTP 503.


Next Steps

<CardGroup cols={2}> <Card title="Development Setup" icon="code" href="/contributing/development"> Set up a development environment to contribute or customize Reactive Resume. </Card> <Card title="Project Architecture" icon="folder-open" href="/contributing/architecture"> Learn about the project structure and architecture. </Card> </CardGroup> <Note> **Having trouble?** Check our [GitHub Issues](https://github.com/amruthpillai/reactive-resume/issues) or reach out via [email](mailto:[email protected]). </Note>