← Все кейсы A-06 Кейс · /ru/dev/pulya

Пуля

Онлайн-преферанс втроём или вчетвером с видеосвязью, дизайн «клуб».

Статус
готово, с друзьями играли
Роль
[TBD: перевод]
Стек
Python 3.13FastAPIWebSocketSQLiteReact 18TypeScriptViteWebRTCcoturnnginx streamCaddyDocker ComposeGitHub Actions
W 1160
A-061600 × 1000
pulya
Пуля: стол онлайн-преферанса с окнами видео и панелью торговли
только десктоп
01[TBD: перевод] [TBD: перевод][TBD: перевод]

[TBD: перевод]

[TBD: перевод]

[TBD: перевод]

02Архитектура [TBD: перевод]

Как это устроено

VPS · docker compose
[TBD] · React SPA, WebRTC + RNNoise
mux · [TBD]
web · [TBD]
server · [TBD]
[TBD] · [TBD]
coturn · STUN/TURN
SQLite · [TBD]
[TBD]
Let's Encrypt
GHCR
GitHub Actions
443 [TBD] [TBD] [TBD]
Легенда
  • HTTP
  • внешний сервис
  • запросы
  • хранилище
[TBD] · React SPA, WebRTC + RNNoise
[TBD] · [TBD]
[TBD]
mux · [TBD]
coturn · STUN/TURN
web · [TBD]
server · [TBD]
SQLite · [TBD]
Let's Encrypt
GHCR
GitHub Actions
VPS · docker compose
Легенда
  • HTTP
  • внешний сервис
  • запросы
  • хранилище
[TBD: перевод]
03Цифры [TBD: перевод]

В цифрах

  • 872 [TBD: перевод]
  • 223 [TBD: перевод]
  • 17 [TBD: перевод]
  • 24 [TBD: перевод]

[TBD: перевод]

04Инженерные решения [TBD: перевод]

Что было непросто

Решение 01

[TBD: перевод]

[TBD: перевод]

Решение 02

[TBD: перевод]

[TBD: перевод]

Решение 03

[TBD: перевод]

[TBD: перевод]

Решение 04

[TBD: перевод]

[TBD: перевод]

Решение 05

[TBD: перевод]

[TBD: перевод]

05История 18.10 → 25.10.2026

[TBD: перевод]

  1. 18.10.2026[TBD: перевод]
  2. 19.10[TBD: перевод]
  3. 22.10[TBD: перевод]
  4. 25.10[TBD: перевод]
06Экраны только десктоп · 1600 × 1000только десктоп
07Интеграции 7

[TBD: перевод]

  • WebRTC
  • coturn
  • RNNoise
  • Let's Encrypt
  • [TBD: перевод]
  • GitHub Actions
  • GHCR