# πŸ“‹ Π‘Π²ΠΎΠ΄ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Nakama ## βœ… Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ### 1. ✨ Π—Π°ΠΌΠ΅Π½Π° NakamaHost Π½Π° Nakama **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **ИзмСнСния:** - `backend/server.js` - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ сообщСниС API - `backend/bot.js` - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ подписи ΠΊ ΠΌΠ΅Π΄ΠΈΠ° (3 мСста) - `frontend/index.html` - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страницы - `frontend/src/pages/Feed.jsx` - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ прилоТСния - `frontend/src/pages/Profile.jsx` - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ тСкст ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° --- ### 2. πŸ”§ Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ мСню Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π² систСмС ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **ИзмСнСния Π² `moderation/frontend/src/App.jsx`:** - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΆΠ°Π»ΠΎΠ±Ρ‹ - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ просмотр ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ постС (Π°Π²Ρ‚ΠΎΡ€, содСрТаниС, ΠΌΠ΅Π΄ΠΈΠ°) - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€Π΅Π²ΡŒΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Π΄ΠΎ 3 ΡˆΡ‚ΡƒΠΊ) - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ дСйствия для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с постом прямо ΠΈΠ· Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π°: - Π£Π΄Π°Π»ΠΈΡ‚ΡŒ пост - Π—Π°Π±Π°Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π° - РСшСно - ΠžΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΡ€Ρ‚ - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ сообщСниС "НСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠ²" ΠΊΠΎΠ³Π΄Π° Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π΅Ρ‚ --- ### 3. ✏️ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ рСдактирования постов Π² систСмС ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **ИзмСнСния Π² `backend/models/Post.js`:** - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ `publishedToChannel` (Boolean) - пост ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² ΠΊΠ°Π½Π°Π» - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ `channelMessageId` (Number) - ID сообщСния Π² Telegram ΠΊΠ°Π½Π°Π»Π΅ - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ `adminNumber` (Number) - Π½ΠΎΠΌΠ΅Ρ€ Π°Π΄ΠΌΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ `editedAt` (Date) - врСмя послСднСго рСдактирования **ИзмСнСния Π² `backend/routes/modApp.js`:** - ОбновлСн `PUT /posts/:id` с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΡ€Π°Π²: - Π’Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ посты - Админы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свои посты ΠΈΠ· ΠΊΠ°Π½Π°Π»Π° (ΠΏΠΎ adminNumber) - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ поста Π² Telegram ΠΊΠ°Π½Π°Π»Π΅ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ - ОбновлСн `GET /posts` для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ΠΊΠ°Π½Π°Π»Π΅ - ОбновлСн `POST /channel/publish` для создания записи Π² Π‘Π” с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°Π½Π°Π»Π΅ **ИзмСнСния Π² `backend/bots/serverMonitor.js`:** - `sendChannelMediaGroup` Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ messageId - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция `updateChannelMessage` для обновлСния подписи ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ Π² ΠΊΠ°Π½Π°Π»Π΅ --- ### 4. πŸ–ΌοΈ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅Π΄ΠΈΠ° Π² систСму ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **ИзмСнСния Π² `moderation/frontend/src/App.jsx`:** - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ изобраТСниям Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ URLs - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с fallback - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ° Π² постах - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ° Π² Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π°Ρ… - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ console.error для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ --- ### 5. πŸ’¬ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ админского Ρ‡Π°Ρ‚Π° **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **ИзмСнСния Π² `moderation/frontend/src/App.jsx`:** - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π»ΠΎΠ³Π³ΠΈΠ½Π³ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ WebSocket - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ получСния/ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ - Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ timeout ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎ 10 сСкунд - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ `connect_error` для логирования ошибок - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΊ послСднСму ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ (setTimeout 100ms) - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ --- ### 6. πŸ—„οΈ Настройка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π” Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ (трСбуСтся ручная настройка) **Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ» `docker-compose.yml`:** - MongoDB URI настроСн Π½Π° `mongodb://103.80.87.247:27017/nakama` - Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная окруТСния `MONGODB_URI` - НастроСно ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ для Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π” **Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ» `setup-remote-storage.sh`:** - Π‘ΠΊΡ€ΠΈΠΏΡ‚ для автоматичСской настройки SSHFS - ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ: - `/var/nakama/db` β†’ `/mnt/nakama-db` - `/var/nakama/media` β†’ `/mnt/nakama-media` - `/var/nakama/backups` β†’ `/mnt/nakama-backups` - ΠžΠΏΡ†ΠΈΡ автомонтирования Ρ‡Π΅Ρ€Π΅Π· `/etc/fstab` **Π‘ΠΎΠ·Π΄Π°Π½Π° докумСнтация `DEPLOYMENT_GUIDE.md`:** - ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция ΠΏΠΎ установкС MongoDB Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС - Настройка Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ MongoDB - Настройка ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа - Настройка firewall --- ### 7. πŸ’Ύ Настройка автоматичСских Π±Π΅ΠΊΠ°ΠΏΠΎΠ² Π‘Π” **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ (трСбуСтся ручная настройка cron) **Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ» `backup-cron.sh`:** - АвтоматичСскоС созданиС Π±Π΅ΠΊΠ°ΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· `mongodump` - Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π±Π΅ΠΊΠ°ΠΏΠΎΠ² Π² .tar.gz Π°Ρ€Ρ…ΠΈΠ²Ρ‹ - АвтоматичСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старых Π±Π΅ΠΊΠ°ΠΏΠΎΠ² (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30 Π΄Π½Π΅ΠΉ) - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ - Π¦Π²Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ для удобства - ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Telegram увСдомлСния **Π‘ΠΎΠ·Π΄Π°Π½Π° докумСнтация `CRON_SETUP.md`:** - Пошаговая инструкция настройки cron - ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… расписаний: - Π•ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π΅ΠΊΠ°ΠΏΡ‹ (Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ Π² 3:00) - Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ Π±Π΅ΠΊΠ°ΠΏΡ‹ - НСсколько Ρ€Π°Π· Π² нСдСлю - Настройка Telegram ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ - Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ ΠΈΠ· Π±Π΅ΠΊΠ°ΠΏΠ° **Π”ΠΎΠ±Π°Π²Π»Π΅Π½ сСрвис `backup` Π² `docker-compose.yml`:** - Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для запуска Π±Π΅ΠΊΠ°ΠΏΠΎΠ² - Бмонтированная дирСктория для Π±Π΅ΠΊΠ°ΠΏΠΎΠ² --- ### 8. πŸ“ Настройка хранСния ΠΌΠ΅Π΄ΠΈΠ° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ (трСбуСтся ручная настройка) **ИзмСнСния Π² `docker-compose.yml`:** - Backend ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ `/mnt/nakama-media` Π² `/app/backend/uploads` - ВсС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ° автоматичСски ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр - НастроСно Ρ‡Π΅Ρ€Π΅Π· SSHFS ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ **Π‘ΠΎΠ·Π΄Π°Π½ скрипт `setup-remote-storage.sh`:** - АвтоматичСская установка SSHFS - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС - ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· SSH - ΠžΠΏΡ†ΠΈΡ автомонтирования ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы --- ### 9. 🐳 Настройка Docker для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² **Бтатус:** βœ… Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ **Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹:** 1. **`Dockerfile.backend`** - Multi-stage сборка для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ - Node 20 Alpine (ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€) - Production зависимости - АвтоматичСскоС созданиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ для uploads 2. **`Dockerfile.frontend`** - Multi-stage сборка (builder + nginx) - Vite сборка с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ - Nginx для Ρ€Π°Π·Π΄Π°Ρ‡ΠΈ статики - Gzip сТатиС - ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² 3. **`Dockerfile.moderation`** - Аналогично frontend - ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для систСмы ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ - Nginx с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ 4. **`docker-compose.yml`** - Полная оркСстрация всСх сСрвисов: - backend (Node.js API) - frontend (основноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) - moderation (систСма ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ) - mongodb (Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…) - backup (сСрвис Π±Π΅ΠΊΠ°ΠΏΠΎΠ²) - НастроСнныС сСти - Volumes для Π΄Π°Π½Π½Ρ‹Ρ… - Health checks - ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния - Зависимости ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами 5. **`nginx.conf` ΠΈ `nginx-moderation.conf`** - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ конфигурация nginx - Gzip сТатиС - ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ статики - SPA Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³ (fallback Π½Π° index.html) 6. **`.dockerignore`** - Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΠ±Ρ€Π°Π·ΠΎΠ² - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ² - УскорСниС сборки 7. **`.env.example`** - ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ - ВсС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния - ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ --- ## πŸ“š Бозданная докумСнтация ### 1. **DEPLOYMENT_GUIDE.md** - ПолноС руководство ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ - ВрСбования ΠΊ систСмС - Настройка ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра - Установка ΠΈ настройка MongoDB - Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ с Docker - Настройка nginx reverse proxy - SSL сСртификаты - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ обслуТиваниС - РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ### 2. **CRON_SETUP.md** - Настройка автоматичСских Π±Π΅ΠΊΠ°ΠΏΠΎΠ² - Пошаговая инструкция - Бинтаксис cron - ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ расписаний - Настройка ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π΅ΠΊΠ°ΠΏΠ°ΠΌΠΈ - ВосстановлСниС ΠΈΠ· Π±Π΅ΠΊΠ°ΠΏΠ° ### 3. **CHANGES_SUMMARY.md** - Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» - Полная сводка всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ запуску --- ## πŸš€ Быстрый старт ### ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° 1. **НастройтС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр:** ```bash # Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям Π² DEPLOYMENT_GUIDE.md ssh root@103.80.87.247 # УстановитС MongoDB ΠΈ создайтС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ``` 2. **НастройтС локальноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅:** ```bash cd /Users/glpshchn/Desktop/nakama # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ .env Ρ„Π°ΠΉΠ» cp .env.example .env nano .env # Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ``` 3. **НастройтС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ):** ```bash ./setup-remote-storage.sh ``` ### Запуск с Docker ```bash # Π‘Π±ΠΎΡ€ΠΊΠ° всСх сСрвисов docker-compose build # Запуск Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ docker-compose up -d # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса docker-compose ps # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² docker-compose logs -f ``` ### Настройка Π±Π΅ΠΊΠ°ΠΏΠΎΠ² ```bash # Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ скрипт Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр scp backup-cron.sh root@103.80.87.247:/usr/local/bin/ # Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям Π² CRON_SETUP.md ssh root@103.80.87.247 chmod +x /usr/local/bin/backup-cron.sh crontab -e # Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅: 0 3 * * 0 /usr/local/bin/backup-cron.sh >> /var/log/nakama-backup.log 2>&1 ``` ### Доступ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ПослС запуска: - **Frontend (основноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅):** http://localhost:5173 - **Moderation (систСма ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΠΈ):** http://localhost:5174 - **Backend API:** http://localhost:3000 - **Health check:** http://localhost:3000/health --- ## πŸ”§ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для управлСния ### Docker ```bash # ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС сСрвисы docker-compose down # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ сСрвис docker-compose restart backend # ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ docker-compose up -d --build # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сСрвиса docker-compose logs -f backend # Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ docker-compose exec backend sh ``` ### Π‘Π΅ΠΊΠ°ΠΏΡ‹ ```bash # Π ΡƒΡ‡Π½ΠΎΠΉ Π±Π΅ΠΊΠ°ΠΏ ssh root@103.80.87.247 '/usr/local/bin/backup-cron.sh' # Бписок Π±Π΅ΠΊΠ°ΠΏΠΎΠ² ssh root@103.80.87.247 'ls -lh /var/nakama/backups/' # ВосстановлСниС ssh root@103.80.87.247 cd /var/nakama/backups tar -xzf nakama_backup_YYYY-MM-DD_HH-MM-SS.tar.gz mongorestore --uri="mongodb://localhost:27017" --drop --gzip --db nakama nakama_backup_*/nakama/ ``` --- ## πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ систСмы ```bash # Бтатус Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² docker-compose ps # ИспользованиС рСсурсов docker stats # Π›ΠΎΠ³ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ docker-compose logs -f # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° MongoDB ssh root@103.80.87.247 'systemctl status mongod' # Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ мСсто Π½Π° дискС ssh root@103.80.87.247 'df -h' ``` --- ## ⚠️ Π’Π°ΠΆΠ½Ρ‹Π΅ замСчания 1. **Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ MongoDB:** - НастройтС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ MongoDB (см. DEPLOYMENT_GUIDE.md) - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ firewall для ограничСния доступа ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ 27017 - РСгулярно обновляйтС MongoDB 2. **ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния:** - Никогда Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ `.env` Ρ„Π°ΠΉΠ» Π² git - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ сСкрСтныС ΠΊΠ»ΡŽΡ‡ΠΈ - JWT_SECRET Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ случайной строкой ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 32 символа 3. **Π‘Π΅ΠΊΠ°ΠΏΡ‹:** - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒ создания Π±Π΅ΠΊΠ°ΠΏΠΎΠ² - ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ провСряйтС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ восстановлСния - Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ Π±Π΅ΠΊΠ°ΠΏΡ‹ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ дискС/сСрвСрС 4. **ОбновлСния:** - Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±Π΅ΠΊΠ°ΠΏ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ - ВСстируйтС обновлСния Π½Π° dev ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ - Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ CHANGELOG ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ 5. **ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ:** - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŒΡ‚Π΅ использованиС рСсурсов - НастройтС индСксы Π² MongoDB для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… запросов - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Redis для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) --- ## πŸ†˜ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: 1. **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π»ΠΎΠ³ΠΈ:** ```bash docker-compose logs -f ``` 2. **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ:** - DEPLOYMENT_GUIDE.md - CRON_SETUP.md 3. **Π‘Π²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ:** - Telegram: https://t.me/NakamaReportbot - GitHub Issues: [создайтС issue] --- ## πŸ“ Бписок Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ВсС измСнСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ: ### Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹: - backend/server.js - backend/bot.js - backend/models/Post.js - backend/routes/modApp.js - backend/bots/serverMonitor.js - frontend/index.html - frontend/src/pages/Feed.jsx - frontend/src/pages/Profile.jsx - moderation/frontend/src/App.jsx ### НовыС Ρ„Π°ΠΉΠ»Ρ‹: - Dockerfile.backend - Dockerfile.frontend - Dockerfile.moderation - docker-compose.yml - nginx.conf - nginx-moderation.conf - .dockerignore - backup-cron.sh - setup-remote-storage.sh - DEPLOYMENT_GUIDE.md - CRON_SETUP.md - CHANGES_SUMMARY.md --- **ВСрсия:** 2.2.0 **Π”Π°Ρ‚Π°:** 20 ноября 2025 **Автор:** AI Assistant (Claude Sonnet 4.5)