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!
curios to see how well a PDF resume from this fares thru the various ATS’s that are out there
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.
GIT is literally build for that.
I will definitely look into the possibility of having this on, although I suspect my database would blow up if I were to implement this on the cloud.
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?
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.
Depending on the country, adding an image to your resume is still pretty standard.
Totally what I was looking for will try imbed into my website.
Please do let me know how it goes, and if there’s anything I can do to make the process more simpler :)
Thanks mate, might try add it into my docker website, https://github.com/buildwithdan/flask-portfolio
/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:[email protected]:32781/postgres?schema=public
# – Auth –
ACCESS_TOKEN_SECRET: PcaDMKAu.x8@iCTaB-
REFRESH_TOKEN_SECRET: yjXiGQkKNcVgE*DUvt
# – Emails –
MAIL_FROM: [email protected]
SMTP_URL: smtp://mysmptname:atz_nqf[email protected]: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@2DATABASE_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”
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!
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.
Downvote me to the moon: Selfhosting this is still entirely more convoluted than I feel it should need to be.
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 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.
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!
You can find the examples here: https://github.com/AmruthPillai/Reactive-Resume/tree/main/tools/compose
I am so excited I’m trying this tomorrow
Is there a way to get the old v1 onyx layout back?
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?
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.
Holy shit, it looks slick! Will for sure give it a spin!
Thank you so much! :)
I’ll be setting this up for sure as I was looking for something like this. Thanks for making this!
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!
Will do!
Creative website name!
Thank you :)
Why does it need authentication? In fact, why need a backend at all and not just fully client-side?
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.