mirror of
https://github.com/ION606/sharing.git
synced 2026-05-14 21:56:54 +00:00
FIXME: share.ion606.com broken
This commit is contained in:
@@ -39,3 +39,6 @@ http://{$FILES_DOMAIN}:8550 {
|
|||||||
reverse_proxy http://lufi:8081
|
reverse_proxy http://lufi:8081
|
||||||
}
|
}
|
||||||
|
|
||||||
|
http://{$HOMR_DOMAIN} {
|
||||||
|
respond "KFDJSLKFJSLKFJSLKFDJLKDS" 200
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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); }
|
||||||
|
|
||||||
@@ -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>
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export const privateNoteUrl = "https://bin.ion606.com",
|
||||||
|
fileDropUrl = "https://tfiles.ion606.com",
|
||||||
|
homeDomain = "share.ion606.com";
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user