this post was submitted on 24 Nov 2023
11 points (100.0% liked)

Self-Hosted Main

515 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
 

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!

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 11 months ago

curios to see how well a PDF resume from this fares thru the various ATS's that are out there

[–] [email protected] 2 points 11 months ago (2 children)

This looks really nice. A really good feature to have would be able to have version history of the resume so I can revert or just see how the resume has changed over time.

[–] [email protected] 2 points 11 months ago

GIT is literally build for that.

load more comments (1 replies)
[–] [email protected] 2 points 11 months ago (2 children)

Totally what I was looking for will try imbed into my website.

load more comments (2 replies)
[–] [email protected] 2 points 11 months ago (2 children)

I cheeked out the homepage and saw a photo on the header. Shouldn't you discourage use of an image on a resume?

doesn't that put some people at risk to racial bias?

[–] [email protected] 2 points 11 months ago

Entirely up to the user. All of the templates adapt depending on whether there's a picture or not, so no one's experience is hindered. But it's true, it is discouraged in some regions, for good reason, but also expected in many other regions or industries.

[–] [email protected] 1 points 11 months ago

Depending on the country, adding an image to your resume is still pretty standard.

[–] [email protected] 1 points 11 months ago (1 children)

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!

[–] [email protected] 1 points 11 months ago

SMTP is optional, so is Sentry. If you don't include the env variable, the module isn't loaded in the app itself.

As for 2FA, it was just a few bits of code, so it adds almost zero weight to the instance. The project is very much catered to being self-hosted and meant for a single person to use. The rest are just nice features to have on a cloud instance, but they don't add any overhead to the server.

[–] [email protected] 1 points 11 months ago (1 children)

Holy shit, it looks slick! Will for sure give it a spin!

[–] [email protected] 1 points 11 months ago

Thank you so much! :)

[–] [email protected] 1 points 11 months ago (1 children)

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

[–] [email protected] 1 points 11 months ago (1 children)

No, thank you! And please do let me know how your self-hosting experience was. If there's anything I can do to simplify the process, happy to!

[–] [email protected] 1 points 11 months ago
[–] [email protected] 1 points 11 months ago (1 children)
[–] [email protected] 1 points 11 months ago

Thank you :)

[–] [email protected] 1 points 11 months ago (1 children)

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

[–] [email protected] 1 points 11 months ago

So it seems that right now it's not a separate project for the self-hosted version of this and the one that he offers online. So there's a lot of stuff that it's not really needed for a one-person cv display.

[–] [email protected] 1 points 11 months ago

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

[–] [email protected] 1 points 11 months ago (1 children)

This is so cool. I'm excited to set this up on Docker, but I couldn't find the Docker Compose or installation instructions on your page. Any chance you could point me in the right direction? Thanks a bunch!

[–] [email protected] 1 points 11 months ago (1 children)
[–] [email protected] 1 points 11 months ago

I am so excited I’m trying this tomorrow

[–] [email protected] 1 points 11 months ago

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

[–] [email protected] 1 points 11 months ago (1 children)

Is there an upgrade breaking changes from v3.x to 4.0 if upgrading a self-hosted instance using docker?

[–] [email protected] 1 points 11 months ago

Yes, unfortunately it's not a straightforward upgrade as there are a lot of things changed since V3 to V4. What I'd suggest is to extract or export your resume json from your running V3 instance and store it locally. Once you have v4 running, simply import the JSON back into the app.

Also it should be pointed out that the name of the image tag has changed. There is no client and server anymore, but just latest.

[–] [email protected] 1 points 11 months ago

Hi, could you include a docker-compose file to the repository?

[–] [email protected] 1 points 11 months ago

this is awesome! well done

[–] [email protected] 1 points 11 months ago

Damn it that's awesome! A few weeks ago I was thinking to build something similar, glad you take the lead! Will give it a go and share my experience!

[–] [email protected] 1 points 11 months ago

The delaying of making my resume becouse i was to lazy actually paid off

[–] [email protected] 1 points 11 months ago (1 children)

Do you have upgrade instructions for users who were running it with this image?

​

image: amruthpillai/reactive-resume:server-latest

​

Will it break if I just do a docker compose pull?

[–] [email protected] 1 points 11 months ago (1 children)

Yes, unfortunately it's not a straightforward upgrade as there are a lot of things changed since V3 to V4. What I'd suggest is to extract or export your resume json from your running V3 instance and store it locally. Once you have v4 running, simply import the JSON back into the app.

Also it should be pointed out that the name of the image tag has changed. There is no client and server anymore, but just latest.

[–] [email protected] 1 points 11 months ago (1 children)

After a first glance, I can't see info about deployment in the docs: https://docs.rxresu.me/ and no docker-compsoe.yml in the repo either: https://github.com/AmruthPillai/Reactive-Resume/

Do you have a link to the self-deployment instructions or a compose file please?

load more comments (1 replies)
[–] [email protected] 1 points 11 months ago (1 children)

this looks great!

Question / Potential feature request if it doesn't exist

there used to be a free resume service called rhubarb that'd let you write a bunch of bullet points and swap them in and out of your resume depending on the job you're applying to, so you'd essentially have one base resume that you could make variants of quickly and easily. their implementation let you click the "skills" section or the "work experience" section and a side bar would open up with your "bank" of all the skills or experience snippets you'd written and you'd simply click the plus or minus button to add or remove them for a specific "variant" of a resume you were working on.

this was insanely useful in tech jobs where you'd have experience with like 20 different pieces of tech but a specific job you'd apply to would only use 10 and you could only fit like 15ish on your resume so you'd swap them around depending on the specific job you're applying to. do you guys have any feature like this where you support quickly making variations of a base resume to more custom tailor it to a singular position?

It'd also let you track the jobs you've applied to by uploading the Job description (just simple copy and pasting of the page into a rich text editor, no link scraping or formatting or anything) and it'd give you basically an "match" score on how good the specific variant of your resume aligns with the skill sets posted for that particular position's job description. This part was probably just a simple python off-the-shelf machine learning script that does NTM or LDA or something, it wasn't amazing, and with chatgpt integration already in your app, you could probably do something a lot better for a lot lower effort.

if these features don't exist in your app, adding them i think would make your app the resume app, because in the current job market, it's becoming more and more of the norm to shoot out dozens of resumes to land a single bite, and more and more, those resumes need to be custom tailored to the position especially in the age of chatgpt mass produced resumes. Even in tech, if you aren't custom tailoring your resume for each application your prospects of getting a call back are greatly diminished.

So really this creates two problems your app could solve, easily customizing a "base" resume and keeping track of which job postings you've sent which resume to, both of these could be super overengineered, or just simple solutions, and both of these would make your app amazing if it doesn't have either!

[–] [email protected] 1 points 11 months ago

The features you're asking for already exist in the app. You should be able to create a resume with all section items, and duplicate the resume for a specific job. Now, you have the option to hide certain items from each section or hide a section altogether.

There's also another interesting feature specific for this use case. You can create a base resume and then lock it, ensuring no further changes are made to it by mistake. Another feature is that you can add personal notes to each resume, for example a link to the job description you applied to.

[–] [email protected] 1 points 11 months ago (2 children)

This looks awesome. Is there any extra setup required for saving to PDF? I just spun it up with the simple.yml compose file and PDF save does not work.

Haven't looked into error logs at all yet because I'm busy, just wanted to check out the app quickly.

[–] [email protected] 1 points 11 months ago

There's absolutely no extra setup necessary, if all of the services are running correctly. The error might just be related to networking. You can check out the hosted instance and take it for a spin to validate the product, and then when you have the time debug those errors with self-hosting it. I personally use the docker swarm compose template to deploy the production application and it works right out of the box.

load more comments (1 replies)
[–] [email protected] 1 points 11 months ago (1 children)

What's the difference between a rΓ©sumΓ© and a CV and can this do both?

[–] [email protected] 1 points 11 months ago

I have always assumed that the two words mean the same but as specific to a region. There's no reason why you can't make your resume look like the way you want it to, especially because you can create custom sections that pertain to your industry.

[–] [email protected] 1 points 11 months ago (1 children)

This is great! I have a feature request if you don't mind

Can the app be password protected? E.g: Require password upon entering $PUBLIC_URL but not for public resumes. I don't want the app to be public but still want it available over the internet.

I tried adding basic auth to my reverse proxy and it seems to break the app.

[–] [email protected] 1 points 11 months ago (1 children)

Interesting. It should be possible to do this without having to break the app or modify any of the code. You just need to ensure STORAGE URL and CHROME URL and not public addresses, but URLs that are accessible within your network (without basic auth).

Then it's just a matter of implementing basic auth on the proxy layer (using nginx/Traefik/caddy). Or instead of basic auth, another strategy would be to block all requests from External IPs and only allow your home IP and the IP of the server itself.

[–] [email protected] 1 points 11 months ago
# -- URLs --
PUBLIC_URL: http://localhost:3001
STORAGE_URL: http://localhost:3002

# -- Printer (Chrome) --
CHROME_TOKEN: chrome_token
CHROME_URL: ws://headless_chrome:3000

You mean like that? It returns HTTP 500 once I add basic auth to the nginx reverse proxy

[–] [email protected] 1 points 11 months ago (1 children)

Perfect timing. I quit just today :D

Just installed with docker with this and it works great. https://github.com/AmruthPillai/Reactive-Resume/blob/main/tools/compose/simple.yml

After inserting a key created on https://platform.openai.com/api-keys , I tried the GPT functionality, but I always receive an error in a toast notification

404 This is a chat model and not supported in the v1/completions endpoint. Did you mean to use v1/chat/completions?

Also, does it utilize GPT-3.5 or GPT-4

[–] [email protected] 1 points 11 months ago

I believe they have made some changes to the OpenAI API since I last did the integration, will look into this tomorrow. The model is set to use gpt-3.5-turbo, but I would soon implement a dropdown to allow the user to select a model from a list.

[–] [email protected] 1 points 11 months ago (1 children)

Reactive Resume has helped people land jobs at these great companies

Has it now

load more comments (1 replies)
[–] [email protected] 1 points 11 months ago

Really slick and personally helpful to sooo many people, what an insanely awesome project!

[–] [email protected] 1 points 11 months ago

Hi u/AmruthPillai, I've been using Rxresume for a few years now and have got to say that I love it. However, I have hit a small snag; I use the hosted version (rxresu.me) and now that it's updated to v4, the resume it's imported has lost its formatting and is missing a lot of info. Is there a way to access the v3 version again so I can export all my resumes and selfhost v3?

[–] [email protected] 1 points 11 months ago

This is great! Any plans to update the unraid template? Pretty please :)

[–] [email protected] 1 points 11 months ago

We need a good working Unraid template for this πŸ™πŸ»πŸ§

[–] [email protected] 1 points 11 months ago

After 5 years I got laid off and had to rebuild mine, using a template from a "professional" that I hired like 7-9 years ago. I'll definitely use this to update mine!

[–] [email protected] 1 points 11 months ago

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

load more comments
view more: next β€Ί