AWM — автономное развёртывание Apache Guacamole 1.5.5

1. Скопируйте архив на отдельную ВМ с Docker Engine и Compose v2.
2. tar -xzf awm-guacamole-standalone-1.5.5.tar.gz && cd awm-guacamole
3. cp .env.example .env
4. Задайте в .env пароли GUACAMOLE_DB_PASSWORD и GUACAMOLE_ADMIN_PASSWORD
   (пример: openssl rand -base64 24 | tr -d '/+=' | head -c 24)
5. bash prepare-drive.sh
   (создаёт ./drive с правами записи для guacd — нужен для кнопки «Файлы» в AWM)
6. docker compose up -d
7. В AWM: URL http://<IP-ВМ>:8080/guacamole, пользователь и пароль API из .env,
   источник данных postgresql → Проверить → Сохранить.

Образы зафиксированы в docker-compose.yml: guacamole/guacd и guacamole/guacamole 1.5.5,
postgres:15.10-alpine, busybox:1.36.1 (менять только после проверки с AWM).

Смена пароля БД: docker compose down -v, правка .env, docker compose up -d.
Порт: GUACAMOLE_HTTP_PORT в .env (по умолчанию 8080).

Передача файлов RDP (общий диск):
- На хосте каталог ./drive монтируется в guacd как /drive.
- При старте compose сервис guacd-drive-init выставляет chmod 1777 на /drive,
  чтобы пользователь guacd мог писать и отдать filesystem в сессию.
- В подключении AWM: «Общий диск» = да, путь /drive, «Создать путь диска» = да
  (включается по умолчанию при сохранении карточки RDP).
- Без каталога с записью у guacd в AWM остаётся «Каталог недоступен…»,
  либо сессия RDP сразу отключается (Disconnected).

Обновление со старого пакета (named volume guac-drive):
1. docker compose down
2. bash prepare-drive.sh
3. При необходимости скопировать файлы из старого тома в ./drive вручную
   (docker volume inspect / docker run --rm -v …).
4. docker compose up -d
