FIXME: share.ion606.com broken

This commit is contained in:
ION606
2025-08-25 23:09:03 -04:00
parent c2dd971eb1
commit c22bfbb53e
7 changed files with 169 additions and 0 deletions
+3
View File
@@ -39,3 +39,6 @@ http://{$FILES_DOMAIN}:8550 {
reverse_proxy http://lufi:8081 reverse_proxy http://lufi:8081
} }
http://{$HOMR_DOMAIN} {
respond "KFDJSLKFJSLKFJSLKFDJLKDS" 200
}
+2
View File
@@ -7,10 +7,12 @@ services:
volumes: volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro,Z - ./Caddyfile:/etc/caddy/Caddyfile:ro,Z
- caddy-data:/data - caddy-data:/data
- ./public:/var/www/share
environment: environment:
- PASTE_DOMAIN=${PASTE_DOMAIN} - PASTE_DOMAIN=${PASTE_DOMAIN}
- FILES_DOMAIN=${FILES_DOMAIN} - FILES_DOMAIN=${FILES_DOMAIN}
- SHORT_DOMAIN=${SHORT_DOMAIN} - SHORT_DOMAIN=${SHORT_DOMAIN}
- HOME_DOMAIN=${HOME_DOMAIN}
- INITIAL_API_KEY=${INITIAL_API_KEY} - INITIAL_API_KEY=${INITIAL_API_KEY}
networks: networks:
- proxy - proxy
+17
View File
@@ -0,0 +1,17 @@
import { privateNoteUrl, fileDropUrl, homeDomain } from "./links.js";
const yearEl = document.querySelector("#year"),
homeDomainEl = document.querySelector("#home-domain"),
noteLink = document.querySelector('[data-link="note"]'),
dropLink = document.querySelector('[data-link="drop"]');
// set the current year
if (yearEl) { yearEl.textContent = String(new Date().getFullYear()); }
// set home domain text
if (homeDomainEl) { homeDomainEl.textContent = homeDomain; }
// wire up links from config
if (noteLink) { noteLink.setAttribute("href", privateNoteUrl); }
if (dropLink) { dropLink.setAttribute("href", fileDropUrl); }
+51
View File
@@ -0,0 +1,51 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ION606's sharing hub</title>
<meta name="description" content="friendly landing page linking to privatenote and lufi.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="./styles.css">
</head>
<body>
<!-- all comments are lower case -->
<header class="site-header">
<div class="container">
<h1 class="brand"><span aria-hidden="true"></span> ion606 hub</h1>
<p class="tagline">welcome to my privatenote and lufi instances!</p>
</div>
</header>
<main class="container">
<section class="card">
<h2>quick links</h2>
<p>pick a destination:</p>
<nav class="actions">
<a class="btn" data-link="note" href="#" rel="noopener">open privatenote</a>
<a class="btn secondary" data-link="drop" href="#" rel="noopener">open lufi</a>
</nav>
<p class="hint">psst: bookmark this page at <strong id="home-domain">share.ion606.com</strong> for next time.</p>
</section>
<section class="card info">
<h3>what are these?</h3>
<ul class="bullets">
<li><strong>privatenote</strong> is an end-to-end encrypted pastebin for sharing text or code snippets securely.</li>
<li><strong>lufi</strong> lets you upload and share files; encryption happens before upload for extra privacy.</li>
</ul>
</section>
</main>
<footer class="site-footer">
<div class="container">
<p><span id="year"></span> · served by caddy · made with ❤️</p>
</div>
</footer>
<script type="module" src="./app.js"></script>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
export const privateNoteUrl = "https://bin.ion606.com",
fileDropUrl = "https://tfiles.ion606.com",
homeDomain = "share.ion606.com";
+91
View File
@@ -0,0 +1,91 @@
:root {
--bg: #0b0f14;
--panel: #121821;
--text: #e6edf3;
--muted: #9fb0c0;
--accent: #7cc7ff;
--accent-2: #8ae3cf;
--btn-bg: #1a2330;
--btn-border: #2a374a;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: radial-gradient(1000px 600px at 10% -10%, rgba(124,199,255,.12), transparent 60%),
radial-gradient(800px 500px at 110% 10%, rgba(138,227,207,.12), transparent 60%), var(--bg);
color: var(--text);
font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
line-height: 1.6;
}
.container {
max-width: 880px;
margin: 0 auto;
padding: 1.25rem;
}
.site-header {
padding: 2.5rem 0 1rem;
text-align: center;
}
.brand {
margin: 0 0 .5rem;
font-size: clamp(1.6rem, 3vw, 2rem);
letter-spacing: .2px;
}
.tagline {
margin: 0;
color: var(--muted);
}
.card {
background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
border: 1px solid rgba(255,255,255,.08);
border-radius: 16px;
padding: 1.25rem;
margin: 1rem 0;
box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.card.info { color: var(--muted); }
.actions {
display: flex;
flex-wrap: wrap;
gap: .75rem;
margin: 1rem 0 0;
}
.btn {
display: inline-block;
padding: .9rem 1.1rem;
border-radius: 12px;
background: var(--btn-bg);
border: 1px solid var(--btn-border);
color: var(--text);
text-decoration: none;
font-weight: 600;
transition: transform .06s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn.secondary { background: #101723; }
.hint { color: var(--muted); font-size: .95rem; }
.bullets { padding-left: 1.1rem; }
.site-footer {
text-align: center;
padding: 2rem 0 3rem;
color: var(--muted);
font-size: .95rem;
}
+1
View File
@@ -4,6 +4,7 @@ ADMIN_EMAIL=ion606@protonmail.com
PASTE_DOMAIN=bin.ion606.com PASTE_DOMAIN=bin.ion606.com
FILES_DOMAIN=tfiles.ion606.com FILES_DOMAIN=tfiles.ion606.com
SHORT_DOMAIN=s.ion606.com SHORT_DOMAIN=s.ion606.com
HOME_DOMAIN=share.ion606.com
INITIAL_API_KEY=$(openssl rand -hex 32) INITIAL_API_KEY=$(openssl rand -hex 32)
LUFI_SECRET=$(openssl rand -hex 32) LUFI_SECRET=$(openssl rand -hex 32)