Настройка окружения
Подготовка и конфигурация окружения для развертывания Arisweb Marketplace.
Системные требования
Минимальные требования
Производительность:
CPU: 2 ядра
RAM: 4 GB
Storage: 50 GB SSD
Network: 100 Mbps
Рекомендуемые:
CPU: 4+ ядра
RAM: 8+ GB
Storage: 100+ GB NVMe SSD
Network: 1 Gbps
Поддерживаемые операционные системы
- Ubuntu 20.04+ LTS
- CentOS 8+
- Debian 11+
- RHEL 8+
- Amazon Linux 2
- Docker Desktop (разработка)
Подготовка сервера
Обновление системы
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip
# CentOS/RHEL
sudo yum update -y
sudo yum install -y curl wget git unzip
# Установка дополнительных пакетов
sudo apt install -y software-properties-common apt-transport-https ca-certificates gnupg lsb-release
Настройка пользователя
# Создание пользователя для приложения
sudo useradd -m -s /bin/bash marketplace
sudo usermod -aG sudo marketplace
sudo usermod -aG docker marketplace
# Настройка SSH ключей
sudo mkdir -p /home/marketplace/.ssh
sudo cp ~/.ssh/authorized_keys /home/marketplace/.ssh/
sudo chown -R marketplace:marketplace /home/marketplace/.ssh
sudo chmod 700 /home/marketplace/.ssh
sudo chmod 600 /home/marketplace/.ssh/authorized_keys
Установка Docker
Docker Engine
# Добавление официального GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавление репозитория Docker
echo "deb [arch=amd64 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
# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Запуск и автозапуск Docker
sudo systemctl start docker
sudo systemctl enable docker
# Проверка установки
docker --version
docker compose version
Docker Compose
# Установка Docker Compose (если не установлен с плагином)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Проверка установки
docker-compose --version
Node.js окружение
Установка Node.js через NodeSource
# Добавление репозитория NodeSource
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# Установка Node.js
sudo apt install -y nodejs
# Проверка установки
node --version
npm --version
Установка через nvm (рекомендуется)
# Установка nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
# Установка Node.js LTS
nvm install --lts
nvm use --lts
nvm alias default node
# Установка глобальных пакетов
npm install -g pm2 @supabase/cli
База данных PostgreSQL
Установка PostgreSQL
# Установка PostgreSQL
sudo apt install -y postgresql postgresql-contrib
# Запуск и автозапуск
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Настройка пользователя
sudo -u postgres createuser --interactive --pwprompt marketplace
sudo -u postgres createdb -O marketplace marketplace_db
Настройка PostgreSQL
# Редактирование конфигурации
sudo nano /etc/postgresql/14/main/postgresql.conf
# Основные настройки
listen_addresses = 'localhost'
port = 5432
max_connections = 100
shared_buffers = 256MB
effective_cache_size = 1GB
maintenance_work_mem = 64MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
# Настройка аутентификации
sudo nano /etc/postgresql/14/main/pg_hba.conf
# Добавить строку для локального доступа
local marketplace_db marketplace md5
host marketplace_db marketplace 127.0.0.1/32 md5
Redis кеширование
Установка Redis
# Установка Redis
sudo apt install -y redis-server
# Настройка конфигурации
sudo nano /etc/redis/redis.conf
# Основные настройки
bind 127.0.0.1
port 6379
requirepass your_redis_password
maxmemory 512mb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
save 60 10000
# Перезапуск Redis
sudo systemctl restart redis-server
sudo systemctl enable redis-server
Nginx веб-сервер
Установка Nginx
# Установка Nginx
sudo apt install -y nginx
# Удаление дефолтной конфигурации
sudo rm /etc/nginx/sites-enabled/default
# Создание конфигурации для маркетплейса
sudo nano /etc/nginx/sites-available/marketplace
Конфигурация Nginx
server {
listen 80;
server_name your-domain.com www.your-domain.com;
# Перенаправление на HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com www.your-domain.com;
# SSL сертификаты
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# SSL настройки
ssl_session_timeout 1d;
ssl_session_cache shared:MozTLS:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
# Безопасность
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options DENY always;
add_header X-Content-Type-Options nosniff always;
add_header X-XSS-Protection "1; mode=block" always;
# Основная локация
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
# Статические файлы
location /static/ {
alias /var/www/marketplace/static/;
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Активация конфигурации
# Создание символической ссылки
sudo ln -s /etc/nginx/sites-available/marketplace /etc/nginx/sites-enabled/
# Проверка конфигурации
sudo nginx -t
# Перезапуск Nginx
sudo systemctl restart nginx
sudo systemctl enable nginx