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!

  • 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”