Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
173 changes: 118 additions & 55 deletions static/index.html
Original file line number Diff line number Diff line change
@@ -1,68 +1,131 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<link rel="icon" type="image/png" href="favicon.png" />
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<link rel="icon" type="image/png" href="logo.png" />
<link rel="stylesheet" href="style.css">
<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@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<script src="script.js" type="module"></script>

<title>Rammerhead</title>
<title>Darkened</title>
</head>
<body>
<header>
<img src="logo.png" />
<h1>Rammerhead</h1>
</header>
<div class="container mb-5">
<p class="mt-3 mb-3 fw">Join the <a href="https://amethystnetwork-dev.github.io/discord/invite" target="_blank">Amethyst Network Discord server</a> or <a href="https://github.com/amethystnetwork-dev/Rammerhead" target="_blank">Fork me on GitHub</a></p>
<p class="mb-0 fw-bold">Notice: inactive sessions will be deleted after 3 days or if the server shuts down and does not persist files.</p>
<p class="mb-3 fw-bold">Notice 2: Treat every session id like an isolated incognito browser that
belongs only to you. DO NOT SHARE THE SESSION ID. All logins that you make with the session id will be saved
in that session. Anyone that has your session id or session url CAN ACCESS your logged in sites.</p>
<p class="mb-3 fw-bold text-danger" id="error-text" style="display: none">Error: some text</p>
<div class="input-group mb-2" id="password-wrapper" style="display: none">
<div class="input-group-prepend">
<span class="input-group-text">Enter password</span>
<!-- Animated background -->
<div class="bg-grid"></div>
<div class="bg-glow bg-glow-1"></div>
<div class="bg-glow bg-glow-2"></div>
<div class="bg-glow bg-glow-3"></div>

<div class="app-wrapper">
<!-- Header -->
<header>
<div class="logo-container">
<div class="logo-ring"></div>
<img src="logo.png" alt="Rammerhead" />
</div>
<h1>darkened.</h1>
<p class="tagline">Stealth browsing, redefined.</p>
</header>

<!-- Main card -->
<div class="glass-card main-card">
<!-- Status bar -->
<div class="status-bar">
<div class="status-dot"></div>
<span>SECURE CONNECTION</span>
</div>

<!-- Error display -->
<p class="error-text" id="error-text" style="display: none">Error: some text</p>

<!-- Password field -->
<div class="input-group mb-3" id="password-wrapper" style="display: none">
<span class="input-group-text"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg></span>
<input type="password" class="form-control" id="session-password"
placeholder="Enter access password...">
</div>

<!-- URL Input -->
<div class="url-input-group">
<div class="input-group">
<span class="input-group-text url-icon">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
</span>
<input type="text" class="form-control" id="session-url" placeholder="Enter URL to browse..." autocomplete="off" spellcheck="false">
<button class="btn btn-go" type="button" id="session-go">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
<span>GO</span>
</button>
</div>
</div>

<!-- Session ID -->
<div class="session-group">
<div class="input-group">
<span class="input-group-text session-icon">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
</span>
<input readonly type="text" class="form-control disable-text" id="session-id"
placeholder="Click 'New Session' to get started">
<button class="btn btn-session-create" type="button" id="session-create-btn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
<span>New Session</span>
</button>
</div>
</div>

<!-- Advanced toggle -->
<button class="btn-advanced-toggle" id="session-advanced-toggle">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
<span>Advanced Settings</span>
<svg class="chevron" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"/></svg>
</button>

<!-- Advanced options -->
<div class="advanced-panel" id="session-advanced-container" style="display: none">
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" role="switch" id="session-shuffling" checked>
<label class="form-check-label" for="session-shuffling">URL Shuffling</label>
</div>
<div class="input-group">
<span class="input-group-text">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"/><rect x="2" y="14" width="20" height="8" rx="2" ry="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></svg>
</span>
<input type="text" class="form-control" id="session-httpproxy"
placeholder="http://user:pass@proxy:port">
</div>
</div>
<input type="password" class="form-control" id="session-password"
placeholder="Password is given by host of this site.">
</div>
<div class="input-group mb-2">
<span class="input-group-text">Enter URL</span>
<input type="text" class="form-control" id="session-url" placeholder="https://www.google.com/">
<button class="btn btn-success" type="button" id="session-go">Go!</button>
</div>
<div class="input-group mb-4">
<span class="input-group-text">Session ID</span>
<input readonly type="text" class="form-control disable-text" id="session-id"
placeholder="click on 'Create new session ID' or 'Fill in existing session ID' from below">
<button class="btn btn-secondary" type="button" id="session-create-btn">Create new session ID</button>
</div>
<button class="btn btn-outline-secondary" id="session-advanced-toggle">Show advanced options</button>
<div class="mt-2 mb-4" id="session-advanced-container" style="display: none">
<div class="form-check mb-1">
<input class="form-check-input" type="checkbox" value="" id="session-shuffling" checked>
<label class="form-check-label" for="session-shuffling">Enable URL Shuffling</label>

<!-- Sessions table -->
<div class="glass-card sessions-card">
<div class="sessions-header">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
<span>Active Sessions</span>
</div>
<div class="input-group mb-3">
<span class="input-group-text">HTTP Proxy</span>
<input type="text" class="form-control" id="session-httpproxy"
placeholder="http://username:password@proxyipaddress:proxyport">
<div class="table-wrapper">
<table class="table">
<thead>
<tr>
<th>Session ID</th>
<th>Created</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<div class="row justify-content-center m-0">
<table class="table w-75 table-striped table-bordered">
<thead>
<tr>
<th>Session ID</th>
<th>Created on</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

<!-- Footer -->
<footer>
<span>Powered by Halt</span>
</footer>
</div>
</body>

</html>
</html>
Loading