diff --git a/services/caddy/Caddyfile b/services/caddy/Caddyfile index 24ddf3f..bd5f80b 100644 --- a/services/caddy/Caddyfile +++ b/services/caddy/Caddyfile @@ -110,8 +110,21 @@ truenews.sesur.dev { file_server } t.sesur.dev { - root * /opt/homelab/services/mtproto_page + basicauth { + pvlx $2b$05$wXo0zmemeoOJ3ukx4pORSuq/9IoH/Lo5PIvGk3uzNvcAMmtpjI1o2 + } + root * /opt/homelab/services/mtproto_page/xk9m2p4q7 file_server + header { + X-Robots-Tag "noindex, nofollow" + X-Content-Type-Options "nosniff" + X-Frame-Options "DENY" + Strict-Transport-Security "max-age=31536000" + } + log { + output file /var/log/caddy/access.log + format json + } } git.sesur.dev { log { diff --git a/services/mtproto_page/xk9m2p4q7/index.html b/services/mtproto_page/xk9m2p4q7/index.html index 7b0ae6a..11214e5 100644 --- a/services/mtproto_page/xk9m2p4q7/index.html +++ b/services/mtproto_page/xk9m2p4q7/index.html @@ -15,7 +15,6 @@ --accent2: #7b2fff; --text: #c8c8d8; --dim: #55556a; - --danger: #ff3b6b; --mono: 'Space Mono', monospace; --sans: 'Syne', sans-serif; } @@ -30,7 +29,6 @@ overflow-x: hidden; } - /* ── noise overlay ── */ body::before { content: ''; position: fixed; inset: 0; @@ -39,7 +37,6 @@ z-index: 0; } - /* ── ambient glow blobs ── */ .blob { position: fixed; border-radius: 50%; @@ -51,7 +48,6 @@ .blob-1 { width: 500px; height: 500px; background: var(--accent2); top: -150px; left: -100px; } .blob-2 { width: 400px; height: 400px; background: var(--accent); bottom: -100px; right: -80px; } - /* ── layout wrapper ── */ #app { position: relative; z-index: 1; min-height: 100vh; @@ -59,7 +55,6 @@ padding: 2rem 1rem 4rem; } - /* ── header ── */ header { width: 100%; max-width: 680px; display: flex; align-items: center; gap: 1rem; @@ -112,74 +107,9 @@ 50% { opacity: 0.3; } } - /* ── auth wall ── */ - #auth-wall { - width: 100%; max-width: 360px; - display: flex; flex-direction: column; gap: 1.5rem; - animation: fadeUp 0.4s ease both; - } - .auth-label { - font-size: 0.65rem; letter-spacing: 0.12em; - text-transform: uppercase; color: var(--dim); - margin-bottom: 0.5rem; - } - .auth-label span { color: var(--accent); } - .input-wrap { - position: relative; - } - .input-wrap input { - width: 100%; - background: var(--surface); - border: 1px solid var(--border); - color: #fff; - font-family: var(--mono); font-size: 0.9rem; - padding: 0.85rem 3rem 0.85rem 1rem; - outline: none; - transition: border-color 0.2s; - letter-spacing: 0.05em; - } - .input-wrap input:focus { border-color: var(--accent); } - .input-wrap input.error { border-color: var(--danger); } - .input-wrap button { - position: absolute; right: 0; top: 0; bottom: 0; - width: 48px; background: none; border: none; cursor: pointer; - color: var(--dim); font-size: 1.1rem; - transition: color 0.2s; - } - .input-wrap button:hover { color: var(--accent); } - .err-msg { - font-size: 0.7rem; color: var(--danger); - margin-top: 0.5rem; display: none; - } - .err-msg.show { display: block; } - .btn-primary { - width: 100%; - background: transparent; - border: 1px solid var(--accent); - color: var(--accent); - font-family: var(--mono); font-size: 0.8rem; - letter-spacing: 0.1em; text-transform: uppercase; - padding: 0.9rem; - cursor: pointer; - position: relative; overflow: hidden; - transition: color 0.2s; - } - .btn-primary::before { - content: ''; - position: absolute; inset: 0; - background: var(--accent); - transform: translateX(-100%); - transition: transform 0.25s ease; - z-index: -1; - } - .btn-primary:hover { color: var(--bg); } - .btn-primary:hover::before { transform: translateX(0); } - - /* ── proxy list ── */ #proxy-list { width: 100%; max-width: 680px; display: flex; flex-direction: column; gap: 1rem; - display: none; animation: fadeUp 0.4s ease both; } @@ -190,7 +120,6 @@ } .section-title span { color: var(--accent); } - /* ── proxy card ── */ .proxy-card { background: var(--surface); border: 1px solid var(--border); @@ -266,7 +195,6 @@ .btn-copy:hover { color: var(--accent); border-color: var(--accent); } .btn-copy.copied { color: #2bff8f; border-color: #2bff8f; } - /* ── footer ── */ footer { width: 100%; max-width: 680px; margin-top: 3rem; padding-top: 1.5rem; @@ -275,15 +203,12 @@ display: flex; justify-content: space-between; align-items: center; letter-spacing: 0.06em; text-transform: uppercase; } - footer a { color: var(--dim); text-decoration: none; } - footer a:hover { color: var(--accent); } @keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } - /* stagger cards */ .proxy-card:nth-child(2) { animation-delay: 0.05s; } .proxy-card:nth-child(3) { animation-delay: 0.10s; } .proxy-card:nth-child(4) { animation-delay: 0.15s; } @@ -307,23 +232,8 @@
Введи пароль -
Неправильный пароль. Ты знаешь кому писать.
-// Доступные прокси — Telegram MTProto
-