🧾 Как я заменил Supabase на свой сервер с FastAPI + Docker
В ScreenCat можно покупать скины, и раньше это работало через Supabase Edge Functions. Но теперь у нас свой сервер: FastAPI + PostgreSQL внутри Docker, и это стало огромным апгрейдом.
🐣 Немного контекста
Supabase - альтернатива Firebase:
- PostgreSQL + генерация API
- Storage, Auth
- Edge Functions на Deno
Работало, но были проблемы:
- 💤 Функции «засыпали» -> первый запрос после простоя - 3+ сек
- 🔌 Иногда Robokassa не могла достучаться (cold start)
- 🤯 Невозможно нормально логировать
- 🧱 Всё чёрным ящиком
🐳 Почему я перешёл на Docker + FastAPI
Решил развернуть свой backend (GPT мне подсказала что нужно выбирать 😀):
• FastAPI - простой и быстрый Python-сервер
• PostgreSQL - та же база, но у себя
• Docker - магия! Поднял всё одним docker-compose up
• Robokassa бьёт в /result endpoint
⚙️ Пример кода: проверка подписи и UPSERT
✨ Что работает сейчас
✅ POST /payment/robokassa/result — принимает оплату
✅ GET /payment/robokassa/status — проверка покупки по email и скину
✅ 🔐 Проверка MD5-подписи от Robokassa
✅ 📬 Уведомление в Telegram о каждой оплате
✅ 🧠 Вся база под контролем — можно смотреть, фильтровать, восстанавливать покупки
📚 Документация API (Swagger, пж не дудосьте )
👉 https://pay.prefire.ru/docs
(Работает сразу из коробки благодаря FastAPI ❤️)
В ScreenCat можно покупать скины, и раньше это работало через Supabase Edge Functions. Но теперь у нас свой сервер: FastAPI + PostgreSQL внутри Docker, и это стало огромным апгрейдом.
🐣 Немного контекста
Supabase - альтернатива Firebase:
- PostgreSQL + генерация API
- Storage, Auth
- Edge Functions на Deno
Работало, но были проблемы:
- 💤 Функции «засыпали» -> первый запрос после простоя - 3+ сек
- 🔌 Иногда Robokassa не могла достучаться (cold start)
- 🤯 Невозможно нормально логировать
- 🧱 Всё чёрным ящиком
🐳 Почему я перешёл на Docker + FastAPI
Решил развернуть свой backend (GPT мне подсказала что нужно выбирать 😀):
• FastAPI - простой и быстрый Python-сервер
• PostgreSQL - та же база, но у себя
• Docker - магия! Поднял всё одним docker-compose up
• Robokassa бьёт в /result endpoint
⚙️ Пример кода: проверка подписи и UPSERT
signature = md5_upper(f"{OutSum}:{InvId}:{password2}:Shp_email={Shp_email}:Shp_skin={Shp_skin}")
if SignatureValue.upper() != signature:
raise HTTPException(403, detail="Invalid signature")
stmt = insert(Purchase).values(
invoice_id=InvId,
skin=Shp_skin,
status="paid",
email=Shp_email,
).on_conflict_do_update(
index_elements=["invoice_id"],
set_={"skin": Shp_skin, "status": "paid", "email": Shp_email}
)
await db.execute(stmt)
await db.commit()
✨ Что работает сейчас
✅ POST /payment/robokassa/result — принимает оплату
✅ GET /payment/robokassa/status — проверка покупки по email и скину
✅ 🔐 Проверка MD5-подписи от Robokassa
✅ 📬 Уведомление в Telegram о каждой оплате
✅ 🧠 Вся база под контролем — можно смотреть, фильтровать, восстанавливать покупки
📚 Документация API (Swagger
👉 https://pay.prefire.ru/docs
(Работает сразу из коробки благодаря FastAPI ❤️)
PS: Такой простой сервер оказалось написать проще чем простое приложение)
PS2: Docker вообще супер простая и удобная штука, теперь использую во всех своих скриптах)
🔥10❤6👍3 2 2
🚨 Первый стрим: код, баги, коты
Запускаю стримы по разработке. Без монтажа и сценариев - просто живой процесс:
🧠 Пишу код
🪲 Ловлю баги
🧩 Думаю вслух, туплю, пробую - как есть
Темы будут разные:
• Swift / macOS / геймдев
• AI и локальные LLM
• UI, архитектура, backend, всё подряд
📺 Стримим на всех фронтах:
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
Если давно хотел спросить что-то по Swift, LLM, Prefire или просто понаблюдать за «настоящим» разработчиком - присоединяйся.
👉 Пиши в комменты, что хотел бы увидеть в первом эфире
🕓 Старт — сегодня (1 августа) в 18:30.
Подписывайся, чтобы не пропустить
Запускаю стримы по разработке. Без монтажа и сценариев - просто живой процесс:
🧠 Пишу код
🪲 Ловлю баги
🧩 Думаю вслух, туплю, пробую - как есть
Темы будут разные:
• Swift / macOS / геймдев
• AI и локальные LLM
• UI, архитектура, backend, всё подряд
📺 Стримим на всех фронтах:
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
Если давно хотел спросить что-то по Swift, LLM, Prefire или просто понаблюдать за «настоящим» разработчиком - присоединяйся.
👉 Пиши в комменты, что хотел бы увидеть в первом эфире
🕓 Старт — сегодня (1 августа) в 18:30.
Подписывайся, чтобы не пропустить
👍13🔥5 3❤2
🚀 Стрим стартует уже почти сейчас (18:00)
В прошлый раз мы час ковырялись в коде, чтобы наш 🐱 завёлся на стриме - оказалось, он не дружит с мульти-монитором. Победили!
https://youtube.com/shorts/I1kv-Wyv4tI?feature=share
Сегодня ещё посидим с котом; если всё пойдёт гладко, возможно заглянем в Prefire разбирать свежие issues (но без обещаний).
📺 Стримим на всех фронтах:
• YouTube: https://www.youtube.com/@prefire-barredy
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
Подключайтесь, будет лампово! 🎥✨
В прошлый раз мы час ковырялись в коде, чтобы наш 🐱 завёлся на стриме - оказалось, он не дружит с мульти-монитором. Победили!
https://youtube.com/shorts/I1kv-Wyv4tI?feature=share
Сегодня ещё посидим с котом; если всё пойдёт гладко, возможно заглянем в Prefire разбирать свежие issues (но без обещаний).
📺 Стримим на всех фронтах:
• YouTube: https://www.youtube.com/@prefire-barredy
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
Подключайтесь, будет лампово! 🎥
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Первый запуск AI кота | #barredy с помощью #Twitch
#shorts #swift #swiftui #ai #llm #game #indie #dev #xcodehttps://www.twitch.tv/barredy
❤12👍2
🐾 Кот vs SwiftUI
Вчера на стриме решили переписать меню кота на SwiftUI.
Через пару минут я уже сказал, что SwiftUI -говно . Ну на самом деле все не так плохо 😁
👉 В SwiftUI нельзя получить frame кнопки в статусбаре.
А без него котик не понимает, куда идти. Он же не экстрасенс 😿
📺 Вот момент, где всё пошло не так: https://youtube.com/shorts/mFTWzB6P0lI?si=tvnhh-61-r2cx8U5
Вчера на стриме решили переписать меню кота на SwiftUI.
Через пару минут я уже сказал, что SwiftUI -
👉 В SwiftUI нельзя получить frame кнопки в статусбаре.
А без него котик не понимает, куда идти. Он же не экстрасенс 😿
📺 Вот момент, где всё пошло не так: https://youtube.com/shorts/mFTWzB6P0lI?si=tvnhh-61-r2cx8U5
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
SwiftUI, говно, но …
🔥8😁6😭4
🎬 Стрим начался!
Сегодня экспериментируем по полной:
🐾 Пробуем новую LLM от Tencent - посмотрим, как она справится с ролями для кота и комментариями в реальном времени
🎨 Лезем в анимации кота - может, получится оживить хвост или добавить новые эмоции
🧑💻 Погружаемся в код - будет немного рефакторинга и, возможно, баги прямо в прямом эфире
Залетай, понаблюдай, как рождается магия - и не забудь подписаться на @prefire_iOS, если ещё не с нами!
👉 Стрим идет прямо сейчас:
- Twitch: https://twitch.tv/barredy
- Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
- YouTube: https://www.youtube.com/@prefire-barredy/streams
PS: Держите шортс про кота: https://youtube.com/shorts/bXsV8HX7v6o?feature=share
Сегодня экспериментируем по полной:
🐾 Пробуем новую LLM от Tencent - посмотрим, как она справится с ролями для кота и комментариями в реальном времени
🎨 Лезем в анимации кота - может, получится оживить хвост или добавить новые эмоции
🧑💻 Погружаемся в код - будет немного рефакторинга и, возможно, баги прямо в прямом эфире
Залетай, понаблюдай, как рождается магия - и не забудь подписаться на @prefire_iOS, если ещё не с нами!
👉 Стрим идет прямо сейчас:
- Twitch: https://twitch.tv/barredy
- Telegram: https://t.iss.one/prefire_ios (будут анонсы + иногда прямой эфир)
- YouTube: https://www.youtube.com/@prefire-barredy/streams
PS: Держите шортс про кота: https://youtube.com/shorts/bXsV8HX7v6o?feature=share
YouTube
Кот увидел видео с YouTube| #barredy #twitch #стрим #нарезки
#shorts https://www.twitch.tv/barredy
❤7🔥2 2
🚨 OpenAI выпустили gpt-oss-120b и gpt-oss-20b - это лучшие reasoning-модели с открытым кодом на сегодня.
📦 Это буквально o3 у вас дома.
Можно скачать, собрать и запустить - всё как в старые-добрые.
🤯 Последний раз OpenAI делали open-source в 2019 с GPT-2. С тех пор - тишина.
Так что это прям исторический момент.
🛠 GitHub: https://github.com/openai/gpt-oss
🧠 GGUF-модель: unsloth/gpt-oss-20b-GGUF
💾 Самый сжатый вес - 11.8 GB. Запускаем на маке.
🎥 Стримим запуск сегодня вечером в 18:30 - приходите смотреть, как o3 оживает локально.
- Twitch: https://twitch.tv/barredy
- YouTube: https://www.youtube.com/@prefire-barredy/streams
👀 Еще потестили Hunian от Tencent
Новая архитектура, реально быстрая.
Но с русским / всё плохо: путает рода и окончания 😅
🔥 Лето под знаком опенсорса. Кто бы мог подумать, что OpenAI снова Open?
📦 Это буквально o3 у вас дома.
Можно скачать, собрать и запустить - всё как в старые-добрые.
🤯 Последний раз OpenAI делали open-source в 2019 с GPT-2. С тех пор - тишина.
Так что это прям исторический момент.
🛠 GitHub: https://github.com/openai/gpt-oss
🧠 GGUF-модель: unsloth/gpt-oss-20b-GGUF
💾 Самый сжатый вес - 11.8 GB. Запускаем на маке.
🎥 Стримим запуск сегодня вечером в 18:30 - приходите смотреть, как o3 оживает локально.
- Twitch: https://twitch.tv/barredy
- YouTube: https://www.youtube.com/@prefire-barredy/streams
👀 Еще потестили Hunian от Tencent
Новая архитектура, реально быстрая.
Но с русским / всё плохо: путает рода и окончания 😅
🔥 Лето под знаком опенсорса. Кто бы мог подумать, что OpenAI снова Open?
1👍13❤🔥3🔥3 3
GPT-5: ожидания vs реальность 🤔
Потестил новую модель - честно говоря, разочарован. В реальных задачах по программированию и логическим рассуждениям GPT-5 ощущается максимум как o3, а местами даже слабее .
Что пошло не так с релизом:
- Сам запуск OpenAI назвала "bumpy" (неровным)
- Альтман признал "mega chart screwup" с диаграммами на презентации
- Противоречивые отзывы в прессе
Цифры vs практика:
На бумаге прогресс есть - SWE-bench Verified показывает 74.9% против 69.1% у o3. Но в реальной работе этого не чувствуется. Более того, в некоторых задачах результат хуже.
Мое решение:
Переключаюсь на Claude. Последние тесты показывают его превосходство, да и бенчмарки это подтверждают. Пора дать ему шанс в продуктивных задачах.
А какой ваш опыт с новыми моделями?
Потестил новую модель - честно говоря, разочарован. В реальных задачах по программированию и логическим рассуждениям GPT-5 ощущается максимум как o3
Что пошло не так с релизом:
- Сам запуск OpenAI назвала "bumpy" (неровным)
- Альтман признал "mega chart screwup" с диаграммами на презентации
- Противоречивые отзывы в прессе
Цифры vs практика:
На бумаге прогресс есть - SWE-bench Verified показывает 74.9% против 69.1% у o3. Но в реальной работе этого не чувствуется. Более того, в некоторых задачах результат хуже.
Мое решение:
Переключаюсь на Claude. Последние тесты показывают его превосходство, да и бенчмарки это подтверждают. Пора дать ему шанс в продуктивных задачах.
А какой ваш опыт с новыми моделями?
👍7🔥3😭2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Как MCP в Cursor допилил мне CatShop в Xcode
Решил проверить MCP для Xcode на реальном проекте. Взял старый CatShop - магазин был чистой заглушкой.
💻 Как шёл процесс:
1️⃣ MCP начал с разведки - сам открыл
2️⃣ Нашёл, чего не хватает - в состоянии нет данных о покупках и экипировке.
3️⃣ Починил заглушки в логике:
4️⃣ Обновил UI - в CatShopView появились кнопки «Купить» и «Экипировать» с условиями, показ цены и бонусов:
5️⃣ Добавил реакцию кота - после экипировки предметы сразу отображаются на модели:
6️⃣ Поймал мелкую ошибку - CatItem.Slot не Hashable, из-за чего не работали словари. MCP тут же сделал фикс.
🪄 Всё это было в одной сессии в Cursor: я пишу «добавь поддержку экипировки», он идёт по проекту, проверяет зависимости, сам правит импорты и обновляет логику так, чтобы всё стыковалось.
📦 Как подключить MCP к Cursor для Xcode:
В mcpServers:
⚡️ Ощущение, что MCP реально действует как разработчик - идёт по коду, понимает контекст и аккуратно встраивает изменения, пока ты просто ставишь задачи.
Решил проверить MCP для Xcode на реальном проекте. Взял старый CatShop - магазин был чистой заглушкой.
💻 Как шёл процесс:
1️⃣ MCP начал с разведки - сам открыл
ClickerState
, CatShopScenario
, CatItem
, просмотрел, как всё связано.“Теперь давайте посмотрим на связанные модели и состояния”
2️⃣ Нашёл, чего не хватает - в состоянии нет данных о покупках и экипировке.
“Давайте доработаем ClickerState, добавив поддержку покупки и экипировки предметов”
var ownedItems: Set<String> = []
var equippedItems: [CatItem.Slot: String] = [:]
3️⃣ Починил заглушки в логике:
“В isEquipped и isOwned используются заглушки, заменим их на реальные проверки”
4️⃣ Обновил UI - в CatShopView появились кнопки «Купить» и «Экипировать» с условиями, показ цены и бонусов:
“Показываем бонус предмета”
case .tapPower(let power):
Text("💪 +\(power) к силе удара")
5️⃣ Добавил реакцию кота - после экипировки предметы сразу отображаются на модели:
“Уведомляем CatViewModel об обновлении предметов”
6️⃣ Поймал мелкую ошибку - CatItem.Slot не Hashable, из-за чего не работали словари. MCP тут же сделал фикс.
🪄 Всё это было в одной сессии в Cursor: я пишу «добавь поддержку экипировки», он идёт по проекту, проверяет зависимости, сам правит импорты и обновляет логику так, чтобы всё стыковалось.
📦 Как подключить MCP к Cursor для Xcode:
brew install mise
В mcpServers:
"XcodeBuildMCP": {
"command": "mise",
"args": [
"x",
"npm:[email protected]",
"--",
"xcodebuildmcp"
]
}
⚡️ Ощущение, что MCP реально действует как разработчик - идёт по коду, понимает контекст и аккуратно встраивает изменения, пока ты просто ставишь задачи.
🔥8💅5 2👍1
🚀 Запускаем GPT-oss 20B у себя локально
На последнем стриме проверяли - можно ли без облаков и серверов гонять огромную 20B модель прямо на Mac.
Ответ: да - и это очень быстро ⚡️
🛠 Использовали Ollama - ставится за минуту, тянет вес модели локально и сразу готов к работе.
Прогнали несколько нейросетей:
🧠 GPT-oss 20B (open-source)
🦅 DeepSeek
🤖 GPT o3
Сравнили их в реальном времени: по скорости, качеству и “вдумчивости” ответов.
И знаете что? Mac справился без проблем, даже с 20B на борту - ответы летят почти мгновенно.
📺 Видео со стрима - в канале, там же разбор, кто кого уделал: DeepSeek, GPT-oss или GPT-o3:
На последнем стриме проверяли - можно ли без облаков и серверов гонять огромную 20B модель прямо на Mac.
Ответ: да - и это очень быстро ⚡️
🛠 Использовали Ollama - ставится за минуту, тянет вес модели локально и сразу готов к работе.
Прогнали несколько нейросетей:
🧠 GPT-oss 20B (open-source)
🦅 DeepSeek
🤖 GPT o3
Сравнили их в реальном времени: по скорости, качеству и “вдумчивости” ответов.
И знаете что? Mac справился без проблем, даже с 20B на борту - ответы летят почти мгновенно.
📺 Видео со стрима - в канале, там же разбор, кто кого уделал: DeepSeek, GPT-oss или GPT-o3:
YouTube
GPT-OSS 20B у тебя на Mac: установка через Ollama + сравнение с DeepSeek и GPT o3
В этом видео ставим GPT-OSS 20B через Ollama на Mac/ПК и устраиваем мини-баттл: локальная 20B vs локальный DeepSeek vs удалённая GPT o3. Сравним скорость, качество и “вдумчивость” ответов, а также удобство в реальных задачах.
Качаем Ollama здесь: https://ollama.com/…
Качаем Ollama здесь: https://ollama.com/…
🔥8 2❤🔥1👍1🙏1