Domain Strategy: - fig.systems: Homelab services only (removed edfig.dev fallback from all services) - edfig.dev: Professional/public sites (personal site, blog) - figgy.foo: Experimental/private content (SSO protected) Removed edfig.dev Fallbacks: - Updated 22 compose files to remove || Host(...edfig.dev) pattern - All homelab services now use fig.systems only - Traefik email remains admin@edfig.dev Added Caddy Static Sites Service: - compose/services/static-sites/ with Caddy 2 - Serves three domains with different configurations: * edfig.dev (personal/professional) - Public, no SSO * blog.edfig.dev (blog) - Public, Markdown rendering, templates * figgy.foo (experimental) - SSO protected, directory browsing - Example sites with modern, responsive designs - Comprehensive README with usage examples - Auto-reload on config changes (no restarts needed) Features: - Markdown rendering (write .md, serves as HTML) - Go templates for dynamic content - Directory browsing (figgy.foo) - Automatic gzip compression - Static asset caching - Zero-downtime config reloads Updated Documentation: - README.md: Added domain strategy section, static sites in directory structure - README.md: Added static sites to service URLs table - README.md: Updated deployment instructions
191 lines
5.3 KiB
HTML
191 lines
5.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>figgy.foo | Experimental Lab</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Courier New', monospace;
|
|
line-height: 1.6;
|
|
color: #0f0;
|
|
background: #000;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 20px;
|
|
}
|
|
|
|
.terminal {
|
|
max-width: 800px;
|
|
width: 100%;
|
|
background: #1a1a1a;
|
|
border: 2px solid #0f0;
|
|
border-radius: 5px;
|
|
box-shadow: 0 0 20px rgba(0, 255, 0, 0.3);
|
|
}
|
|
|
|
.terminal-header {
|
|
background: #0f0;
|
|
color: #000;
|
|
padding: 10px 15px;
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.terminal-buttons {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.terminal-button {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
background: #000;
|
|
}
|
|
|
|
.terminal-body {
|
|
padding: 20px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.prompt {
|
|
color: #0ff;
|
|
}
|
|
|
|
.command {
|
|
color: #ff0;
|
|
}
|
|
|
|
.output {
|
|
color: #0f0;
|
|
margin-left: 20px;
|
|
}
|
|
|
|
.line {
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.cursor {
|
|
display: inline-block;
|
|
width: 8px;
|
|
height: 16px;
|
|
background: #0f0;
|
|
animation: blink 1s infinite;
|
|
}
|
|
|
|
@keyframes blink {
|
|
0%, 50% { opacity: 1; }
|
|
51%, 100% { opacity: 0; }
|
|
}
|
|
|
|
.warning {
|
|
color: #ff0;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
a {
|
|
color: #0ff;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.ascii-art {
|
|
color: #0f0;
|
|
font-size: 10px;
|
|
line-height: 1.2;
|
|
white-space: pre;
|
|
margin: 20px 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="terminal">
|
|
<div class="terminal-header">
|
|
<div class="terminal-buttons">
|
|
<div class="terminal-button"></div>
|
|
<div class="terminal-button"></div>
|
|
<div class="terminal-button"></div>
|
|
</div>
|
|
<span>figgy.foo — Terminal</span>
|
|
</div>
|
|
<div class="terminal-body">
|
|
<div class="ascii-art">
|
|
______ _ ______
|
|
| ____(_) | ____|
|
|
| |__ _ __ _ __ _ _ _| |__ ___ ___
|
|
| __| | |/ _` |/ _` | | | | __| / _ \ / _ \
|
|
| | | | (_| | (_| | |_| | | | (_) | (_) |
|
|
|_| |_|\__, |\__, |\__, |_| \___/ \___/
|
|
__/ | __/ | __/ |
|
|
|___/ |___/ |___/
|
|
</div>
|
|
|
|
<div class="line">
|
|
<span class="prompt">root@figgy:~$</span> <span class="command">whoami</span>
|
|
</div>
|
|
<div class="output line">experimental lab user</div>
|
|
|
|
<div class="line">
|
|
<span class="prompt">root@figgy:~$</span> <span class="command">ls -la</span>
|
|
</div>
|
|
<div class="output line">
|
|
drwxr-xr-x 3 root root 4096 Jan 10 2025 .
|
|
drwxr-xr-x 24 root root 4096 Jan 10 2025 ..
|
|
drwxr-xr-x 2 root root 4096 Jan 10 2025 experiments
|
|
-rw-r--r-- 1 root root 420 Jan 10 2025 README.txt
|
|
</div>
|
|
|
|
<div class="line">
|
|
<span class="prompt">root@figgy:~$</span> <span class="command">cat README.txt</span>
|
|
</div>
|
|
<div class="output line">
|
|
╔════════════════════════════════════════════╗
|
|
║ FIGGY.FOO EXPERIMENTAL LAB ║
|
|
╚════════════════════════════════════════════╝
|
|
|
|
<span class="warning">WARNING:</span> This is a private experimental environment.
|
|
Access is restricted to authorized users only.
|
|
|
|
Purpose:
|
|
• Test new services before production
|
|
• Develop and debug configurations
|
|
• Experiment with new technologies
|
|
• Break things safely
|
|
|
|
Directory Browsing: ENABLED
|
|
Authentication: REQUIRED (SSO)
|
|
|
|
Access Dashboard: <a href="https://home.fig.systems">home.fig.systems</a>
|
|
Status Monitor: <a href="https://status.fig.systems">status.fig.systems</a>
|
|
</div>
|
|
|
|
<div class="line">
|
|
<span class="prompt">root@figgy:~$</span> <span class="command">./list-services.sh</span>
|
|
</div>
|
|
<div class="output line">
|
|
Production Homelab: <a href="https://home.fig.systems">home.fig.systems</a>
|
|
Professional Site: <a href="https://edfig.dev">edfig.dev</a>
|
|
Blog: <a href="https://blog.edfig.dev">blog.edfig.dev</a>
|
|
</div>
|
|
|
|
<div class="line">
|
|
<span class="prompt">root@figgy:~$</span> <span class="cursor"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|