# 🌍 Changelog: ΠŸΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для доступа ΠΈΠ· Π Π€ **Π”Π°Ρ‚Π°:** 3 ноября 2025 **ВСрсия:** 1.1.0 **Автор:** NakamaSpace Development Team --- ## πŸ“ Π§Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния #### 1. ΠŸΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ эндпоинт `/api/search/proxy/:encodedUrl` для проксирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с e621 ΠΈ gelbooru Ρ‡Π΅Ρ€Π΅Π· ваш сСрвСр. **Π€Π°ΠΉΠ»:** `backend/routes/search.js` **ИзмСнСния:** - βœ… Ѐункция `createProxyUrl(originalUrl)` - конвСртация URL Π² прокси-URL - βœ… Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚ `GET /api/search/proxy/:encodedUrl` - стриминг ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - βœ… Whitelist Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ бСзопасности - βœ… HTTP ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° 24 часа - βœ… Timeout 30 сСкунд для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ - βœ… АвтоматичСская Π·Π°ΠΌΠ΅Π½Π° URL Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… API #### 2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ ```javascript [ 'e621.net', 'static1.e621.net', 'gelbooru.com', 'img3.gelbooru.com', 'img2.gelbooru.com', 'img1.gelbooru.com', 'simg3.gelbooru.com', 'simg4.gelbooru.com' ] ``` #### 3. ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ эндпоинты - `/api/search/furry` - Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ проксированныС URL - `/api/search/anime` - Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ проксированныС URL --- ## πŸ“š ОбновлСнная докумСнтация ### ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹: 1. βœ… `README.md` - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° информация ΠΎ проксировании Π² Ρ€Π°Π·Π΄Π΅Π» "Поиск" 2. βœ… `DEPLOYMENT.md` - Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» "Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ· Π Π€" 3. βœ… `PROJECT_STRUCTURE.md` - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ список API эндпоинтов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 4. βœ… `SETUP.md` - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ эндпоинт проксирования 5. βœ… `PROXY_INFO.md` (Π½ΠΎΠ²Ρ‹ΠΉ) - подробная докумСнтация ΠΎ проксировании --- ## πŸ”§ ВСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ ### ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ URL URL ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² base64: ```javascript const encodedUrl = Buffer.from(originalUrl).toString('base64'); // https://static1.e621.net/image.jpg β†’ aHR0cHM6Ly9zdGF0aWMxLmU2MjEubmV0L2ltYWdlLmpwZw== ``` ### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прокси-URL ``` /api/search/proxy/aHR0cHM6Ly9zdGF0aWMxLmU2MjEubmV0L2RhdGEvc2FtcGxlLzEyLzM0LzEyMzQ1Njc4OTBhYmNkZWYuanBn ``` ### HTTP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ```javascript { 'User-Agent': 'NakamaSpace/1.0', 'Referer': urlObj.origin, 'Content-Type': response.headers['content-type'], 'Cache-Control': 'public, max-age=86400', 'Content-Length': response.headers['content-length'] } ``` --- ## βœ… ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° 1. **Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Π Π€** - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· VPN 2. **Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ** - whitelist Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΉ 3. **ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ** - ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° источники 4. **ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ** - Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ автоматичСски, Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 5. **Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ** - сохраняСт всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ --- ## 🎯 ВрСбования ΠΊ дСплою ### ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования - Π‘Π΅Ρ€Π²Π΅Ρ€ с доступом ΠΊ e621.net ΠΈ gelbooru.com - Достаточная пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ для Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - **РСкомСндация:** сСрвСр Π²Π½Π΅ Π Π€ (Railway, Heroku, DigitalOcean) ### ΠžΡ†Π΅Π½ΠΊΠ° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° - Preview: ~100-500 KB Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ - ПолноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: 1-10 MB - 1000 запросов поиска: ~500 MB - 5 GB --- ## πŸ§ͺ ВСстированиС ### Π ΡƒΡ‡Π½ΠΎΠ΅ тСстированиС 1. ЗапуститС сСрвСр 2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» "Поиск" 3. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поиск 4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ DevTools β†’ Network 5. URL ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с `/api/search/proxy/` ### АвтоматичСскиС тСсты ```bash # ВСст проксирования (Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ) npm run test:proxy ``` --- ## πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ### Π›ΠΎΠ³ΠΈ ошибок ВсС ошибки проксирования Π»ΠΎΠ³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² консоль: ``` Ошибка проксирования изобраТСния: [error message] ``` ### ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ для отслСТивания - ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ проксированных запросов - БрСдняя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ - ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ ошибок (403, 500, timeout) - ОбъСм Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° --- ## πŸ”„ ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ βœ… Полная обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ βœ… НС трСбуСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ βœ… НС трСбуСтся миграция Π΄Π°Π½Π½Ρ‹Ρ… βœ… Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ API эндпоинты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅ --- ## πŸš€ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги ### Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ - [ ] Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Redis кэш для проксированных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - [ ] ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° - [ ] CDN ΠΏΠ΅Ρ€Π΅Π΄ прокси для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ - [ ] АвтоматичСскиС тСсты для проксирования - [ ] Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π»Π΅Ρ‚Ρƒ --- ## πŸ™‹ FAQ **Q: Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ это Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅?** A: Π”Π°, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ автоматичСски. **Q: МоТно Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ проксированиС?** A: Π”Π°, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ `createProxyUrl()` Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… API. **Q: ВлияСт Π»ΠΈ это Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ?** A: Минимально. ΠŸΠ΅Ρ€Π²Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π½ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ компСнсируСт это. **Q: БСзопасно Π»ΠΈ это?** A: Π”Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ whitelist Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° источников. --- ## πŸ‘ Благодарности Бпасибо сообщСству NakamaSpace Π·Π° Ρ„ΠΈΠ΄Π±Π΅ΠΊ ΠΈ запросы Π½Π° эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ! --- **Π“ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ использованию!** πŸŽ‰ Для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. [PROXY_INFO.md](PROXY_INFO.md)