mirror of
https://github.com/getumbrel/umbrel-apps.git
synced 2024-11-14 17:39:17 +00:00
153 lines
116 KiB
HTML
153 lines
116 KiB
HTML
|
<!doctype html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Tor Snowflake Proxy</title>
|
||
|
<style>/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}</style>
|
||
|
<style>
|
||
|
body {
|
||
|
background-color: #1D1B1B;
|
||
|
font-family: system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Segoe UI,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
|
||
|
color: #fff;
|
||
|
}
|
||
|
|
||
|
*, h1, h2, h3, h4, h5, h6, p, span {
|
||
|
color: #fff;
|
||
|
font-size: 20px;
|
||
|
font-weight: normal;
|
||
|
}
|
||
|
|
||
|
.success {
|
||
|
color: #63FB72;
|
||
|
}
|
||
|
|
||
|
.text-muted {
|
||
|
opacity: 0.8;
|
||
|
}
|
||
|
|
||
|
.text-small {
|
||
|
font-size: 14px;
|
||
|
}
|
||
|
|
||
|
hr {
|
||
|
width: 100%;
|
||
|
height: 2px;
|
||
|
background: #2F2C2C;
|
||
|
border: none;
|
||
|
margin: 40px 0;
|
||
|
}
|
||
|
|
||
|
.container {
|
||
|
padding: 40px;
|
||
|
max-width: 1440px;
|
||
|
margin: auto;
|
||
|
}
|
||
|
.container.terminal-container {
|
||
|
background-color: #101010;
|
||
|
border-radius: 30px;
|
||
|
margin-bottom: 40px;
|
||
|
}
|
||
|
|
||
|
.app-icon {
|
||
|
border-radius: 20px;
|
||
|
}
|
||
|
|
||
|
.app {
|
||
|
display: flex;
|
||
|
margin: 20px 0 40px 0;
|
||
|
}
|
||
|
|
||
|
.app > .app-icon {
|
||
|
flex-shrink: 0;
|
||
|
height: 140px;
|
||
|
width: 140px;
|
||
|
box-shadow: 0 0 40px 0 rgba(0,0,0,0.95);
|
||
|
margin-right: 24px;
|
||
|
}
|
||
|
|
||
|
.app > .app-details > .app-status {
|
||
|
display: block;
|
||
|
font-size: 20px;
|
||
|
margin: 10px 0 0 0;
|
||
|
}
|
||
|
|
||
|
.app > .app-details > .app-name {
|
||
|
font-size: 52px;
|
||
|
line-height: 52px;
|
||
|
font-weight: bold;
|
||
|
margin: 10px 0 0 0;
|
||
|
}
|
||
|
|
||
|
#terminal > iframe {
|
||
|
border: 0px !important;
|
||
|
position: relative !important;
|
||
|
height: 70vh !important;
|
||
|
width: 100% !important;
|
||
|
max-width: 1360px !important;
|
||
|
}
|
||
|
|
||
|
/* Firefox iframe-ception fix */
|
||
|
|
||
|
body.iframe {
|
||
|
background-color: #101010;
|
||
|
}
|
||
|
|
||
|
body.iframe .app-container {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
body.iframe .container.terminal-container {
|
||
|
border-radius: 0;
|
||
|
padding: 0;
|
||
|
margin: 0;
|
||
|
}
|
||
|
</style>
|
||
|
<link rel="shortcut icon" type="image/jpg" href="favicon.png" />
|
||
|
</head>
|
||
|
<body>
|
||
|
<section class="container app-container">
|
||
|
<div class="app">
|
||
|
<svg class="app-icon" width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
|
<rect width="256" height="256" fill="#3C194F"/>
|
||
|
<rect width="256" height="256" fill="url(#pattern0)" fill-opacity="0.2"/>
|
||
|
<path d="M128 51.5V79.5M128 205V176M104 56.5L128 79.5M128 79.5L152 56.5M128 79.5V176M104 200.5L128 176M128 176L152 200.5" stroke="white" stroke-width="5" stroke-linecap="round"/>
|
||
|
<path d="M73.7295 73.9787L93.5285 93.7776M182.27 182.52L161.764 162.013M60.2945 94.4848L93.5285 93.7776M93.5285 93.7776L94.2356 60.5436M93.5285 93.7776L161.764 162.013M162.118 196.308L161.764 162.013M161.764 162.013L196.059 162.367" stroke="white" stroke-width="5" stroke-linecap="round"/>
|
||
|
<path d="M51.25 128.25H79.25M204.75 128.25H175.75M56.25 152.25L79.25 128.25M79.25 128.25L56.25 104.25M79.25 128.25H175.75M200.25 152.25L175.75 128.25M175.75 128.25L200.25 104.25" stroke="white" stroke-width="5" stroke-linecap="round"/>
|
||
|
<path d="M73.7296 182.522L93.5286 162.723M182.27 73.9807L161.764 94.4868M94.2357 195.957L93.5286 162.723M93.5286 162.723L60.2945 162.016M93.5286 162.723L161.764 94.4868M196.059 94.1333L161.764 94.4868M161.764 94.4868L162.118 60.1922" stroke="white" stroke-width="5" stroke-linecap="round"/>
|
||
|
<defs>
|
||
|
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
|
||
|
<use xlink:href="#image0_1306_5927" transform="scale(0.00195312)"/>
|
||
|
</pattern>
|
||
|
<image id="image0_1306_5927" width="512" height="512" xlink:href="data:image/png;base64,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
|
||
|
</defs>
|
||
|
</svg>
|
||
|
<div class="app-details">
|
||
|
<span class="app-status success">● Running</span>
|
||
|
<h1 class="app-name">Tor Snowflake Proxy</h1>
|
||
|
</div>
|
||
|
</div>
|
||
|
<p class="text-muted">
|
||
|
Thank you for installing Tor Snowflake Proxy on your Umbrel to help defeat Tor censorship around the world.
|
||
|
</p>
|
||
|
<p class="text-muted">
|
||
|
No further action is required from your end other than keeping your Umbrel running. :)
|
||
|
</p>
|
||
|
<hr/>
|
||
|
<p class="text-muted text-small">
|
||
|
Hourly statistics of the data relayed through your proxy are available below.
|
||
|
</p>
|
||
|
</section>
|
||
|
<section class="container terminal-container">
|
||
|
<div id="terminal"></div>
|
||
|
</section>
|
||
|
<script src="./js/hterm.js"></script>
|
||
|
<script src="./auth_token.js"></script>
|
||
|
<script src="./js/gotty.js"></script>
|
||
|
<!-- Firefox iframe-ception fix -->
|
||
|
<script>
|
||
|
if (window.location !== window.parent.location) {
|
||
|
document.body.classList.add('iframe');
|
||
|
}
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|