diff --git a/Caddyfile b/Caddyfile index 772f55e..74d2937 100644 --- a/Caddyfile +++ b/Caddyfile @@ -39,3 +39,6 @@ http://{$FILES_DOMAIN}:8550 { reverse_proxy http://lufi:8081 } +http://{$HOMR_DOMAIN} { + respond "KFDJSLKFJSLKFJSLKFDJLKDS" 200 +} diff --git a/docker-compose.yml b/docker-compose.yml index cdae25c..79ace23 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,10 +7,12 @@ services: volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro,Z - caddy-data:/data + - ./public:/var/www/share environment: - PASTE_DOMAIN=${PASTE_DOMAIN} - FILES_DOMAIN=${FILES_DOMAIN} - SHORT_DOMAIN=${SHORT_DOMAIN} + - HOME_DOMAIN=${HOME_DOMAIN} - INITIAL_API_KEY=${INITIAL_API_KEY} networks: - proxy diff --git a/public/app.js b/public/app.js new file mode 100644 index 0000000..40589b0 --- /dev/null +++ b/public/app.js @@ -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); } + diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..3753773 --- /dev/null +++ b/public/index.html @@ -0,0 +1,51 @@ + + + + + + ION606's sharing hub + + + + + + + + + + +
+
+

quick links

+

pick a destination:

+ +

psst: bookmark this page at share.ion606.com for next time.

+
+ +
+

what are these?

+ +
+
+ + + + + + + diff --git a/public/links.js b/public/links.js new file mode 100644 index 0000000..4591947 --- /dev/null +++ b/public/links.js @@ -0,0 +1,4 @@ +export const privateNoteUrl = "https://bin.ion606.com", + fileDropUrl = "https://tfiles.ion606.com", + homeDomain = "share.ion606.com"; + diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..4e68081 --- /dev/null +++ b/public/styles.css @@ -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; +} + diff --git a/setup.sh b/setup.sh index bd41ca5..0d6d30a 100644 --- a/setup.sh +++ b/setup.sh @@ -4,6 +4,7 @@ ADMIN_EMAIL=ion606@protonmail.com PASTE_DOMAIN=bin.ion606.com FILES_DOMAIN=tfiles.ion606.com SHORT_DOMAIN=s.ion606.com +HOME_DOMAIN=share.ion606.com INITIAL_API_KEY=$(openssl rand -hex 32) LUFI_SECRET=$(openssl rand -hex 32)