Skip to content

# Відновлення логотипів та банерів

## Статус

Логотипи та банери втрачені, але URLs в БД оновлено на правильний формат MinIO.

### Поточний стан

- ✅ URLs в БД оновлено на формат MinIO (`https://assets.daarion.space/daarion-assets/microdao/logo/{slug}.png`)
- ❌ Файли відсутні в MinIO (потрібно завантажити)
- ✅ Система готова до завантаження нових файлів через UI
- ✅ Автоматичне відновлення URLs після відновлення БД

## Що зроблено

1. Оновлено `logo_url` для всіх MicroDAO на правильний формат MinIO URLs
2. Очищено `banner_url` (встановлено NULL) для старих форматів
3. Створено скрипт `scripts/restore-assets-to-minio.py` для майбутнього використання
4. Створено скрипт `scripts/fix-asset-urls.sh` для автоматичного виправлення URLs
5. Інтегровано виправлення URLs в `scripts/monitor-db-stability.sh`

## Автоматичне відновлення URLs

При відновленні БД з бекапу, скрипт `monitor-db-stability.sh` автоматично: 1. Відновлює БД з бекапу 2. Застосовує міграції 3. Синхронізує агентів 4. Виправляє URLs логотипів та банерів (викликає `fix-asset-urls.sh`)

## Як відновити логотипи та банери

### Варіант 1: Завантажити через UI (рекомендовано)

1. Відкрити `https://daarion.space/microdao/{slug}/settings` (або Branding секцію)
2. Натиснути "Upload Logo" або "Upload Banner"
3. Вибрати файл зображення
4. Файл автоматично завантажиться в MinIO та URL оновиться в БД

### Варіант 2: Виправити URLs вручну

    cd /opt/microdao-daarion
    bash scripts/fix-asset-urls.sh

Це оновить всі старі URLs на правильний формат MinIO.

### Варіант 3: Завантажити через API

    # Завантажити логотип
    curl -X POST https://daarion.space/api/city/assets/upload \
      -F "file=@logo.png" \
      -F "type=microdao_logo" \
      -H "Authorization: Bearer YOUR_TOKEN"

    # Оновити logo_url в БД
    curl -X PATCH https://daarion.space/api/microdao/{slug}/branding \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_TOKEN" \
      -d '{"logo_url": "https://assets.daarion.space/daarion-assets/microdao/logo/..."}'

### Варіант 4: Завантажити напряму в MinIO

    # Використовуючи MinIO CLI
    docker exec daarion-minio mc cp logo.png minio/daarion-assets/microdao/logo/{slug}.png

    # Або через MinIO Console
    # Відкрити http://localhost:9001 (або https://minio.daarion.space)
    # Завантажити файли в bucket daarion-assets/microdao/logo/

## Структура файлів в MinIO

    daarion-assets/
    ├── microdao/
    │   ├── logo/
    │   │   ├── daarion.png
    │   │   ├── clan.png
    │   │   ├── soul.png
    │   │   └── ...
    │   └── banner/
    │       ├── daarion.png
    │       └── ...
    └── agents/
        └── avatar/
            └── ...

## Перевірка

### Перевірити URLs в БД

    docker exec daarion-postgres psql -U postgres -d daarion -c "
    SELECT slug,
           CASE WHEN logo_url LIKE 'https://%' THEN '✅' ELSE '❌' END as logo,
           CASE WHEN banner_url IS NULL THEN 'NULL' WHEN banner_url LIKE 'https://%' THEN '✅' ELSE '❌' END as banner
    FROM microdaos
    ORDER BY slug;
    "

### Перевірити файли в MinIO

    docker exec daarion-minio mc ls -r minio/daarion-assets/microdao/

## Після відновлення БД

Якщо БД була відновлена з бекапу і URLs знову стали старими:

    # Автоматично (через monitor-db-stability.sh)
    # Скрипт автоматично виправить URLs при відновленні

    # Або вручну
    cd /opt/microdao-daarion
    bash scripts/fix-asset-urls.sh

## Примітки

- Старі файли логотипів (`/assets/logos/*.png`) втрачені під час міграції
- Нові файли потрібно завантажити вручну через UI або API
- URLs в БД вже налаштовані на правильний формат, тому після завантаження файлів вони автоматично відображатимуться
- При відновленні БД з бекапу, URLs автоматично виправляються скриптом `monitor-db-stability.sh`