init_guac
This commit is contained in:
186
guacamole_test_11_26/docs/DEPLOYMENT_CHECKLIST.md
Executable file
186
guacamole_test_11_26/docs/DEPLOYMENT_CHECKLIST.md
Executable file
@ -0,0 +1,186 @@
|
||||
# ✅ Deployment Checklist
|
||||
|
||||
## 🎯 **ДА, ТЕПЕРЬ всё работает через .env!**
|
||||
|
||||
### **Что нужно сделать:**
|
||||
|
||||
1. ✅ Скопируйте example файл
|
||||
2. ✅ Заполните ВСЕ пароли
|
||||
3. ✅ Запустите deploy скрипт
|
||||
4. ✅ Готово!
|
||||
|
||||
---
|
||||
|
||||
## 📝 **Быстрый старт (3 минуты):**
|
||||
|
||||
```bash
|
||||
cd GuacamoleRemoteAccess
|
||||
|
||||
# 1. Создайте .env из примера
|
||||
cp production.env .env
|
||||
|
||||
# 2. Сгенерируйте безопасные пароли
|
||||
echo "REDIS_PASSWORD=$(openssl rand -base64 32)"
|
||||
echo "POSTGRES_PASSWORD=$(openssl rand -base64 32)"
|
||||
echo "SYSTEM_ADMIN_PASSWORD=$(openssl rand -base64 32)"
|
||||
|
||||
# 3. Вставьте пароли в .env
|
||||
nano .env
|
||||
# Замените все CHANGE_ME_* на сгенерированные пароли
|
||||
|
||||
# 4. Запустите автоматический деплой
|
||||
chmod +x deploy.sh
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
**Скрипт автоматически:**
|
||||
- ✅ Проверит ВСЕ пароли
|
||||
- ✅ Сгенерирует SQL с вашими credentials
|
||||
- ✅ Запустит контейнеры безопасно
|
||||
|
||||
---
|
||||
|
||||
## 🔐 **Обязательные переменные в .env:**
|
||||
|
||||
```env
|
||||
# 🔒 ЭТИ 3 ПАРОЛЯ ОБЯЗАТЕЛЬНЫ!
|
||||
|
||||
REDIS_PASSWORD=ваш_безопасный_пароль_1
|
||||
POSTGRES_PASSWORD=ваш_безопасный_пароль_2
|
||||
SYSTEM_ADMIN_PASSWORD=ваш_безопасный_пароль_3
|
||||
|
||||
# 📝 Логин можно менять!
|
||||
SYSTEM_ADMIN_USERNAME=guacadmin # Или любое другое имя
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ **Нигде больше НЕТ привязки к дефолтным паролям!**
|
||||
|
||||
### **Проверено и исправлено:**
|
||||
|
||||
| Компонент | Статус |
|
||||
|-----------|--------|
|
||||
| `guacamole_auth.py` | ✅ Нет fallback |
|
||||
| `redis_storage.py` | ✅ Нет fallback |
|
||||
| `ecdh_session.py` | ✅ Нет fallback |
|
||||
| `csrf_protection.py` | ✅ Нет fallback |
|
||||
| `saved_machines_db.py` | ✅ Нет fallback |
|
||||
| `docker-compose.yml` (redis) | ✅ Нет fallback |
|
||||
| `docker-compose.yml` (postgres) | ✅ Нет fallback |
|
||||
| `docker-compose.yml` (api) | ✅ Нет fallback |
|
||||
| `deploy.sh` | ✅ Проверяет пароли |
|
||||
|
||||
**ИТОГО: 0 захардкоженных паролей в коде!** 🎉
|
||||
|
||||
---
|
||||
|
||||
## 🚨 **Что произойдет если НЕ установить пароли:**
|
||||
|
||||
### **1. Deploy скрипт НЕ ЗАПУСТИТСЯ:**
|
||||
```bash
|
||||
./deploy.sh
|
||||
|
||||
[ERROR] REDIS_PASSWORD is not set or using default value!
|
||||
[ERROR] POSTGRES_PASSWORD is not set or using default value!
|
||||
[ERROR] SYSTEM_ADMIN_PASSWORD must be set!
|
||||
[ERROR]
|
||||
[ERROR] Critical passwords are missing or insecure!
|
||||
Exit 1
|
||||
```
|
||||
|
||||
### **2. Docker Compose УПАДЕТ:**
|
||||
```bash
|
||||
docker compose up -d
|
||||
|
||||
ERROR: The Compose file is invalid because:
|
||||
services.redis.command contains an invalid type
|
||||
```
|
||||
|
||||
### **3. Python приложение УПАДЕТ:**
|
||||
```python
|
||||
# Redis connection attempt
|
||||
password=os.getenv("REDIS_PASSWORD") # Returns None
|
||||
redis.Redis(password=None) # Redis AUTH error → crash
|
||||
```
|
||||
|
||||
**Три уровня защиты = невозможно запустить без паролей!**
|
||||
|
||||
---
|
||||
|
||||
## 📊 **Примеры .env (правильные):**
|
||||
|
||||
### **✅ ПРАВИЛЬНО:**
|
||||
```env
|
||||
# Все пароли установлены
|
||||
REDIS_PASSWORD=Xk7N9pQ2vT8mL5wR3jH6yU4aF1sD0eG9
|
||||
POSTGRES_PASSWORD=aB3cD4eF5gH6iJ7kL8mN9oP0qR1sT2u
|
||||
SYSTEM_ADMIN_USERNAME=admin # Можно менять!
|
||||
SYSTEM_ADMIN_PASSWORD=uV3wX4yZ5aB6cD7eF8gH9iJ0kL1mN2o
|
||||
```
|
||||
|
||||
### **❌ НЕПРАВИЛЬНО:**
|
||||
```env
|
||||
# Дефолтные пароли
|
||||
REDIS_PASSWORD=redis_pass # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
|
||||
POSTGRES_PASSWORD=guacamole_pass # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
|
||||
SYSTEM_ADMIN_PASSWORD=guacadmin # ← Предупреждение + подтверждение
|
||||
```
|
||||
|
||||
### **❌ НЕПРАВИЛЬНО:**
|
||||
```env
|
||||
# Пароли не установлены
|
||||
# REDIS_PASSWORD= # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
|
||||
# POSTGRES_PASSWORD= # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
|
||||
SYSTEM_ADMIN_PASSWORD=SecurePass123!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 **Процесс деплоя:**
|
||||
|
||||
```
|
||||
1. Проверка requirements ✅
|
||||
2. Загрузка .env ✅
|
||||
3. Проверка REDIS_PASSWORD ✅
|
||||
4. Проверка POSTGRES_PASSWORD ✅
|
||||
5. Проверка SYSTEM_ADMIN credentials ✅
|
||||
6. Генерация SQL с вашими credentials ✅
|
||||
7. Запуск контейнеров ✅
|
||||
8. Проверка что всё работает ✅
|
||||
```
|
||||
|
||||
**Если любая проверка провалится → деплой остановится!**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **FAQ:**
|
||||
|
||||
### **Q: Можно ли использовать любой логин для админа?**
|
||||
✅ **ДА!** Установите `SYSTEM_ADMIN_USERNAME=любое_имя`
|
||||
|
||||
### **Q: Нужно ли менять пароль в Guacamole UI после деплоя?**
|
||||
❌ **НЕТ!** Deploy скрипт автоматически создаст пользователя с вашим паролем.
|
||||
|
||||
### **Q: Что если я забуду установить пароль?**
|
||||
✅ **Deploy скрипт не запустится** и покажет что именно нужно исправить.
|
||||
|
||||
### **Q: Можно ли использовать docker compose up напрямую?**
|
||||
⚠️ **Можно, НО** без проверок deploy скрипта. Лучше использовать `./deploy.sh`.
|
||||
|
||||
### **Q: Где хранить пароли?**
|
||||
💾 В password manager (1Password, LastPass, Bitwarden) или secrets vault (HashiCorp Vault).
|
||||
|
||||
---
|
||||
|
||||
## 📚 **Дополнительные ресурсы:**
|
||||
|
||||
- `AUTO_DEPLOY_GUIDE.md` - подробное руководство по deploy
|
||||
- `HARDCODED_PASSWORDS_FIX.md` - что было исправлено
|
||||
- `QUICK_START_CUSTOM_ADMIN.md` - быстрый старт
|
||||
- `production.env` - template с комментариями
|
||||
|
||||
---
|
||||
|
||||
**Готово! Теперь система полностью безопасна и настраивается через .env!** 🚀
|
||||
|
||||
Reference in New Issue
Block a user