diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b80aa77
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+# Gitea Theme β Cyber Theme
+
+Custom Glassmorphism Neon Cyber Theme fΓΌr Gitea ([gitea.free-warez.win](https://gitea.free-warez.win)).
+
+---
+
+## π Struktur
+- `assets/css/custom.css`: Cyber Theme CSS (Transparenz, Neon-Akzente, Glassmorphism).
+- `assets/img/cyber_bg.jpg`: Cyberpunk-Hintergrundbild.
+- `assets/img/logo.svg` / `logo.png`: Custom Gitea Brand Logos.
+- `assets/img/favicon.svg` / `favicon.png`: Custom Favicons.
+- `deploy.sh`: Synchronisiert die Styles und Grafiken direkt in den Gitea Public-Assets-Mount.
+
+## π Deployment
+```bash
+./deploy.sh
+```
diff --git a/assets/css/custom.css b/assets/css/custom.css
index 1abb75a..08641f4 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -1,98 +1,373 @@
-/* Gitea Custom Cyber Theme */
-body {
- background: #0f172a url('/assets/img/cyber_bg.jpg') no-repeat center center fixed !important;
+/* ==========================================================================
+ GITEA CYBERDROP PRO THEME β High-Performance Glassmorphism & Cyber 3D
+ Domain: gitea.free-warez.win
+ ========================================================================== */
+
+/* 1. Global Setup, Viewport & Typography */
+html, body {
+ font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
+ background: #050811 url('/assets/img/cyber_bg.jpg') no-repeat center center fixed !important;
background-size: cover !important;
+ color: #f1f5f9 !important;
+ -webkit-font-smoothing: antialiased !important;
+ -moz-osx-font-smoothing: grayscale !important;
}
-/* Make main containers glassmorphism */
-.ui.container,
-.full.height,
-.page-content {
+/* Ambient dark vignette over background image */
+body::before {
+ content: '';
+ position: fixed;
+ inset: 0;
+ background:
+ radial-gradient(ellipse at 50% 15%, rgba(0, 242, 254, 0.12) 0%, transparent 65%),
+ radial-gradient(ellipse at 85% 75%, rgba(16, 185, 129, 0.08) 0%, transparent 60%),
+ linear-gradient(180deg, rgba(5, 8, 17, 0.65) 0%, rgba(5, 8, 17, 0.88) 100%) !important;
+ pointer-events: none;
+ z-index: -1;
+}
+
+/* Code & Technical Typography */
+code, pre, kbd, samp,
+.mono, .sha, .commit-id,
+.lines-num, .lines-code,
+.view-raw, .file-view pre,
+.diff-file-box pre {
+ font-family: 'JetBrains Mono', monospace !important;
+}
+
+/* 2. Full-Width & Spacious Layout */
+.ui.container:not(.fluid) {
+ width: min(1560px, 94vw) !important;
+ max-width: 1620px !important;
+ margin-left: auto !important;
+ margin-right: auto !important;
+}
+
+.full.height, .page-content {
background: transparent !important;
}
-.repository.file.list,
-.ui.segment,
-.ui.attached.segment,
-.ui.menu,
-.ui.card,
-.box {
- background: rgba(15, 23, 42, 0.7) !important;
- backdrop-filter: blur(12px) !important;
- -webkit-backdrop-filter: blur(12px) !important;
- border: 1px solid rgba(59, 130, 246, 0.3) !important;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
-}
-
-/* Navbar / Header */
+/* 3. Top Navigation Bar */
.ui.top.menu {
- background: rgba(10, 15, 30, 0.8) !important;
- backdrop-filter: blur(16px) !important;
- border-bottom: 1px solid rgba(59, 130, 246, 0.4) !important;
+ background: rgba(8, 13, 26, 0.85) !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.5) !important;
+ padding: 4px 16px !important;
}
-/* Neon Text Accents */
-a, .ui.breadcrumb a {
- color: #4ade80 !important; /* Neon Green */
- text-shadow: 0 0 8px rgba(74, 222, 128, 0.4);
- transition: all 0.3s ease;
+.ui.menu .item {
+ color: #cbd5e1 !important;
+ font-weight: 500 !important;
+ transition: all 0.25s ease !important;
}
-a:hover {
- color: #60a5fa !important; /* Neon Blue */
- text-shadow: 0 0 12px rgba(96, 165, 250, 0.6);
-}
-
-/* Primary Buttons */
-.ui.primary.button, .ui.green.button {
- background: linear-gradient(135deg, #22c55e 0%, #10b981 100%) !important;
- border: none !important;
- box-shadow: 0 0 15px rgba(34, 197, 94, 0.4) !important;
- color: #fff !important;
+.ui.menu a.item:hover {
+ color: #00f2fe !important;
+ background: rgba(0, 242, 254, 0.1) !important;
border-radius: 8px !important;
}
-.ui.primary.button:hover, .ui.green.button:hover {
- box-shadow: 0 0 25px rgba(34, 197, 94, 0.7) !important;
- transform: translateY(-1px);
+.ui.menu a.active.item {
+ color: #00f2fe !important;
+ background: rgba(0, 242, 254, 0.15) !important;
+ border-radius: 8px !important;
+ box-shadow: 0 0 12px rgba(0, 242, 254, 0.25) !important;
}
-/* Secondary Buttons */
-.ui.basic.button, .ui.button {
- background: rgba(59, 130, 246, 0.1) !important;
- border: 1px solid rgba(59, 130, 246, 0.5) !important;
- color: #93c5fd !important;
+/* Brand Navbar Icon */
+.item.brand img.logo {
+ width: 34px !important;
+ height: 34px !important;
+ filter: drop-shadow(0 0 12px rgba(0, 242, 254, 0.6)) !important;
+ border-radius: 8px !important;
+ transition: transform 0.3s ease !important;
}
-.ui.basic.button:hover, .ui.button:hover {
- background: rgba(59, 130, 246, 0.2) !important;
- box-shadow: 0 0 15px rgba(59, 130, 246, 0.4) !important;
+.item.brand:hover img.logo {
+ transform: scale(1.1) rotate(5deg) !important;
}
-/* Form Inputs */
-input, textarea, .ui.input>input {
- background: rgba(0, 0, 0, 0.4) !important;
- border: 1px solid rgba(59, 130, 246, 0.3) !important;
- color: #e2e8f0 !important;
- border-radius: 6px !important;
+/* 4. Cyber Hero Section (Home Page) */
+.cyber-hero-container {
+ position: relative;
+ padding: 60px 20px 40px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ z-index: 2;
}
-input:focus, textarea:focus, .ui.input>input:focus {
- border-color: #4ade80 !important;
- box-shadow: 0 0 10px rgba(74, 222, 128, 0.3) !important;
+.cyber-hero-glow {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 600px;
+ height: 300px;
+ background: radial-gradient(circle, rgba(0, 242, 254, 0.2) 0%, rgba(16, 185, 129, 0.1) 50%, transparent 80%);
+ filter: blur(50px);
+ pointer-events: none;
+ z-index: -1;
}
-/* Footers */
-footer {
- background: rgba(10, 15, 30, 0.8) !important;
- backdrop-filter: blur(10px) !important;
- border-top: 1px solid rgba(59, 130, 246, 0.3) !important;
+.cyber-banner-wrapper {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(11, 17, 33, 0.55);
+ backdrop-filter: blur(20px);
+ -webkit-backdrop-filter: blur(20px);
+ border: 1px solid rgba(0, 242, 254, 0.25);
+ border-radius: 28px;
+ padding: 18px 36px;
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 35px rgba(0, 242, 254, 0.18);
+ transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
+ margin-bottom: 24px;
}
-/* Fix logo size since we use jpg for svg */
-.brand.logo, img.logo {
- border-radius: 8px;
- box-shadow: 0 0 15px rgba(59, 130, 246, 0.5);
- height: 32px !important;
- width: auto !important;
+.cyber-banner-wrapper:hover {
+ transform: translateY(-3px) scale(1.015);
+ border-color: rgba(0, 242, 254, 0.5);
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.7), 0 0 50px rgba(0, 242, 254, 0.3);
+}
+
+.cyber-banner-logo {
+ width: min(640px, 88vw);
+ height: auto;
+ max-height: 140px;
+ object-fit: contain;
+ filter: drop-shadow(0 0 25px rgba(0, 242, 254, 0.45));
+}
+
+.cyber-hero-subtitle {
+ font-size: 1.25rem;
+ font-weight: 400;
+ color: #94a3b8;
+ max-width: 800px;
+ margin: 0 auto 32px;
+ line-height: 1.6;
+ letter-spacing: 0.01em;
+}
+
+.cyber-hero-actions {
+ display: flex;
+ gap: 18px;
+ justify-content: center;
+ flex-wrap: wrap;
+}
+
+/* 5. Buttons & Micro-Interactions */
+.cyber-btn-primary, .ui.primary.button, .ui.green.button, .ui.positive.button {
+ background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important;
+ color: #030712 !important;
+ font-weight: 700 !important;
+ font-size: 1rem !important;
+ padding: 13px 26px !important;
+ border-radius: 12px !important;
+ border: none !important;
+ box-shadow: 0 4px 20px rgba(0, 242, 254, 0.35) !important;
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
+ cursor: pointer !important;
+ display: inline-flex !important;
+ align-items: center !important;
+ gap: 8px !important;
+}
+
+.cyber-btn-primary:hover, .ui.primary.button:hover, .ui.green.button:hover, .ui.positive.button:hover {
+ transform: translateY(-2px) scale(1.02) !important;
+ box-shadow: 0 8px 30px rgba(0, 242, 254, 0.55) !important;
+ filter: brightness(1.12) !important;
+ color: #000000 !important;
+}
+
+.cyber-btn-secondary, .ui.basic.button, .ui.button:not(.primary):not(.green):not(.positive) {
+ background: rgba(19, 28, 50, 0.75) !important;
+ color: #f8fafc !important;
+ font-weight: 600 !important;
+ font-size: 1rem !important;
+ padding: 13px 24px !important;
+ border-radius: 12px !important;
+ border: 1px solid rgba(56, 189, 248, 0.25) !important;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
+ transition: all 0.25s ease !important;
+ display: inline-flex !important;
+ align-items: center !important;
+ gap: 8px !important;
+}
+
+.cyber-btn-secondary:hover, .ui.basic.button:hover, .ui.button:not(.primary):not(.green):not(.positive):hover {
+ background: rgba(30, 45, 78, 0.9) !important;
+ border-color: #00f2fe !important;
+ color: #00f2fe !important;
+ transform: translateY(-2px) !important;
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4), 0 0 15px rgba(0, 242, 254, 0.2) !important;
+}
+
+/* 6. Feature Cards on Home Page */
+.cyber-features-grid {
+ margin-top: 40px !important;
+ margin-bottom: 60px !important;
+}
+
+.cyber-feature-card {
+ background: rgba(11, 17, 33, 0.82);
+ backdrop-filter: blur(24px) saturate(180%);
+ -webkit-backdrop-filter: blur(24px) saturate(180%);
+ border: 1px solid rgba(0, 242, 254, 0.2);
+ border-radius: 20px;
+ padding: 32px;
+ display: flex;
+ gap: 20px;
+ align-items: flex-start;
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5);
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
+ height: 100%;
+}
+
+.cyber-feature-card:hover {
+ transform: translateY(-4px);
+ border-color: rgba(0, 242, 254, 0.45);
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 25px rgba(0, 242, 254, 0.15);
+}
+
+.cyber-card-icon {
+ background: rgba(0, 242, 254, 0.12);
+ border: 1px solid rgba(0, 242, 254, 0.3);
+ border-radius: 14px;
+ padding: 14px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #00f2fe;
+ box-shadow: 0 0 15px rgba(0, 242, 254, 0.25);
+ flex-shrink: 0;
+}
+
+.cyber-card-icon svg {
+ width: 28px;
+ height: 28px;
+}
+
+.cyber-card-body h3 {
+ margin: 0 0 8px;
+ font-size: 1.25rem;
+ font-weight: 700;
+ color: #f8fafc;
+}
+
+.cyber-card-body p {
+ margin: 0;
+ color: #94a3b8;
+ line-height: 1.6;
+ font-size: 0.95rem;
+}
+
+/* 7. Glassmorphism Repository & Content Containers */
+.ui.segment,
+.ui.attached.segment,
+.repository.file.list,
+.ui.card,
+.box,
+.issue-content-left,
+.issue-content-right {
+ background: rgba(11, 17, 33, 0.82) !important;
+ backdrop-filter: blur(24px) saturate(180%) !important;
+ -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
+ border: 1px solid rgba(56, 189, 248, 0.22) !important;
+ border-radius: 16px !important;
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5) !important;
+ color: #f1f5f9 !important;
+}
+
+.ui.attached.header {
+ background: rgba(15, 23, 42, 0.92) !important;
+ border: 1px solid rgba(56, 189, 248, 0.22) !important;
+ border-radius: 16px 16px 0 0 !important;
+ color: #38bdf8 !important;
+ font-weight: 700 !important;
+}
+
+/* Repository File List */
+#repo-files-table {
+ border-radius: 16px !important;
+ overflow: hidden !important;
+}
+
+#repo-files-table tr {
+ transition: background 0.2s ease !important;
+}
+
+#repo-files-table tr:hover {
+ background: rgba(0, 242, 254, 0.08) !important;
+}
+
+/* File Tree and Breadcrumbs */
+.repo-header, .ui.breadcrumb {
+ color: #94a3b8 !important;
+}
+
+.ui.breadcrumb a, .repo-header a {
+ color: #00f2fe !important;
+ font-weight: 600 !important;
+ text-shadow: 0 0 10px rgba(0, 242, 254, 0.3) !important;
+}
+
+/* 8. Code View, Diffs & Markdown */
+.file-view, .file-content, .code-view, .markup {
+ background: rgba(6, 10, 22, 0.88) !important;
+ border: 1px solid rgba(56, 189, 248, 0.2) !important;
+ border-radius: 16px !important;
+ box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.5) !important;
+}
+
+.lines-num {
+ color: #64748b !important;
+ background: rgba(3, 7, 18, 0.5) !important;
+ border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
+}
+
+/* 9. Form Inputs & Textareas */
+input, textarea, .ui.input>input, .ui.selection.dropdown {
+ background: rgba(6, 10, 22, 0.7) !important;
+ border: 1px solid rgba(148, 163, 184, 0.22) !important;
+ border-radius: 10px !important;
+ color: #f8fafc !important;
+ padding: 10px 14px !important;
+ transition: all 0.25s ease !important;
+}
+
+input:focus, textarea:focus, .ui.input>input:focus, .ui.selection.dropdown:focus {
+ border-color: #00f2fe !important;
+ background: rgba(6, 10, 22, 0.9) !important;
+ box-shadow: 0 0 0 3px rgba(0, 242, 254, 0.2), inset 0 2px 4px rgba(0, 0, 0, 0.3) !important;
+}
+
+/* 10. Footer */
+footer, .ui.footer {
+ background: rgba(8, 13, 26, 0.88) !important;
+ backdrop-filter: blur(16px) !important;
+ border-top: 1px solid rgba(0, 242, 254, 0.2) !important;
+ color: #94a3b8 !important;
+ padding: 24px 0 !important;
+ margin-top: 50px !important;
+}
+
+/* 11. Custom Modern Scrollbar */
+::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+::-webkit-scrollbar-track {
+ background: rgba(5, 8, 17, 0.8);
+}
+::-webkit-scrollbar-thumb {
+ background: rgba(0, 242, 254, 0.4);
+ border-radius: 4px;
+}
+::-webkit-scrollbar-thumb:hover {
+ background: rgba(0, 242, 254, 0.7);
}
diff --git a/assets/img/favicon.png b/assets/img/favicon.png
index 9e44267..9ed3223 100644
Binary files a/assets/img/favicon.png and b/assets/img/favicon.png differ
diff --git a/assets/img/gitea_banner_logo.png b/assets/img/gitea_banner_logo.png
new file mode 100644
index 0000000..375de6e
Binary files /dev/null and b/assets/img/gitea_banner_logo.png differ
diff --git a/assets/img/gitea_banner_original.jpg b/assets/img/gitea_banner_original.jpg
new file mode 100644
index 0000000..e57edc3
Binary files /dev/null and b/assets/img/gitea_banner_original.jpg differ
diff --git a/assets/img/gitea_icon.png b/assets/img/gitea_icon.png
new file mode 100644
index 0000000..9ed3223
Binary files /dev/null and b/assets/img/gitea_icon.png differ
diff --git a/assets/img/logo.png b/assets/img/logo.png
index 9e44267..9ed3223 100644
Binary files a/assets/img/logo.png and b/assets/img/logo.png differ
diff --git a/deploy.sh b/deploy.sh
new file mode 100755
index 0000000..b4d1b2a
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# deploy.sh - Deploy Gitea Custom Cyber Theme & 3D Banner Logo
+# Domain: gitea.free-warez.win
+# Target Host: free-warez.win -> /opt/containers/gitea/gitea/gitea
+
+set -euo pipefail
+
+TARGET_HOST="free-warez.win"
+TARGET_DIR="/opt/containers/gitea/gitea/gitea"
+LOCAL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+echo "π Deploying Gitea Cyber Theme & 3D Banner"
+echo " Target: $TARGET_HOST:$TARGET_DIR"
+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 Assets (CSS & Images)
+echo "π Syncing custom assets (CSS & 3D Banner)..."
+rsync -avz "$LOCAL_DIR/assets/" "$TARGET_HOST:$TARGET_DIR/public/assets/"
+
+# 3. Sync Templates (Custom header & Home page)
+if [ -d "$LOCAL_DIR/templates" ]; then
+ echo "π Syncing custom templates..."
+ rsync -avz "$LOCAL_DIR/templates/" "$TARGET_HOST:$TARGET_DIR/templates/"
+fi
+
+# 4. Fix permissions
+echo "π Ensuring correct permissions for git user (1000:1000)..."
+ssh "$TARGET_HOST" "chown -R 1000:1000 $TARGET_DIR/public $TARGET_DIR/templates"
+
+# 5. Restart Gitea container
+echo "π Restarting Gitea container..."
+ssh "$TARGET_HOST" "docker restart gitea"
+
+echo "β
Gitea theme & 3D banner updated!"
+echo "β¨ Deployment complete!"
diff --git a/templates/custom/header.tmpl b/templates/custom/header.tmpl
new file mode 100644
index 0000000..42a9507
--- /dev/null
+++ b/templates/custom/header.tmpl
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/templates/home.tmpl b/templates/home.tmpl
new file mode 100644
index 0000000..8366633
--- /dev/null
+++ b/templates/home.tmpl
@@ -0,0 +1,88 @@
+{{template "base/head" .}}
+
+
+
+
+
+
+
+

+
+
+
+ High-Performance Private Git Hub & Continuous Delivery • Cloud-Native • Resilient
+
+
+
+
+
+
+
+
+
+
+
+ {{svg "octicon-rocket"}}
+
+
+
Ultra-Fast & Lightweight
+
Blitzschnelle Performance mit Go. Minimale Latenz, sofortige Klon- und Push-Geschwindigkeit im Gigabit-Netzwerk.
+
+
+
+
+
+
+
+ {{svg "octicon-shield-check"}}
+
+
+
Enterprise Security
+
WireGuard- & Tailscale-gesichert, 2FA-Zwei-Faktor-Authentifizierung, signierte Commits und granulare Zugriffskontrollen.
+
+
+
+
+
+
+
+ {{svg "octicon-cpu"}}
+
+
+
DevOps & CI/CD Pipeline
+
Gitea Actions, Git LFS fΓΌr groΓe Assets, integriertes Package Registry (Docker, npm, PyPI) und Webhooks.
+
+
+
+
+
+
+
+ {{svg "octicon-code"}}
+
+
+
100% Kontrollierte Infrastruktur
+
Selbst gehosteter Code-Tresor auf eigenem Bare-Metal VPS ohne Tracking, Drittanbieter-Lock-in oder Limits.
+
+
+
+
+
+
+{{template "base/footer" .}}