# Управление Credentials Postiz

Скрипт `update-credentials.sh` позволяет быстро добавлять и обновлять учетные данные социальных сетей без ручного редактирования `.env` файла.

## Использование

### Просмотр текущих credentials

```bash
ssh ubuntu@51.89.231.46
/opt/postiz-config/update-credentials.sh list
```

**Вывод:**
```
Current Provider Credentials:

✓  FACEBOOK: ID=2494242755... Secret=75a5dc7a0d...
⚠  TIKTOK: Not configured
⚠  LINKEDIN: Not configured
⚠  X: Not configured
⚠  YOUTUBE: Not configured
⚠  TELEGRAM: Not configured
```

### Добавить/обновить YouTube

```bash
/opt/postiz-config/update-credentials.sh youtube 'CLIENT_ID' 'CLIENT_SECRET'
```

**Пример:**
```bash
/opt/postiz-config/update-credentials.sh youtube 'AIzaSyDvqNl9w5-J7K3M4z1x2c3v4b5n6m7l8' 'GOCSPX-1a2b3c4d5e6f7g8h9i0j'
```

### Добавить/обновить TikTok

```bash
/opt/postiz-config/update-credentials.sh tiktok 'CLIENT_ID' 'CLIENT_SECRET'
```

### Добавить/обновить LinkedIn

```bash
/opt/postiz-config/update-credentials.sh linkedin 'CLIENT_ID' 'CLIENT_SECRET'
```

### Добавить/обновить X (Twitter)

```bash
/opt/postiz-config/update-credentials.sh x 'API_KEY' 'API_SECRET'
```

### Добавить/обновить Telegram

```bash
/opt/postiz-config/update-credentials.sh telegram 'BOT_NAME' 'BOT_TOKEN'
```

### Обновить Facebook

```bash
/opt/postiz-config/update-credentials.sh facebook 'APP_ID' 'APP_SECRET'
```

## Как работает скрипт

1. **Обновляет .env файл** - добавляет или изменяет значения в `/opt/postiz-config/.env`
2. **Перезагружает сервисы** - автоматически перезапускает backend, workers и frontend через PM2
3. **Показывает результат** - выводит текущее состояние всех credentials

## Примеры

### Добавить YouTube канал

```bash
/opt/postiz-config/update-credentials.sh youtube 'AIzaSyDvqNl9w5-J7K3M' 'GOCSPX-1a2b3c4d5e'
```

Скрипт:
- ✓ Обновит `YOUTUBE_CLIENT_ID` в `.env`
- ✓ Обновит `YOUTUBE_CLIENT_SECRET` в `.env`
- ✓ Перезагрузит backend процессы
- ✓ Выведет обновленный список credentials

### Добавить TikTok

```bash
/opt/postiz-config/update-credentials.sh tiktok 'cv12345abc' 'secret123xyz'
```

### Обновить Facebook (если поменялись ключи)

```bash
/opt/postiz-config/update-credentials.sh facebook '24942427558777493' '75a5dc7a0d45c27d6e580d95806722d5'
```

## Получение Credentials

### YouTube
1. Перейти в [Google Cloud Console](https://console.cloud.google.com/)
2. Создать проект
3. Включить YouTube Data API v3
4. Создать OAuth 2.0 credentials (Тип: Web application)
5. Скопировать Client ID и Client Secret

### TikTok
1. Перейти на [TikTok Developers](https://developers.tiktok.com/)
2. Создать приложение
3. Запросить доступ к TikTok API
4. Скопировать Client Key и Client Secret

### LinkedIn
1. Перейти на [LinkedIn Developers](https://www.linkedin.com/developers/)
2. Создать приложение
3. В настройках найти "Credentials"
4. Скопировать Client ID и Client Secret

### X (Twitter)
1. Перейти в [Twitter Developer Portal](https://developer.twitter.com/)
2. Создать приложение
3. В "Keys and tokens" найти API Key и API Secret Key
4. Скопировать оба значения

### Telegram
1. Найти [@BotFather](https://t.me/BotFather) в Telegram
2. Создать нового бота командой `/newbot`
3. Скопировать Bot Token
4. Придумать Bot Name (может быть любым удобным именем)

## Структура .env

После использования скрипта, `.env` файл будет иметь структуру:

```env
FACEBOOK_APP_ID=24942427558777493
FACEBOOK_APP_SECRET=75a5dc7a0d45c27d6e580d95806722d5

YOUTUBE_CLIENT_ID=AIzaSyDvqNl9w5-J7K3M4z1x2c3v4b5n6m7l8
YOUTUBE_CLIENT_SECRET=GOCSPX-1a2b3c4d5e6f7g8h9i0j

TIKTOK_CLIENT_ID=cv12345abc
TIKTOK_CLIENT_SECRET=secret123xyz

LINKEDIN_CLIENT_ID=...
LINKEDIN_CLIENT_SECRET=...

X_API_KEY=...
X_API_SECRET=...

TELEGRAM_BOT_NAME=...
TELEGRAM_BOT_TOKEN=...
```

## Устранение проблем

### Скрипт не найден
```bash
# Убедитесь, что вы на сервере
ssh ubuntu@51.89.231.46

# Проверьте наличие скрипта
ls -la /opt/postiz-config/update-credentials.sh

# Дайте права на выполнение
chmod +x /opt/postiz-config/update-credentials.sh
```

### Credentials не применились
```bash
# Перезагрузите контейнер вручную
cd /opt/postiz-config
docker-compose restart

# Проверьте логи
docker logs postiz | tail -50
```

### Неправильно ввел credentials
```bash
# Просто запустите скрипт снова с правильными значениями
/opt/postiz-config/update-credentials.sh youtube 'CORRECT_ID' 'CORRECT_SECRET'
```

## Синхронизация с Mac

Скрипт находится в `/opt/postiz-config/` и автоматически синхронизируется через Syncthing:

1. **На Mac:** `/Volumes/SSD/Aimpress_Cloud_Prod/opt/postiz-config/`
2. **На сервере:** `/opt/postiz-config/` (через Syncthing)

При изменении `.env` файла через скрипт на сервере, изменения автоматически синхронизируются обратно на Mac.

## Безопасность

⚠️ **Важно:** Credentials хранятся в `.env` файле, который:
- **Не коммитится в Git** (исключен через `.gitignore`)
- **Синхронизируется Syncthing** между Mac и сервером
- **Должен быть защищен** (не делитесь файлом и его содержимым)

Никогда не коммитьте `.env` файл в Git!

---

**Версия:** 1.0
**Последнее обновление:** 2025-11-29
