Настройка LXС в Proxmox с помощью веб интерфейса:
Создание контейнера:
- В веб-интерфейсе Proxmox выберите ваш узел (node)
- Нажмите кнопку «Create CT» в правом верхнем углу
- Откроется мастер создания контейнера
Шаги настройки:
a) General:
- Node: выбран автоматически
- CT ID: уникальный номер (например, 100)
- Hostname: имя контейнера (например, bot-server)
- Unprivileged container: рекомендуется включить для безопасности
- Password: надежный пароль для root
- SSH Public key: можно добавить для безопасного доступа
b) Template:
- Storage: local (или другое хранилище)
- Template: выберите нужный образ (например, debian-12-standard)
- Если нужного образа нет — нажмите Download
- Можно выбрать версию и разрядность (обычно amd64)
c) Disks:
- Storage: local-lvm (или другое хранилище)
- Disk size: для бота достаточно 8GB
d) CPU:
- Cores: 1 (для бота достаточно)
- CPU units: 100 (по умолчанию)
- CPU limit: можно оставить пустым
e) Memory:
- Memory (MB): 512MB
- Swap (MB): 512MB
- Balloon: можно включить для динамического управления памятью
f) Network:
- Name: eth0
- Bridge: vmbr0 (или другой мост)
- IPv4: DHCP (или статический IP)
- IPv6: DHCP (можно отключить если не используется)
g) DNS:
- DNS domain: можно оставить пустым
- DNS servers: 8.8.8.8,8.8.4.4 (или ваши DNS)
h) Confirm:
- Проверьте все настройки
- Start after created: включить для автозапуска
- Нажмите Finish
Минимальная установка:
apt update && apt upgrade -y
apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejsМинимальная настройка окружения для Telegram бота:
#!/bin/bash
# Обновление системы и установка необходимых пакетов
apt update && apt upgrade -y
apt install -y curl git nano
# Установка Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejs
# Создание пользователя для бота
useradd -m -s /bin/bash botuser
cd /home/botuser
# Настройка проекта
sudo -u botuser bash << EOF
mkdir bot
cd bot
npm init -y
npm install node-telegram-bot-api pm2
# Создание файла с переменными окружения
cat > .env << EOL
BOT_TOKEN=your_token_here
NODE_ENV=production
EOL
# Настройка PM2
npm install pm2 -g
pm2 startup
# Создание файла экосистемы PM2
cat > ecosystem.config.js << EOL
module.exports = {
apps: [{
name: 'telegram-bot',
script: 'bot.js',
watch: true,
max_memory_restart: '200M',
env: {
NODE_ENV: 'production'
}
}]
}
EOL
EOF
# Настройка прав
chown -R botuser:botuser /home/botuser/bot
# Настройка системного сервиса
cat > /etc/systemd/system/bot.service << EOL
[Unit]
Description=Telegram Bot Service
After=network.target
[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/bot
ExecStart=/usr/bin/pm2-runtime start ecosystem.config.js
Restart=always
[Install]
WantedBy=multi-user.target
EOL
# Активация сервиса
systemctl enable bot
systemctl start bot
# Настройка базовой защиты
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw enable
# Настройка логирования
mkdir -p /var/log/bot
chown botuser:botuser /var/log/botПреимущества такого подхода:
- Минимальное потребление ресурсов
- Только необходимые компоненты
- Простое обновление и обслуживание
- Четкое понимание всех компонентов
- Более безопасная конфигурация
Мониторинг и управление:
# Просмотр статуса бота
pm2 status
pm2 logs
# Перезапуск бота
pm2 restart telegram-bot
# Просмотр потребления ресурсов
pm2 monitОбновление:
# Обновление Node.js
apt update
apt upgrade nodejs
# Обновление зависимостей бота
cd /home/botuser/bot
npm updateАвтозапуск бота:
Для автозапуска бота будем использовать pm2. pm2 — это процесс-менеджер для Node.js, который позволяет запускать приложения и следить за их состоянием, включая автозапуск при перезагрузке.
# Установка pm2
npm install pm2 -g
# Запуск бота
pm2 start /home/botuser/bot/bot.js --name "my-bot"
# Автозапуск pm2 при старте системы
pm2 startup
# Сохраняем
pm2 saveТеперь при перезагрузке системы pm2 автоматически запустит ваш скрипт.
