feat: add dark mode, navigation, and Web Vitals tracking to marketplace

Backend:
- Simplify DatabaseConfig: remove effective_url property and project root finder
- Update to Pydantic v2 model_config (replace nested Config class)
- Add web_vitals router to main.py and __init__.py
- Fix ExplorerService datetime handling (ensure timezone-naive comparisons)
- Fix status_label extraction to handle both enum and string job states

Frontend (Marketplace):
- Add dark mode toggle with system preference detection
This commit is contained in:
oib
2026-02-15 19:02:51 +01:00
parent 72e21fd07f
commit 7062b2cc78
26 changed files with 1945 additions and 769 deletions

View File

@@ -388,7 +388,7 @@ curl -X GET https://aitbc.bubuit.net/api/v1/jobs/JOB_ID \
<ul>
<li><strong>Documentation</strong>: <a href="full-documentation.html">Full API reference</a></li>
<li><strong>Community</strong>: <a href="https://discord.gg/aitbc">Join our Discord</a></li>
<li><strong>Email</strong>: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
<li><strong>Email</strong>: <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a></li>
<li><strong>Status</strong>: <a href="https://status.aitbc.bubuit.net">System status</a></li>
</ul>
@@ -415,7 +415,7 @@ curl -X GET https://aitbc.bubuit.net/api/v1/jobs/JOB_ID \
<h2>Frequently Asked Questions</h2>
<div class="alert alert-info">
<strong>Question not answered?</strong> Contact us at <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a>
<strong>Question not answered?</strong> Contact us at <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a>
</div>
<h3>General</h3>

View File

@@ -585,7 +585,7 @@ gosec ./...</code></pre>
<li>Medium: $1,000 - $10,000</li>
<li>Low: $100 - $1,000</li>
</ul>
<p>Report vulnerabilities at: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></p>
<p>Report vulnerabilities at: <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a></p>
</section>
<section id="reference">
@@ -641,7 +641,7 @@ gosec ./...</code></pre>
<li>Documentation: <a href="full-documentation.html">Full Documentation</a></li>
<li>Community: <a href="https://discord.gg/aitbc">Discord</a></li>
<li>Issues: <a href="https://github.com/oib/AITBC/issues">GitHub Issues</a></li>
<li>Email: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
<li>Email: <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a></li>
</ul>
</section>
</div>

View File

@@ -3,9 +3,12 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/docs.css">
<link rel="stylesheet" href="../assets/css/docs.css">
<link rel="preload" href="../assets/css/font-awesome.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="../assets/css/font-awesome.min.css"></noscript>
<!-- Font Awesome CDN fallback -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" crossorigin="anonymous" media="print" onload="this.media='all'; this.onload=null;">
<title>Documentation - AITBC</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
<!-- Header -->
@@ -172,11 +175,7 @@
<i class="fas fa-git"></i>
<span>Source Code</span>
</a>
<a href="https://discord.gg/aitbc" class="link-item">
<i class="fab fa-discord"></i>
<span>Community</span>
</a>
<a href="mailto:aitbc@bubuit.net" class="link-item">
<a href="mailto:andreas.fleckl@bubuit.net" class="link-item">
<i class="fas fa-envelope"></i>
<span>Support</span>
</a>
@@ -186,17 +185,11 @@
<!-- Help Section -->
<section class="help-section">
<h2>Need Help?</h2>
<p>Can't find what you're looking for? Our community is here to help!</p>
<p>Can't find what you're looking for? Our support team is here to help!</p>
<div class="help-buttons">
<a href="https://discord.gg/aitbc" class="btn">
<i class="fab fa-discord"></i> Join Discord
</a>
<a href="mailto:aitbc@bubuit.net" class="btn btn-outline">
<a href="mailto:andreas.fleckl@bubuit.net" class="btn btn-outline">
<i class="fas fa-envelope"></i> Email Support
</a>
<a href="https://discord.gg/aitbc" class="btn btn-outline">
<i class="fas fa-comments"></i> Live Chat
</a>
</div>
</section>
</div>

View File

@@ -260,7 +260,7 @@ docker run -d \
<ul>
<li>Check the <a href="full-documentation.html">issue tracker</a></li>
<li>Join our <a href="https://discord.gg/aitbc">Discord</a></li>
<li>Contact: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
<li>Contact: <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a></li>
</ul>
</section>
</div>

View File

@@ -315,7 +315,7 @@ nano ~/.aitbc/miner.toml</div>
<li>Check the logs: <code>./aitbc-miner logs</code></li>
<li>Visit our Discord community</li>
<li>Search issues on Gitea</li>
<li>Email support: aitbc@bubuit.net</li>
<li>Email support: andreas.fleckl@bubuit.net</li>
</ul>
</section>

View File

@@ -260,7 +260,7 @@ BITCOIN_RPC_PASS=password</code></pre>
<h3>Contact</h3>
<ul>
<li>Email: <a href="mailto:aitbc@bubuit.net">aitbc@bubuit.net</a></li>
<li>Email: <a href="mailto:andreas.fleckl@bubuit.net">andreas.fleckl@bubuit.net</a></li>
<li>Discord: <a href="https://discord.gg/aitbc" target="_blank">discord.gg/aitbc</a></li>
</ul>
</section>