diff --git a/README.md b/README.md new file mode 100644 index 0000000..48ad30b --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# LAMP Link Theme β the23 + +Custom Theme & Layouts fΓΌr den Link-Shortener & Bio-Page Service ([link.free-warez.win](https://link.free-warez.win)). + +--- + +## π Struktur +- `the23/layouts/`: Main, Auth, Stats Layouts. +- `the23/pages/`: Landingpage (`index.php`, `main.php`), Bio-Seiten (`bio.php`), QR-Codes (`qr.php`). +- `the23/partials/`: MenΓΌs, Footer, Stats Navigation. +- `the23/auth/`: Login, Registrierung, 2FA. +- `the23/gates/`: Custom Splash / Forwarding Screens. +- `deploy.sh`: Synchronisiert das Theme direkt zum VPS, setzt www-data Permissions und invalidiert den File-Cache. + +## π Deployment +```bash +./deploy.sh +``` diff --git a/assets/css/cyber-theme.css b/assets/css/cyber-theme.css new file mode 100644 index 0000000..95fadc5 --- /dev/null +++ b/assets/css/cyber-theme.css @@ -0,0 +1,358 @@ +/* ========================================================================== + LAMP LINK SHORTENER β CYBERDROP PRO THEME + Domain: link.free-warez.win + ========================================================================== */ + +/* 1. Global Setup, Font & Background */ +@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap'); + +html, body { + font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important; + background: #060913 url('/content/cyber_bg.jpg') no-repeat center center fixed !important; + background-size: cover !important; + color: #f8fafc !important; + min-height: 100vh !important; + -webkit-font-smoothing: antialiased !important; + -moz-osx-font-smoothing: grayscale !important; +} + +/* Atmospheric dark mesh overlay for 100% text legibility */ +body::before { + content: '' !important; + position: fixed !important; + inset: 0 !important; + background: + radial-gradient(ellipse at 50% 12%, rgba(0, 242, 254, 0.10) 0%, transparent 65%), + radial-gradient(ellipse at 85% 75%, rgba(16, 185, 129, 0.07) 0%, transparent 60%), + linear-gradient(180deg, rgba(6, 9, 18, 0.82) 0%, rgba(6, 9, 18, 0.94) 100%) !important; + backdrop-filter: blur(6px) !important; + -webkit-backdrop-filter: blur(6px) !important; + pointer-events: none !important; + z-index: -1 !important; +} + +/* Typography High-Contrast */ +h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4 { + color: #ffffff !important; + font-weight: 700 !important; + letter-spacing: -0.02em !important; +} + +p, span, .fs-5, .lead, label, .text-muted { + color: #cbd5e1 !important; +} + +.text-dark { + color: #f8fafc !important; +} + +a { + color: #00f2fe !important; + text-decoration: none !important; + transition: all 0.2s ease !important; +} + +a:hover { + color: #38bdf8 !important; + text-shadow: 0 0 10px rgba(0, 242, 254, 0.5) !important; +} + +/* Code & URLs */ +code, pre, .mono, #output-result input { + font-family: 'JetBrains Mono', monospace !important; +} + +/* 2. Top Navigation Bar */ +header, .navbar, nav { + background: rgba(8, 12, 24, 0.92) !important; + backdrop-filter: blur(24px) saturate(180%) !important; + -webkit-backdrop-filter: blur(24px) saturate(180%) !important; + border-bottom: 1px solid rgba(0, 242, 254, 0.25) !important; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6) !important; + padding: 10px 0 !important; +} + +.navbar-logo img#navbar-logo, .navbar-logo img { + height: 40px !important; + max-height: 44px !important; + width: auto !important; + filter: drop-shadow(0 0 15px rgba(0, 242, 254, 0.5)) !important; + transition: transform 0.3s ease !important; +} + +.navbar-logo:hover img { + transform: scale(1.04) !important; +} + +.nav-link { + color: #cbd5e1 !important; + font-weight: 600 !important; + font-size: 0.98rem !important; + transition: color 0.2s ease !important; +} + +.nav-link:hover, .nav-link.active { + color: #00f2fe !important; + text-shadow: 0 0 8px rgba(0, 242, 254, 0.5) !important; +} + +/* 3. Hero Section & URL Shorten Box */ +#hero { + position: relative; + padding: 50px 0 70px; + z-index: 1; +} + +#hero h1 strong { + background: linear-gradient(135deg, #ffffff 40%, #94a3b8 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.gradient-primary { + background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important; + -webkit-background-clip: text !important; + -webkit-text-fill-color: transparent !important; +} + +/* Master Shorten Form Capsule */ +form[data-trigger="shorten-form"] { + background: rgba(11, 17, 33, 0.92) !important; + backdrop-filter: blur(28px) saturate(190%) !important; + -webkit-backdrop-filter: blur(28px) saturate(190%) !important; + border: 1px solid rgba(0, 242, 254, 0.35) !important; + border-radius: 22px !important; + box-shadow: + 0 25px 60px -15px rgba(0, 0, 0, 0.8), + 0 0 35px rgba(0, 242, 254, 0.2), + inset 0 1px 0 rgba(255, 255, 255, 0.12) !important; + padding: 12px 16px !important; + transition: all 0.3s ease !important; +} + +form[data-trigger="shorten-form"]:focus-within { + border-color: #00f2fe !important; + box-shadow: + 0 30px 70px -15px rgba(0, 0, 0, 0.85), + 0 0 45px rgba(0, 242, 254, 0.35), + inset 0 1px 0 rgba(255, 255, 255, 0.18) !important; +} + +form[data-trigger="shorten-form"] input#url { + background: transparent !important; + color: #ffffff !important; + font-size: 1.15rem !important; + font-weight: 500 !important; + padding: 12px 18px !important; + box-shadow: none !important; +} + +form[data-trigger="shorten-form"] input#url::placeholder { + color: #64748b !important; +} + +/* Submit Shorten Button */ +form[data-trigger="shorten-form"] button[type="submit"], +.btn-primary { + background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important; + color: #020617 !important; + font-weight: 800 !important; + font-size: 1.05rem !important; + padding: 14px 30px !important; + border-radius: 14px !important; + border: none !important; + box-shadow: 0 4px 20px rgba(0, 242, 254, 0.4) !important; + transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; + cursor: pointer !important; + letter-spacing: 0.02em !important; +} + +form[data-trigger="shorten-form"] button[type="submit"]:hover, +.btn-primary:hover { + transform: translateY(-2px) scale(1.02) !important; + box-shadow: 0 8px 30px rgba(0, 242, 254, 0.6) !important; + filter: brightness(1.15) !important; + color: #000000 !important; +} + +/* Output Result Box */ +#output-result { + background: rgba(12, 18, 34, 0.94) !important; + backdrop-filter: blur(20px) !important; + border: 1px solid rgba(16, 185, 129, 0.5) !important; + border-radius: 16px !important; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 20px rgba(16, 185, 129, 0.25) !important; + color: #f8fafc !important; +} + +/* 4. Glassmorphism Marketing & Feature Cards */ +.bg-primary, .bg-light, .bg-white, .section { + background: transparent !important; +} + +.card { + background: rgba(12, 18, 34, 0.92) !important; + backdrop-filter: blur(28px) saturate(180%) !important; + -webkit-backdrop-filter: blur(28px) saturate(180%) !important; + border: 1px solid rgba(0, 242, 254, 0.25) !important; + border-radius: 22px !important; + box-shadow: 0 15px 45px rgba(0, 0, 0, 0.6) !important; + color: #f8fafc !important; + transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important; +} + +.card:hover { + transform: translateY(-4px) !important; + border-color: rgba(0, 242, 254, 0.5) !important; + box-shadow: 0 22px 55px rgba(0, 0, 0, 0.7), 0 0 30px rgba(0, 242, 254, 0.2) !important; +} + +.card h2, .card h3, .card h4, .card h5 { + color: #ffffff !important; +} + +.card p, .card span { + color: #cbd5e1 !important; +} + +/* Feature Icons */ +.icon, .icon-lg, .icon-md { + background: rgba(0, 242, 254, 0.12) !important; + border: 1px solid rgba(0, 242, 254, 0.3) !important; + color: #00f2fe !important; + box-shadow: 0 0 15px rgba(0, 242, 254, 0.25) !important; +} + +/* 5. Sign-in & Authentication View (Auth Layout) */ +.auth-page, body.auth { + background: #060913 url('/content/cyber_bg.jpg') no-repeat center center fixed !important; + background-size: cover !important; +} + +.card.card-auth, .auth-form-card { + width: min(520px, 92vw) !important; + margin: 40px auto !important; + background: rgba(11, 17, 33, 0.9) !important; + backdrop-filter: blur(28px) saturate(190%) !important; + -webkit-backdrop-filter: blur(28px) saturate(190%) !important; + border: 1px solid rgba(0, 242, 254, 0.3) !important; + border-radius: 24px !important; + box-shadow: 0 25px 65px rgba(0, 0, 0, 0.8), 0 0 40px rgba(0, 242, 254, 0.18) !important; + padding: 38px 42px !important; + position: relative !important; + overflow: hidden !important; +} + +/* Glowing Top Accent Line on Auth Card */ +.card.card-auth::before, .auth-form-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: linear-gradient(90deg, #00f2fe 0%, #38bdf8 50%, #10b981 100%); + box-shadow: 0 0 15px #00f2fe; +} + +/* Form Controls & Inputs */ +.form-control { + background: rgba(6, 10, 22, 0.75) !important; + border: 1px solid rgba(148, 163, 184, 0.25) !important; + border-radius: 12px !important; + color: #ffffff !important; + padding: 13px 18px !important; + font-size: 1rem !important; + transition: all 0.25s ease !important; +} + +.form-control:focus { + border-color: #00f2fe !important; + background: rgba(6, 10, 22, 0.95) !important; + color: #ffffff !important; + box-shadow: 0 0 0 3px rgba(0, 242, 254, 0.25), inset 0 2px 4px rgba(0, 0, 0, 0.4) !important; +} + +/* 6. Footer */ +footer { + background: rgba(8, 12, 24, 0.94) !important; + backdrop-filter: blur(20px) !important; + border-top: 1px solid rgba(0, 242, 254, 0.22) !important; + color: #94a3b8 !important; + padding: 40px 0 !important; + margin-top: 60px !important; +} + +footer a { + color: #cbd5e1 !important; +} + +footer a:hover { + color: #00f2fe !important; +} + +/* Custom Scrollbar */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} +::-webkit-scrollbar-track { + background: rgba(5, 8, 17, 0.9); +} +::-webkit-scrollbar-thumb { + background: rgba(0, 242, 254, 0.45); + border-radius: 4px; +} +::-webkit-scrollbar-thumb:hover { + background: rgba(0, 242, 254, 0.75); +} + +/* Auth Page Enhancements */ +.min-vh-100 { + background: transparent !important; +} + +.col-sm-7.col-lg-6.col-xl-6 { + background: rgba(11, 17, 33, 0.85) !important; + backdrop-filter: blur(28px) saturate(190%) !important; + -webkit-backdrop-filter: blur(28px) saturate(190%) !important; + border-right: 1px solid rgba(0, 242, 254, 0.25) !important; + box-shadow: 0 0 50px rgba(0, 0, 0, 0.7) !important; +} + +.gradient-primary.position-absolute { + background: linear-gradient(135deg, rgba(6, 10, 22, 0.95) 0%, rgba(11, 17, 33, 0.95) 100%) !important; + border-left: 1px solid rgba(0, 242, 254, 0.2) !important; +} + +.gradient-primary.position-absolute::before { + content: ''; + position: absolute; + inset: 0; + background: radial-gradient(circle at center, rgba(0, 242, 254, 0.15) 0%, transparent 70%); + pointer-events: none; +} + +.form-floating>.form-control { + background: rgba(6, 10, 22, 0.8) !important; + border: 1px solid rgba(56, 189, 248, 0.28) !important; + color: #ffffff !important; +} + +.form-floating>.form-control:focus { + border-color: #00f2fe !important; + box-shadow: 0 0 0 3px rgba(0, 242, 254, 0.25) !important; +} + +.form-floating>label { + color: #94a3b8 !important; +} + +.form-floating>.form-control:focus~label, +.form-floating>.form-control:not(:placeholder-shown)~label { + color: #00f2fe !important; +} + +.form-check-label { + color: #cbd5e1 !important; +} diff --git a/assets/img/cyber_bg.jpg b/assets/img/cyber_bg.jpg new file mode 100644 index 0000000..4897872 Binary files /dev/null and b/assets/img/cyber_bg.jpg differ diff --git a/assets/img/link_banner_logo.png b/assets/img/link_banner_logo.png new file mode 100644 index 0000000..8441d70 Binary files /dev/null and b/assets/img/link_banner_logo.png differ diff --git a/assets/img/link_banner_original.jpg b/assets/img/link_banner_original.jpg new file mode 100644 index 0000000..0304412 Binary files /dev/null and b/assets/img/link_banner_original.jpg differ diff --git a/assets/img/link_icon.png b/assets/img/link_icon.png new file mode 100644 index 0000000..090b4fd Binary files /dev/null and b/assets/img/link_icon.png differ diff --git a/assets/img/pageLogo.png b/assets/img/pageLogo.png new file mode 100644 index 0000000..8441d70 Binary files /dev/null and b/assets/img/pageLogo.png differ diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..1616766 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# deploy.sh - Deploy the23 Theme for LAMP Link Shortener +# Domain: link.free-warez.win +# Target Host: free-warez.win -> /opt/containers/lamp_link/www/link/storage/themes/the23 + +set -euo pipefail + +TARGET_HOST="free-warez.win" +TARGET_THEME_DIR="/opt/containers/lamp_link/www/link/storage/themes/the23" +TARGET_CONTENT_DIR="/opt/containers/lamp_link/www/link/public/content" +LOCAL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo "π Deploying LAMP Link Theme & Cyber Assets" +echo " Target Host: $TARGET_HOST" +echo "===============================================" + +# 1. Check SSH connection +echo "π‘ Checking SSH connection to $TARGET_HOST..." +if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 "$TARGET_HOST" exit; then + echo "β Cannot connect to $TARGET_HOST via SSH." + exit 1 +fi + +# 2. Sync Theme templates +echo "π Syncing theme files to VPS..." +rsync -avz "$LOCAL_DIR/the23/" "$TARGET_HOST:$TARGET_THEME_DIR/" + +# 3. Sync Public Assets (CSS, Logo, Wallpaper) +echo "π Syncing public assets (CSS & 3D Banner Logo)..." +rsync -avz "$LOCAL_DIR/assets/css/cyber-theme.css" "$TARGET_HOST:$TARGET_CONTENT_DIR/cyber-theme.css" +rsync -avz "$LOCAL_DIR/assets/img/pageLogo.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/pageLogo.png" +rsync -avz "$LOCAL_DIR/assets/img/link_banner_logo.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/link_banner_logo.png" +rsync -avz "$LOCAL_DIR/assets/img/cyber_bg.jpg" "$TARGET_HOST:$TARGET_CONTENT_DIR/cyber_bg.jpg" +rsync -avz "$LOCAL_DIR/assets/img/link_icon.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/link_icon.png" + +# 4. Fix permissions and flush cache +echo "π Updating permissions and clearing cache..." +ssh "$TARGET_HOST" "chown -R www-data:www-data $TARGET_THEME_DIR $TARGET_CONTENT_DIR && rm -rf /opt/containers/lamp_link/www/link/storage/cache/*" + +echo "β LAMP Link theme and assets updated & cache cleared!" +echo "β¨ Deployment complete!" diff --git a/the23/auth/login.php b/the23/auth/login.php index 2e560f7..252a0e5 100644 --- a/the23/auth/login.php +++ b/the23/auth/login.php @@ -15,6 +15,11 @@
+
+
+