Как самостоятельно разместить Reactive-Resume: Полное руководство по созданию приватного конструктора резюме

Узнайте, как самостоятельно разместить Reactive-Resume — конструктор резюме с открытым кодом, который обеспечивает максимальную приватность. Пошаговое руководство с инструкциями по установке, настройке и оптимизации для вашего homelab.

Не указано

Установка через Docker (рекомендуемый способ)

Использование Docker изолирует приложение и его зависимости, что упрощает установку и управление.

Шаг 1: Установка Docker

Установка Docker для Ubuntu, macOS или Windows

Для Ubuntu:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Шаг 2: Клонирование репозитория

Клонируем официальный репозиторий Reactive-Resume

git clone https://github.com/AmruthPillai/Reactive-Resume.git
cd Reactive-Resume

Шаг 3: Настройка Docker Compose

Создаем файл docker-compose.yml с конфигурацией сервиса

version: '3.8'
services:
  app:
    image: amruthpillai/reactive-resume:latest
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - MONGODB_URI=mongodb://mongo:27017/reactive-resume?authSource=admin
      - REDIS_URL=redis://redis:6379
    depends_on:
      - mongo
      - redis
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
  mongo:
    image: mongo:6.0
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=securepassword
    volumes:
      - mongo-data:/data/db
    restart: unless-stopped
  redis:
    image: redis:7.0-alpine
    volumes:
      - redis-data:/data
    restart: unless-stopped
volumes:
  mongo-data:
  redis-data:

Шаг 4: Настройка переменных окружения

Создаем файл .env с необходимыми переменными

MONGO_USERNAME=admin
MONGO_PASSWORD=securepassword
JWT_SECRET=your-super-secret-jwt-key-that-is-long-and-random

Шаг 5: Запуск контейнеров

Запускаем приложение в фоновом режиме

docker-compose up -d
docker-compose ps

Установка из исходного кода

Этот метод подходит для продвинутых пользователей, которым нужна более глубокая кастомизация приложения.

Шаг 1: Установка зависимостей

Установка Node.js и npm для Ubuntu

sudo apt update
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v  # Должна быть 18.x или выше
npm -v   # Должна быть 8.x или выше

Шаг 2: Установка и настройка MongoDB

Установка MongoDB и создание пользователей

sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod

mongosh --eval "
  use admin
  db.createUser({
    user: 'admin',
    pwd: 'securepassword',
    roles: ['userAdminAnyDatabase', 'dbAdminAnyDatabase', 'readWriteAnyDatabase']
  })
  use reactive-resume
  db.createUser({
    user: 'resume_user',
    pwd: 'resume_password',
    roles: ['readWrite']
  })
"

Шаг 3: Установка и настройка Redis

Установка и запуск Redis

sudo apt install -y redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server
redis-cli ping

Шаг 4: Настройка переменных окружения

Создаем .env файл с конфигурацией

NODE_ENV=production
PORT=3000
MONGODB_URI=mongodb://admin:securepassword@localhost:27017/reactive-resume?authSource=admin
REDIS_URL=redis://localhost:6379
JWT_SECRET=your-super-secret-jwt-key-that-is-long-and-random

Шаг 5: Сборка и запуск

Собираем приложение и запускаем его через PM2

npm run build
sudo npm install -g pm2
pm2 start ecosystem.config.js --name "reactive-resume"
pm2 startup
pm2 save

Настройка после установки

Дополнительные шаги для полноценного развертывания

Настройка домена и HTTPS

Настройка Nginx как reverse proxy и установка SSL-сертификата

sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

# Настройка Nginx как reverse proxy
# Создать файл /etc/nginx/sites-available/reactive-resume с соответствующими настройками

# Установка Let's Encrypt SSL-сертификата
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

# Добавить в cron для автоматического обновления:
0 12 * * * /usr/bin/certbot renew --quiet

Обновление экземпляра

Инструкция по обновлению Reactive-Resume

Через Docker:
docker-compose down
git pull origin main
docker-compose pull
docker-compose up -d
docker-compose ps

Из исходного кода:
pm2 stop reactive-resume
git pull origin main
npm install
npm run build
pm2 start ecosystem.config.js --name "reactive-resume"
pm2 status