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!

  • sexyshingle@alien.topB
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 months ago

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

  • hash004@alien.topB
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    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.

  • JustDalek_@alien.topB
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    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?

    • AmruthPillai@alien.topOPB
      link
      fedilink
      English
      arrow-up
      2
      ·
      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.

    • p0op@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

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

  • flxstr@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    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:[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@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.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 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.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 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.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

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

    • AmruthPillai@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 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.

  • ovizii@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    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.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      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.

  • ajnerd@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    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!

    • AmruthPillai@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 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?

  • NovelMindless@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 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.

  • AnotherMiggy@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

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

  • uekiamir@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

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

    • DrH0rrible@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      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.