Installer Reactive Resume avec Docker
Reactive Resume

Installer Reactive Resume avec Docker

Table des matières

GitHub - AmruthPillai/Reactive-Resume: A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today! - AmruthPillai/Reactive-Resume
Mis à jour: 5/11/2024 Mon tutoriel n'était plus d'actualité, tout le mérite revient à SunFlowerOwl pour la mise à jour.

Cette idée d'article me vient de NoScah qui me demandait hier soir si j'arrivais à installer cette application avec les tutoriels qu'il y a en ligne.

🐐 Bêêêêêh non.

Moi non plus. Le plus récent tutoriel que nous ayons trouvé datait d'un an. En un an les choses vont vite dans l'informatique. On s'est cassé le cul popotin un bon bout de temps à trouver un docker-compose récent et fonctionnel, c'est pourquoi je voulais le partager avec vous.

Voilà pour la petite histoire.


Reactive Resume, un générateur de CV gratuit et open source qui simplifie le processus de création, de mise à jour et de partage de votre CV.

⚡Caractéristiques

  • Gratuit, pour toujours, et open source
  • Pas de télémétrie, de suivi des utilisateurs ou de publicité
  • Self-hosted
  • Disponible en plusieurs langues
  • Utilisez votre adresse email (ou une adresse jetable) pour créer un compte
  • Vous pouvez également vous connecter avec votre compte GitHub ou Google, et même configurer une authentification à deux facteurs pour plus de sécurité
  • Créez autant de CV que vous le souhaitez sous un seul compte, en optimisant chaque CV pour chaque candidature
  • OpenAI (optionnel): débloquez des fonctionnalités telles que l'amélioration de votre écriture, la correction de l'orthographe et de la grammaire ou la modification du texte en un seul clic
  • Traduisez votre CV dans n'importe quelle langue à l'aide de ChatGPT et réimportez-le pour une édition plus facile
  • Créez facilement des CV d'une seule page ou un CV qui s'étend sur plusieurs pages
  • Personnalisez les couleurs et les mises en page pour ajouter une touche personnelle à votre CV
  • Personnalisez votre mise en page à votre guise en glissant-déposant simplement des sections
  • Créez des sections personnalisées spécifiques à votre secteur si celles existantes ne conviennent pas
  • Ajoutez des notes personnelles spécifiques à votre CV qui ne sont visibles que par vous
  • Verrouiller un CV pour empêcher toute modification supplémentaire (utile pour les modèles principaux)
  • Des dizaines de modèles parmi lesquels choisir, allant du professionnel au moderne
  • Concevez votre CV à l'aide du modèle de conception standardisé EuroPass
  • Prend en charge l'impression des CV aux formats de page A4 ou Lettre
  • Concevez votre CV avec n'importe quelle police disponible sur Google Fonts
  • Partagez un lien personnalisé de votre CV avec des entreprises ou des recruteurs pour qu'ils reçoivent les dernières mises à jour
  • Vous pouvez suivre le nombre de vues ou de téléchargements que votre CV public a reçu
  • Construit avec des technologies de pointe
  • Licence MIT, faites ce que vous voulez avec le code à condition de créditer l'auteur original
  • Mode sombre

L'installation

  1. Créez votre docker-compose.yml:
sudo nano compose.yml
  1. Collez ça dedans en prenant soin d'adapter le port et les volumes suivant votre configuration:
version: "3.8"

services:
  # Database (Postgres)
  postgres:
    image: postgres:15-alpine
    restart: unless-stopped
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

  # Storage (for image uploads)
  minio:
    image: minio/minio
    restart: unless-stopped
    command: server /data
    ports:
      - ${MINIO_PORT:-9000}:9000
    volumes:
      - minio_data:/data
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}

  # 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: 1
      PRE_REQUEST_HEALTH_CHECK: 1

  # Redis (for cache & server session management)
  redis:
    image: redis:alpine
    restart: unless-stopped
    command: redis-server --requirepass ${REDIS_PASSWORD}

  # Main Application
  app:
    image: amruthpillai/reactive-resume:latest
    restart: unless-stopped
    ports:
      - ${APP_PORT:-3000}:3000
    depends_on:
      - postgres
      - minio
      - redis
      - chrome
    environment:
      # -- Environment Variables --
      PORT: 3000
      NODE_ENV: production

      # -- URLs --
      PUBLIC_URL: http://localhost:${APP_PORT:-3000}
      STORAGE_URL: http://localhost:${MINIO_PORT:-9000}

      # -- Printer (Chrome) --
      CHROME_TOKEN: ${CHROME_TOKEN}
      CHROME_URL: ws://chrome:3000

      # -- Database (Postgres) --
      DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres

      # -- Auth --
      ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
      REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}

      # -- Emails --
      MAIL_FROM: noreply@localhost

      # -- Storage (Minio) --
      STORAGE_ENDPOINT: minio
      STORAGE_PORT: ${MINIO_PORT:-9000}
      STORAGE_BUCKET: default
      STORAGE_ACCESS_KEY: ${MINIO_ROOT_USER}
      STORAGE_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
      STORAGE_USE_SSL: 0

      # -- Cache (Redis) --
      REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379

volumes:
  postgres_data:
  minio_data:
  1. On va maintenant créer 3 tokens grâce à cette commande, répétez donc 3 fois cette commande et mettez les token de côté provisoirement:
openssl rand -hex 32
  1. On va créer le fichier .env:
sudo nano .env
  1. Collez ça dedans:
# Ports
APP_PORT=3000
MINIO_PORT=9000

# PostgreSQL
POSTGRES_PASSWORD=votre_mot_de_passe

# MinIO
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin

# Redis
REDIS_PASSWORD=votre_mot_de_passe

# Security Tokens
CHROME_TOKEN=votre_premier_token
ACCESS_TOKEN_SECRET=votre_second_token
REFRESH_TOKEN_SECRET=votre_troisème_token

Veillez à changer:

  • POSTGRES_PASSWORD=votre_mot_de_passe => Remplacez votre_mot_de_passe par un mot de passe à vous, évitez les caractères spéciaux.
  • REDIS_PASSWORD=votre_mot_de_passe => Remplacez votre_mot_de_passe par un mot de passe à vous, évitez les caractères spéciaux.
  • CHROME_TOKEN=votre_premier_token => Remplacez votre_premier_token par un token que vous avez généré précédemment.
  • ACCESS_TOKEN_SECRET=votre_second_token => Remplacez votre_second_token par un token que vous avez généré précédemment.
  • REFRESH_TOKEN_SECRET=votre_troisème_token => Remplacez votre_troisième_token par un token que vous avez généré précédemment.
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi:
http://ip:3000

👤 Création du compte utilisateur

Cliquez sur Get Started:

Cliquez sur Create one now ->:

Remplissez les informations demandées:

  • Name => Indiquez notre nom.
  • Username => Indiquez votre nom d'utilisateur.
  • Email => Indiquez votre adresse e-mail.
  • Password => Choisissez un mot de passe fort.

Cliquez sur Sign up, ensuite il ne reste qu'à cliquer sur Go to Dashboard:

Voilà votre tableau de bord:


🇫🇷 Mettre l'application en français

Cliquez sur Settings:

Dans la partie Profile:

Choisissez votre thème et votre langue, cliquez sur Save Changes quand c'est terminé.


Disponibilité

Sur votre navigateur préféré.


zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.