Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Vaultwarden (совместимого с Bitwarden) через Docker, настройка HTTPS, панель администратора, управление организациями и коллекциями, использование с клиентами Bitwarden.
Vaultwarden — это лёгкая альтернатива официальному серверу Bitwarden, написанная на Rust и поддерживаемая сообществом. По сравнению с официальным сервером Bitwarden он потребляет значительно меньше ресурсов и полностью совместим со всеми клиентами Bitwarden (веб, десктоп, мобильный, расширение браузера). Размещая его на собственном сервере, вы сохраняете полный контроль над своими паролями.
Vaultwarden (ранее bitwarden_rs) — это проект с открытым исходным кодом, который переосмысляет API Bitwarden на Rust. Ключевые особенности:
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
ADMIN_TOKEN: "надёжный-токен-администратора"
WEBSOCKET_ENABLED: "true"
LOG_LEVEL: "warn"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
- "127.0.0.1:3012:3012"
# Запустить контейнер
docker compose up -d
# Проверить логи
docker logs vaultwarden -f
Используйте надёжное и случайное значение для ADMIN_TOKEN. Безопасный токен можно сгенерировать командой openssl rand -base64 48.
# Сгенерировать безопасный токен администратора
openssl rand -base64 48
# Более безопасный токен с хешем Argon2 (рекомендуется)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp
Поскольку Vaultwarden требует HTTPS, настройка обратного прокси Nginx обязательна.
server {
listen 80;
server_name vault.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name vault.example.com;
ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 128M;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8080;
}
}
# Установить Certbot
apt install certbot python3-certbot-nginx -y
# Получить SSL-сертификат
certbot --nginx -d vault.example.com
# Тест автоматического обновления
certbot renew --dry-run
Доступ к панели администратора по адресу https://vault.example.com/admin.
# Отключить регистрацию после настройки
SIGNUPS_ALLOWED=false
# Разрешить регистрацию только для определённых доменов
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org
# Система приглашений
INVITATIONS_ALLOWED=true
# Верификация email
SIGNUPS_VERIFY=true
environment:
SMTP_HOST: "smtp.gmail.com"
SMTP_FROM: "vault@example.com"
SMTP_PORT: "587"
SMTP_SECURITY: "starttls"
SMTP_USERNAME: "vault@example.com"
SMTP_PASSWORD: "пароль-приложения"
Из панели администратора перейдите в Users → Invite User для отправки приглашений по email.
# Пригласить пользователя через CLI
docker exec vaultwarden /vaultwarden invite --email user@example.com
Организации в Vaultwarden бесплатны (платные в официальном Bitwarden):
https://vault.example.com1. Откройте приложение Bitwarden
2. Нажмите на выбор региона на экране входа
3. Выберите "Self-hosted"
4. URL сервера: https://vault.example.com
5. Сохраните и войдите
# Резервное копирование данных Vaultwarden
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/
# Скрипт автоматического резервного копирования
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup
Vaultwarden отлично работает на серверах REXE VPS. 1 ГБ ОЗУ и 1 vCPU достаточно для небольших команд.
Vaultwarden — это проект сообщества, который переосмысляет API Bitwarden на Rust. Он потребляет значительно меньше ресурсов, чем официальный сервер Bitwarden (достаточно 512 МБ ОЗУ). Организации и премиум-функции в Vaultwarden бесплатны, тогда как на официальном сервере они платные. Полностью совместим со всеми клиентами Bitwarden.
Нет, клиенты Bitwarden требуют HTTPS по соображениям безопасности. Без действительного SSL-сертификата клиенты откажутся подключаться. Вы можете получить бесплатный SSL-сертификат с Let's Encrypt. Самоподписанные сертификаты также работают для локальных сетей, но потребуют ручного добавления доверия в клиентах.
Проверьте, что значение ADMIN_TOKEN правильно определено в docker-compose.yml. При использовании хеша Argon2 символы '$' могут потребовать экранирования в YAML. Заключите токен в одинарные кавычки: ADMIN_TOKEN: '$$argon2id$$...'. Перезапустите контейнер: docker compose restart vaultwarden.
Убедитесь, что путь /notifications/hub в конфигурации Nginx проксируется на порт 3012. Проверьте, что установлена переменная окружения WEBSOCKET_ENABLED=true. Убедитесь, что в Nginx присутствуют директивы 'proxy_set_header Upgrade $http_upgrade' и 'proxy_set_header Connection upgrade'.
Все данные хранятся в директории ./vw-data/. Регулярно создавайте резервные копии этой директории: tar -czf backup.tar.gz ./vw-data/. Критические файлы: db.sqlite3 (база данных), rsa_key* (ключи шифрования), attachments/ (вложения). Потеря ключей делает все пароли недоступными.
Создайте организацию и добавьте коллекции. Отредактируйте пароль, которым хотите поделиться, и выберите соответствующую коллекцию в разделе 'Коллекции'. Пригласите участников в организацию и предоставьте права доступа к коллекции. Участники смогут видеть общие пароли в своих клиентах Bitwarden.
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.