13

Hey r/selfhosted, get ready to craft your story like never before!

I’m thrilled to announce that Reactive Resume has just launched its latest version, and it's a game-changer in the resume-building space (at least, I’d like to think so).

Here’s a glimpse of some of the new features:

  • A sleek, polished user interface that makes navigation a breeze.
  • Faster PDF generation to get your resume out there quicker.
  • Integration with OpenAI for smarter assistance.
  • Brand new, highly customisable templates to fit your unique style.
  • Comprehensive documentation with user-friendly guides.
  • Enhanced security with two-factor authentication.
  • Available in multiple languages, contributed by the community.
  • Quality of life features such as locking resumes, adding personal notes to resumes, tracking views and downloads on your public resume etc.

The best part? It’s 100% free, forever! No ads, no user tracking, just pure resume-building bliss. Plus, for the tech-savvy, it’s also open-source on GitHub and self-hostable through Docker, something special just for this community.

Ready to give it a spin?
You can visit the website on https://rxresu.me, sure. But you're on r/selfhosted, so you're probably more interested in the "how to host it myself" part of the launch. The link to the repository is right here: https://github.com/AmruthPillai/Reactive-Resume/

Self-hosting Reactive Resume is super simple, compared to the nightmare it was in earlier versions having to ensure multiple services are communicating alright. You can check the GitHub repo (under tools/compose for many docker compose examples of how the project could be set up).

I'm excited to see how you make the most of it!

(page 2) 30 comments
sorted by: hot top controversial new old
[-] limeunderground@alien.top 1 points 11 months ago

Looking into the github issues there are some problems with pagination where if you have a resume over a certain size you are SOL with formatting issues where you are forced to do insanely labour intensive makework to reformat the resume due to these limitations.

see:

https://github.com/AmruthPillai/Reactive-Resume/issues/899

https://github.com/AmruthPillai/Reactive-Resume/issues/1297

https://github.com/AmruthPillai/Reactive-Resume/issues/1402

[-] esturniolo@alien.top 1 points 11 months ago

Is the PDF export fixed? I used some early versions where that feature didn’t work.

[-] OhMyForm@alien.top 1 points 11 months ago

Is there new containers? I really want to run this but it historically has been a struggle their main instance seems solid but I kind of want to host it myself

[-] RoFlame@alien.top 1 points 11 months ago

Just finished building my new resume last night, now I'm waking up and I see this 😂 will definitely give it a try though!

[-] Ruuddie@alien.top 1 points 11 months ago

Looks really great, thanks!

I can't find a way to reorder items within Work Experience, Educations, etc. So if I get some new certification, it seems I have to fill in everything again since I can only add new ones at the bottom and I want to put the latest one on top. Or am I doing something wrong?

Also, it would be great if you could add a date to the certifications. That way you can show how long you've been certified for the specific skill.

[-] Moehrenstein@alien.top 1 points 11 months ago

Is the github/google part at the end necessary or can it get commented out for testing? (Tried to spin up simple.yml with them commented out and had no luck.)

[-] ektorasdj@alien.top 1 points 11 months ago

Hello! Thank you for this great app. Just a quick question, how do so i disable new sign ups? (I have disabled github and google env variables but when trying to use the old variables PUBLIC_FLAG_DISABLE_SIGNUPS it doesn't work for email_auths).

[-] AmruthPillai@alien.top 1 points 11 months ago

There's a new env (described in the compose file also) called DISABLE_EMAIL_AUTH which would disable all email flows (login/register). If you need to allow email login but disable registration, that's not really a feature yet, but please raise an issue on GitHub so I can track it. Will implement it as soon as I can.

[-] ektorasdj@alien.top 1 points 11 months ago

Thank you for the quick response ! Yes thats what i want!

I will raise it on Github.

Have a nice day!

[-] ovizii@alien.top 1 points 11 months ago

I didn't have the time to spin it up locally so I took a look at your hosted version and noticed there's no custom CSS section. Is this missing in the self-hosted version too? If so, I'll stay with my still working v3.

Also, do you have any links for adapting/creating my own template? Some issues are difficult to fix with CSS only.

[-] AmruthPillai@alien.top 1 points 11 months ago

I've kept the Custom CSS section dormant for now because the templates themselves aren't too well adapted with custom classes/IDs etc to correctly work with custom CSS. I've kept it off for a later release until I can do it properly, but it'll definitely be a feature soon.

As for the issues you can't fix with CSS, I'm afraid the only way is to build the project locally and develop a template of your own, which isn't too difficult if you know TailwindCSS. I plan on writing a guide for this as well.

[-] feythfx@alien.top 1 points 11 months ago

Is there a way to get the old v1 onyx layout back?

[-] AmruthPillai@alien.top 1 points 11 months ago

Is there a big difference from the old layout to the new one? I didn't have a side by side comparison, but I tried to make the new templates a bit more flexible for custom CSS (hoping to introduce that feature soon).

Is there anything specific you'd like me to fix soon?

[-] flxstr@alien.top 1 points 11 months ago

/u/AmruthPillai - hoping you can help unblock me on one thing. Running ReactiveResume via Portainer using the following docker compose script. Everything works fine, except PDF generation - which doesn't seem to do "anything". Nothing ever downloads, no separate window opens. The solution is awesome btw - I'm excited to get this working - just need to figure out the PDF part.

​

version: "3.8"

# In this Docker Compose example, it assumes that you maintain a reverse proxy externally (or chose not to).

# The only two exposed ports here are from minio (:9000) and the app itself (:3000).

# If these ports are changed, ensure that the env vars passed to the app are also changed accordingly.

Docker Compose:

services:

# Storage (for image uploads)

minio:

image: minio/minio

restart: unless-stopped

command: server /data

ports:

- 9000:9000

volumes:

- $DOCKERDIR/appdata/resume/minio_data:/data

environment:

MINIO_ROOT_USER: minioadmin

MINIO_ROOT_PASSWORD: 7FgkUNXE3YZe3PrE7U

# Chrome Browser (for printing and previews)

chrome:

image: browserless/chrome:1.61.0-puppeteer-21.4.1

restart: unless-stopped

environment:

TOKEN: chrome_token

EXIT_ON_HEALTH_FAILURE: true

PRE_REQUEST_HEALTH_CHECK: true

# Redis (for cache & server session management)

redis:

image: redis:alpine

restart: unless-stopped

command: redis-server --requirepass password

app:

image: amruthpillai/reactive-resume:latest

restart: unless-stopped

ports:

- 3000:3000

depends_on:

- minio

- redis

- chrome

environment:

# -- Environment Variables --

PORT: 3000

NODE_ENV: production

# -- URLs --

PUBLIC_URL: $PUBLIC_URL

STORAGE_URL: $STORAGE_URL

# -- Printer (Chrome) --

CHROME_TOKEN: chrome_token

CHROME_URL: ws://chrome:3000

# -- Database (Postgres) --

DATABASE_URL: postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@192.168.4.3:32781/postgres?schema=public

# -- Auth --

ACCESS_TOKEN_SECRET: PcaDMKAu.x8@iCTaB-

REFRESH_TOKEN_SECRET: yjXiGQkKNcVgE*DUvt

# -- Emails --

MAIL_FROM: resume@myurl.com

SMTP_URL: smtp://mysmptname:atz_nqf!cyfg@outbound.mailhop.org:587

# -- Storage (Minio) --

STORAGE_ENDPOINT: minio

STORAGE_PORT: 9000

STORAGE_REGION: us-east-1 # Optional

STORAGE_BUCKET: default

STORAGE_ACCESS_KEY: minioadmin

STORAGE_SECRET_KEY: 7FgkUNAr8eb33E7U

STORAGE_USE_SSL: false

# -- Cache (Redis) --

REDIS_URL: redis://default:password@redis:6379

# -- Email (Optional) --

# DISABLE_EMAIL_AUTH: true

# VITE_DISABLE_SIGNUPS: true

volumes:

minio_data:

postgres_data:

​

ENVIRONMENTAL VARIABLES

​

NODE_ENV=development

PORT=3000

__DEV__CLIENT_PORT=5173 # Only used in development

__DEV__CLIENT_URL=http://localhost:5173 # Only used in development

__DEV__ARTBOARD_PORT=6173 # Only used in development

__DEV__ARTBOARD_URL=http://localhost:6173 # Only used in development

PUBLIC_URL=http://resume.themyurl.com

STORAGE_URL=http://resume.themyurl.com/default # default is the bucket name specified in the STORAGE_BUCKET variable

POSTGRES_PORT=32781

POSTGRES_DB=postgres

POSTGRES_USER=myuser
POSTGRES_PASSWORD=mFQp2QCmypasswordDT@2

DATABASE_URL=postgresql://myuser:Thmypassword6@localhost:5432/postgres?schema=public

ACCESS_TOKEN_SECRET=access_token_secret

REFRESH_TOKEN_SECRET=refresh_token_secret

CHROME_PORT=8080

CHROME_TOKEN=chrome_token

CHROME_URL=ws://resume.themyurl.com:8080

MAIL_FROM=noreply@localhost

STORAGE_ENDPOINT=resume.themyurl.com

STORAGE_PORT=9000

STORAGE_REGION=us-east-1

STORAGE_BUCKET=default

STORAGE_ACCESS_KEY=minioadmin

STORAGE_SECRET_KEY=minioadmin

STORAGE_USE_SSL=false

REDIS_URL=redis://default:password@localhost:6379

CROWDIN_PROJECT_ID=

CROWDIN_PERSONAL_TOKEN=

PUID=1000

PGID=1000

TZ="America/Vancouver"

DOCKERDIR="/nfs/docker"

DATADIR="/nfs/data"

[-] Muizaz88@alien.top 1 points 11 months ago

I must be more of a noob than I initially realised. I simply can't get this to work. Is there a video tutorial anywhere yet? Thank you in advance!

[-] AmruthPillai@alien.top 1 points 11 months ago

I'm current taking a short break cause I've been working on this for more than a few months. Will be back soon with product guides, video tutorials and everything soon.

[-] blaine07@alien.top 1 points 11 months ago

Downvote me to the moon: Selfhosting this is still entirely more convoluted than I feel it should need to be.

[-] AmruthPillai@alien.top 1 points 11 months ago

I did what I could man. I'm just one guy, a front-end guy even. I even made an announcement at the top of my GitHub readme looking for dev-ops or backend dev to help me make the self-hosting process better, but even with a project as popular as this, nobody came to help. So naturally I picked up as much I could myself and did it.

I honestly don't know how it can be made easier though. It's just a single service now, which needs to speak to other services. But if you still feel it's convoluted, fork the repo and help me make it better, teach me what good self-hosted apps are supposed to look like.

[-] konraddo@alien.top 1 points 11 months ago

I'm quite new to self-hosting apps so it could be my mistake, but I can't figure out how to solve the problem of "P1001: Can't reach database server at" in postgres.

[-] AnotherMiggy@alien.top 1 points 11 months ago

I'll be setting this up for sure as I was looking for something like this. Thanks for making this!

load more comments (2 replies)
[-] NovelMindless@alien.top 1 points 11 months ago

I have used this in the past and was very good. Just creating a new CV now and it totally locked up on me but thats probably down to firefox.

Whilst working my way through the skills section, its quite annoying that you cant drag the skills into order/there own place. I've had to delete and add again on quite a few occasions.

Skills again, would be nice to have an option of just entering text or skills separated by the commas.

[-] bakterja@alien.top 1 points 11 months ago

Hey, I was planing to refresh my resume. I will definitely use this, looks great. Thanks !

[-] Theon@alien.top 1 points 11 months ago

Whoa, this looks awesome. I've been using https://read.cv but it's got way less features, and it also seems they've started to pivot more and more into being a kind of a social network which I'm not particularly interested in.

The only thing I'm kind of worried about is that this looks somewhat heavy for a single-user instance? Like, I don't probably need 2FA or Sentry or even SMTP for password resets. Still though, will try!

load more comments (1 replies)
[-] uekiamir@alien.top 1 points 11 months ago

Why does it need authentication? In fact, why need a backend at all and not just fully client-side?

load more comments (1 replies)
[-] ScoobieRex208@alien.top 1 points 11 months ago

This looks great! Looking forward to setting it up, thanks for sharing!

[-] JackDostoevsky@alien.top 1 points 11 months ago

perfect timing, i just got laid off a couple weeks ago lol

load more comments
view more: ‹ prev next ›
this post was submitted on 24 Nov 2023
13 points (100.0% liked)

Self-Hosted Main

504 readers
1 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

For Example

We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.

Useful Lists

founded 1 year ago
MODERATORS