🚀 Introducing Reactive Resume v4, a free and open-source resume builder!
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).
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.
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.
Really great tool, thanks! I accidentally started of with a wrong old docker container, that wasn't v4. It did have some issues, that are fixed in v4 now, so that's great!
I really love the old 'Onyx' layout though. The ovals that contain 'skills' and 'hobbies' make it look so clean. I can't find the same layout in the new v4.
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!
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
As reported by users who've sent me messages, but the whole section was meant to be taken sarcastically. Of course just the resume alone doesn't do anything, it's their skills. And personally, I've always wanted to have a logo cloud on my website, they have always looked cool to me.
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?
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?
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.
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!
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.
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
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.
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.)
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).
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.
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.
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.
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?
/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.
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.
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.
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.
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.
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!