# Unignore all dirs
# !*/
+scripts/homepage.html
+scripts/gitweb-simplefrontend/services.html
http3 on;
# SSL Configuration
- ssl_certificate /etc/letsencrypt/live/nutra.tk/fullchain.pem; # managed by Certbot
- ssl_certificate_key /etc/letsencrypt/live/nutra.tk/privkey.pem; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/dev.nutra.tk/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/dev.nutra.tk/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;
if s["url"].startswith("/"):
s["url"] = f"https://git.nutra.tk{s['url']}"
- # Output 1: Git Services Only
- print(f"Generating Git Services map with {len(services_git)} items...")
- git_groups = [("", services_git)]
- git_html = generate_html("Git Services", git_groups)
-
- os.makedirs(OUTPUT_HTML.parent, exist_ok=True)
- with open(OUTPUT_HTML, "w") as f:
- f.write(git_html)
- print(f"Generated Git map at: {OUTPUT_HTML}")
-
# Output 2: Homepage (All Services)
OUTPUT_HTML_HOME = REPO_ROOT / "scripts/homepage.html"
# Calculate total items
total_items = sum(len(g[1]) for g in all_groups)
- print(f"Generating Homepage map with {total_items} items...")
# Construction Notice
construction_notice = """
"All Services", all_groups, intro_html=construction_notice
)
+ print(f"Generating Unified Service Map with {total_items} items...")
+
+ # Write to Homepage
with open(OUTPUT_HTML_HOME, "w") as f:
f.write(home_html)
print(f"Generated Homepage map at: {OUTPUT_HTML_HOME}")
+ # Write to Git Services (same content)
+ os.makedirs(OUTPUT_HTML.parent, exist_ok=True)
+ with open(OUTPUT_HTML, "w") as f:
+ f.write(home_html)
+ print(f"Generated Git map at: {OUTPUT_HTML}")
+
if __name__ == "__main__":
main()
+++ /dev/null
-<!DOCTYPE html>
-<html>
-<head>
- <title>Git Services</title>
- <style>
- body { font-family: sans-serif; max-width: 800px; margin: 2rem auto; line-height: 1.6; padding: 0 1rem; color: #e0e0e0; background: #1a1a2e; }
- h1 { border-bottom: 2px solid #333; padding-bottom: 0.5rem; color: #fff; }
- h2.group-header { margin-top: 2rem; border-bottom: 1px solid #333; color: #aaa; }
- .service { margin-bottom: 1.5rem; padding: 1.5rem; border: 1px solid #333; border-radius: 8px; background: #16213e; }
- .service:hover { background: #1f3460; box-shadow: 0 2px 8px rgba(0,0,0,0.4); border-color: #4a5568; }
- .service h3 { margin-top: 0; margin-bottom: 0.5rem; font-size: 1.25rem; }
- .service a { text-decoration: none; color: #60a5fa; }
- .service a:hover { text-decoration: underline; color: #93c5fd; }
- .desc { margin-bottom: 0.5rem; color: #b0b0b0; }
- .meta { font-size: 0.85em; color: #888; }
- footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #333; font-size: 0.8em; color: #666; text-align: center; }
- footer .ssi { font-family: monospace; background: #2d3748; padding: 0.2em 0.5em; border-radius: 3px; color: #a0aec0; }
- </style>
-</head>
-<body>
- <h1>Git Services</h1>
- <p class="meta">Generated automatically from Nginx configuration.</p>
-
-
- <div class="service">
- <h3><a href="https://git.nutra.tk/v1">https://git.nutra.tk/v1</a></h3>
- <div class="desc">Original Gitweb (Basic)</div>
- </div>
- <div class="service">
- <h3><a href="https://git.nutra.tk/v2">https://git.nutra.tk/v2</a></h3>
- <div class="desc">Styled Frontend (Theme, Static)</div>
- </div>
- <div class="service">
- <h3><a href="https://git.nutra.tk/v3">https://git.nutra.tk/v3</a></h3>
- <div class="desc">Gitea (Full Server with Backend, Main)</div>
- </div>
-
- <footer>
- <p>Built: 2026-01-21 17:41:17 | Services: 3 | Server: San Jose, CA</p>
- <p>Nginx: <span class="ssi">v<!--#echo var="nginx_version"--></span> |
- Protocol: <span class="ssi"><!--#echo var="server_protocol"--></span> |
- Served: <span class="ssi"><!--#echo var="date_local"--></span> |
- Latency: <span id="latency" class="ssi">...</span></p>
- <p>Hosted with love thanks to <a href="https://heliohost.org" target="_blank">HelioHost</a></p>
- </footer>
- <script>
- (function() {
- // IE11-compatible: use performance.timing (deprecated but widely supported)
- var timing = window.performance && window.performance.timing;
- if (timing) {
- window.onload = function() {
- var latency = timing.responseEnd - timing.requestStart;
- var el = document.getElementById('latency');
- if (el) el.textContent = latency + 'ms';
- };
- }
- })();
- </script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html>
-<head>
- <title>All Services</title>
- <style>
- body { font-family: sans-serif; max-width: 800px; margin: 2rem auto; line-height: 1.6; padding: 0 1rem; color: #e0e0e0; background: #1a1a2e; }
- h1 { border-bottom: 2px solid #333; padding-bottom: 0.5rem; color: #fff; }
- h2.group-header { margin-top: 2rem; border-bottom: 1px solid #333; color: #aaa; }
- .service { margin-bottom: 1.5rem; padding: 1.5rem; border: 1px solid #333; border-radius: 8px; background: #16213e; }
- .service:hover { background: #1f3460; box-shadow: 0 2px 8px rgba(0,0,0,0.4); border-color: #4a5568; }
- .service h3 { margin-top: 0; margin-bottom: 0.5rem; font-size: 1.25rem; }
- .service a { text-decoration: none; color: #60a5fa; }
- .service a:hover { text-decoration: underline; color: #93c5fd; }
- .desc { margin-bottom: 0.5rem; color: #b0b0b0; }
- .meta { font-size: 0.85em; color: #888; }
- footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #333; font-size: 0.8em; color: #666; text-align: center; }
- footer .ssi { font-family: monospace; background: #2d3748; padding: 0.2em 0.5em; border-radius: 3px; color: #a0aec0; }
- </style>
-</head>
-<body>
- <h1>All Services</h1>
- <p class="meta">Generated automatically from Nginx configuration.</p>
-
- <div class="intro">
- <p>The site is under construction/rebuild... all the services are run from two VPS servers, one with 1 GB and another with 2 GB of RAM.</p>
- <p>Please see the services we have online below during our extensive rebuild process (Jan 2026).</p>
- </div><h2 class="group-header">Core Services</h2>
- <div class="service">
- <h3><a href="https://api.dev.nutra.tk">https://api.dev.nutra.tk</a></h3>
- <div class="desc">API</div>
- </div>
- <div class="service">
- <h3><a href="https://mail.nutra.tk">https://mail.nutra.tk</a></h3>
- <div class="desc">Mail Server (Stalwart)</div>
- </div>
- <div class="service">
- <h3><a href="https://chat.nutra.tk">https://chat.nutra.tk</a></h3>
- <div class="desc">Matrix Chat</div>
- </div><h2 class="group-header">Git Services</h2>
- <div class="service">
- <h3><a href="https://git.nutra.tk/v1">https://git.nutra.tk/v1</a></h3>
- <div class="desc">Original Gitweb (Basic)</div>
- </div>
- <div class="service">
- <h3><a href="https://git.nutra.tk/v2">https://git.nutra.tk/v2</a></h3>
- <div class="desc">Styled Frontend (Theme, Static)</div>
- </div>
- <div class="service">
- <h3><a href="https://git.nutra.tk/v3">https://git.nutra.tk/v3</a></h3>
- <div class="desc">Gitea (Full Server with Backend, Main)</div>
- </div>
-
- <footer>
- <p>Built: 2026-01-21 17:41:17 | Services: 6 | Server: San Jose, CA</p>
- <p>Nginx: <span class="ssi">v<!--#echo var="nginx_version"--></span> |
- Protocol: <span class="ssi"><!--#echo var="server_protocol"--></span> |
- Served: <span class="ssi"><!--#echo var="date_local"--></span> |
- Latency: <span id="latency" class="ssi">...</span></p>
- <p>Hosted with love thanks to <a href="https://heliohost.org" target="_blank">HelioHost</a></p>
- </footer>
- <script>
- (function() {
- // IE11-compatible: use performance.timing (deprecated but widely supported)
- var timing = window.performance && window.performance.timing;
- if (timing) {
- window.onload = function() {
- var latency = timing.responseEnd - timing.requestStart;
- var el = document.getElementById('latency');
- if (el) el.textContent = latency + 'ms';
- };
- }
- })();
- </script>
-</body>
-</html>
\ No newline at end of file