3252a8
f7de08bfd7
docs: update readme
2026-04-27 21:06:21 +03:00
3252a8
6e42f67931
docs: donation wallet
2026-04-27 21:02:49 +03:00
3252a8
b87b6cd378
fix: webapp session
2026-04-27 20:50:24 +03:00
3252a8
b39fb73c30
docs: project name change, migration script
2026-04-27 16:11:06 +03:00
3252a8
3120884ed5
docs: update readme
2026-04-27 15:15:25 +03:00
3252a8
c927244b1a
docs: update readme
2026-04-27 15:13:00 +03:00
3252a8
e049f38c7c
fix: readme format
2026-04-27 15:08:29 +03:00
3252a8
ddc6ee0024
feat: build webapp when docker build
2026-04-27 14:59:35 +03:00
3252a8
fa5f1460ab
fix: separate platega buttons not showed up in webapp
2026-04-27 14:57:49 +03:00
3252a8
9f556f3e04
fix: add platega debug
2026-04-27 14:48:58 +03:00
3252a8
70b618a94b
feat: use web page for cryptopay in web app
2026-04-27 14:38:09 +03:00
3252a8
0610156f80
feat: add multiple platega buttons
2026-04-27 14:34:41 +03:00
3252a8
587b39de1d
fix(bot): connect button opens subscription page instead of mini app
...
Previously the connect button in post-payment messages and in 'My subscription' section opened the mini app (personal cabinet) when SUBSCRIPTION_MINI_APP_URL was set, ignoring the actual subscription URL. Now the real subscription URL is preferred, with the mini app used only as a fallback.
2026-04-27 11:06:32 +03:00
3252a8
e35885b54b
docs: update readme
2026-04-27 09:44:28 +03:00
3252a8
c1b7ace876
fix(webapp): merge bundled FALLBACK_I18N with server locales
...
The bot's locales/*.json files do not contain the webapp-specific keys
(connect, extend_subscription, loading, etc.), so applyI18n was
overwriting the localized HTML defaults with raw key names.
Merge the bundled FALLBACK_I18N table with whatever the server provides
per language, letting server values override but falling back to the
in-bundle translations for keys the bot does not ship.
2026-04-27 09:42:18 +03:00
3252a8
f416b0aed1
fix(webapp): allow oauth.telegram.org iframe in CSP
...
The Telegram Login Widget embeds oauth.telegram.org in an iframe; without
an explicit frame-src directive it fell back to default-src 'self' and was
blocked. Add frame-src https://oauth.telegram.org so the login flow loads.
2026-04-27 09:34:09 +03:00
3252a8
c8192e4427
fix(webapp): allow inline JSON config and Telegram widget eval under CSP
...
Add a per-request nonce to inline <script type="application/json"> blocks
(webapp-config, i18n) so they survive script-src 'self' and locales/config
actually load in the browser. Also add 'unsafe-eval' to script-src so the
vendored telegram-widget.js (which uses eval/new Function) can initialise.
2026-04-27 09:31:52 +03:00
3252a8
dae1a6889b
feat(ops): add /healthz endpoint and container healthcheck
...
Expose a lightweight /healthz route on the main aiohttp server and
wire docker-compose healthcheck so orchestrators can detect failures.
2026-04-27 08:43:58 +03:00
3252a8
4740666d63
chore: annotate XTR provider_token and add missing return type
2026-04-27 08:43:54 +03:00
3252a8
d6b703debb
refactor(logging): use logger.exception to preserve stack traces
...
Unify error logging across services: replace logger.error(f"...{e}")
and logger.error(..., exc_info=True) with logger.exception() so the
stack trace is consistently captured.
2026-04-27 08:43:48 +03:00
3252a8
f1113eb80a
fix(webhooks): return 5xx on YooKassa processing errors
...
Replace 200-on-error with 500 so the payment provider retries transient
failures instead of treating them as successfully processed.
2026-04-27 08:43:44 +03:00
3252a8
604f0d9656
security: audit inline Mini App handlers
2026-04-26 20:34:02 +03:00
3252a8
8ce5a92625
chore: harden ignore rules
2026-04-26 20:33:59 +03:00
3252a8
72b6e93c94
docs: add Telegram clock-skew note for auth_date
2026-04-26 20:33:57 +03:00
3252a8
d60952718e
security: harden Mini App auth, CSRF, and validation
2026-04-26 20:33:54 +03:00
3252a8
53dcc59770
security: double-check CryptoPay webhook signatures
2026-04-26 20:33:49 +03:00
3252a8
5ec179b6d6
webapp: add hashed minified asset pipeline
2026-04-26 20:04:30 +03:00
3252a8
250df445f0
docker: run app as non-root user
2026-04-26 19:47:56 +03:00
3252a8
12376e5070
db: add composite indexes and merge-user optimizations
2026-04-26 19:47:14 +03:00
3252a8
c2afc6107a
webapp: harden mini app rendering and controls
2026-04-26 19:47:06 +03:00
3252a8
77370eb963
security: harden webhooks and session secrets
2026-04-26 19:46:57 +03:00
3252a8
94b0787cad
feat: use i18n
2026-04-26 12:34:16 +03:00
3252a8
9c499fe3c2
feat: add caddy docker compose example
2026-04-24 23:16:31 +03:00
3252a8
7e26f9da9b
feat: automatic merge two paid subs (email and tg)
2026-04-24 23:07:57 +03:00
3252a8
778615a97f
feat: tune web app visual
2026-04-24 22:35:55 +03:00
3252a8
651572f15f
refactor: show tg avatar in detached browser
2026-04-24 21:31:58 +03:00
3252a8
5ccb8ddabe
refactor: promo and email bruteforce defence
2026-04-24 21:18:29 +03:00
3252a8
86f944e544
feat: tune web app visual
2026-04-24 21:04:53 +03:00
3252a8
bc29f5ebd6
feat: promocode and ref in web app
2026-04-24 13:52:53 +03:00
3252a8
9a84be85c6
feat: move tg bot interaction keyboard to separate command, show only web app and support buttons by default
2026-04-24 12:43:21 +03:00
3252a8
c08ac854b2
fix: get email from panel if exist, tune webapp visual
2026-04-24 11:14:50 +03:00
3252a8
807a8933b9
feat: email login, smtp codes
2026-04-23 21:20:32 +03:00
3252a8
b9cb1fec06
feat: tune webapp visual, use telegram widget for login
2026-04-23 14:06:21 +03:00
3252a8
eab803652b
fix: tg bot wont start
2026-04-22 22:44:19 +03:00
3252a8
259d0646bc
fix: tune webapp visual and fix some errors
2026-04-22 22:35:10 +03:00
3252a8
4f1b7d0832
feat: web app
2026-04-22 16:00:55 +03:00
3252a8
1aa529ab23
Remove GitHub Actions and stale GHCR defaults
2026-04-22 15:19:54 +03:00
3252a8
a46502380c
Remove locales volume from bot
2026-04-03 20:49:14 +03:00
3252a8
85c276bcf5
Setup ghcr
2026-04-03 20:36:34 +03:00
3252a8
55f8db11ce
Add setup instructions
2026-02-15 18:58:52 +03:00
3252a8
79af61a48e
Add configurable welcome bonus days for referred signups
...
- add REFERRAL_WELCOME_BONUS_DAYS setting (default 3) in settings.py
- document REFERRAL_WELCOME_BONUS_DAYS in .env.example
- apply welcome bonus on first /start only for newly created users with referred_by_id
- replace hardcoded 3 days with settings.REFERRAL_WELCOME_BONUS_DAYS
- skip bonus flow when value is 0 or less
- send user notification after successful bonus application
- add i18n key referral_welcome_bonus_applied to ru.json and en.json
2026-02-11 13:26:56 +03:00
3252a8
69d2e2a899
Fix promo failed message when using deeplink
2026-02-10 19:53:55 +03:00
3252a8
069ad967b5
Add user ref page deeplink
2026-02-10 19:36:29 +03:00
3252a8
18a6b3e18d
Tune users rating
2026-02-09 10:29:40 +03:00
3252a8
3b9043332c
Move user links to id's from buttons
2026-02-09 10:22:06 +03:00
3252a8
d94b57bd0b
User card links in ratings
2026-02-09 10:09:16 +03:00
3252a8
5247092ca2
Add users rating feature
2026-02-09 10:03:55 +03:00
3252a8
049789c9c5
Tune invite buttons
2026-02-06 12:48:37 +03:00
3252a8
6b74ae4a8e
Update locals
2026-01-25 10:20:54 +03:00
3252a8
c13c01ea43
Update traffic limit info in user profile
2026-01-25 10:16:00 +03:00
3252a8
48e7d3569f
Fix used traffic display
2026-01-25 10:11:16 +03:00
3252a8
4f3b45cbd8
Merge branch 'main' into fork-new
...
# Conflicts:
# docker-compose.yml
2026-01-25 09:57:57 +03:00
3252a8
90ab186a7c
Add platega payment request logging
2026-01-07 22:42:00 +03:00
3252a8
dc725ccd68
Update locales
2026-01-05 23:51:33 +03:00
3252a8
d88aee03bb
Add user agreement and privacy policy links
2026-01-05 23:42:51 +03:00
3252a8
caf5b88eef
Use random string in ref link instead of tg ID
...
- Enable old links with tg id by default in .env with LEGACY_REFS=true
2025-11-11 22:32:30 +03:00