feat: Add terms and 404 pages
All checks were successful
Build Docker / Build Bot (push) Successful in 20s
Build Docker / Build Master (push) Successful in 25s

This commit is contained in:
Nathan Woodburn 2023-11-17 17:01:14 +11:00
parent 0988333f3b
commit 086bab83d3
Signed by: nathanwoodburn
GPG Key ID: 203B000478AD0EF1
11 changed files with 232 additions and 29 deletions

View File

@ -843,6 +843,15 @@ def send_report(path):
return send_from_directory('templates/assets', path) return send_from_directory('templates/assets', path)
@app.route('/terms')
def terms():
return render_template('terms.html')
# 404 route
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
# Start the server # Start the server

31
master/templates/404.html Normal file
View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html data-bs-theme="dark" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>HNSHosting WP</title>
<link rel="canonical" href="https://wp.hnshosting.au/404.html">
<meta property="og:url" content="https://wp.hnshosting.au/404.html">
<meta name="description" content="HNS Hosting Wordpress">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&amp;display=swap">
<link rel="stylesheet" href="assets/css/404.css">
</head>
<body>
<p>HTTP:&nbsp;<span>404</span></p>
<div class="text-center">
<div class="text-start" style="display: inline-block;"><code><em>this_page</em>.<em>found</em>&nbsp;= false;</code><code><span>if</span>&nbsp;(<b>you_spelt_it_wrong</b>(<em>this_page</em>)) {<br><span class="tab-space"></span><b>try_again</b>();<br>}&nbsp;<span>else if</span> (!<em>this_page</em>.<b>content</b>) {<br><span class="tab-space"></span><b>you_spelt_it_wrong</b>('<i>You're lost! I'll send you back home</i>');<br><span class="tab-space"></span><span>window</span>.<b>location</b>&nbsp;= <em>home</em>;<br>}</code></div>
</div>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/404.js"></script>
<script src="assets/js/bold-and-dark.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,79 @@
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
background: #282828;
overflow-y: auto;
}
p {
font-family: "Bevan", cursive;
font-size: 130px;
margin: 10vh 0 0;
text-align: center;
overflow-y: auto;
letter-spacing: 5px;
/*background-color: black;*/
color: black;
text-shadow: 2px 2px 3px rgba(255, 255, 255, 0.1);
-webkit-background-clip: text;
-moz-background-clip: text;
background-clip: text;
}
p span {
font-size: 1.2em;
}
code {
color: #bdbdbd;
text-align: left;
display: block;
overflow-y: auto;
font-size: 16px;
margin: 0 30px 25px;
}
code span {
color: #f0c674;
}
code i {
color: #b5bd68;
}
code em {
color: #b294bb;
font-style: unset;
}
code b {
color: #81a2be;
font-weight: 500;
overflow-y: auto;
}
a {
color: #8abeb7;
font-family: monospace;
font-size: 20px;
text-decoration: underline;
overflow-y: auto;
margin-top: 10px;
display: inline-block;
}
@media screen and (max-width: 880px) {
p {
font-size: 14vw;
overflow-y: auto;
}
}
.tab-space {
margin-left: 2em;
}

View File

@ -0,0 +1,30 @@
function callback(){
return function(){
alert("We're really sorry about that.");
window.location = '/';
}
}
var a = "world";
setTimeout(callback(), 7000);
function type(n, t) {
var str = document.getElementsByTagName("code")[n].innerHTML.toString();
var i = 0;
document.getElementsByTagName("code")[n].innerHTML = "";
setTimeout(function() {
var se = setInterval(function() {
i++;
document.getElementsByTagName("code")[n].innerHTML =
str.slice(0, i) + "|";
if (i == str.length) {
clearInterval(se);
document.getElementsByTagName("code")[n].innerHTML = str;
}
}, 10);
}, t);
}
type(0, 0);
type(1, 600);
type(2, 1300);

View File

@ -1,12 +1,10 @@
// Wait for 10 seconds // Refresh page without status arg
// Wait 10 seconds
setTimeout(function() { setTimeout(function() {
// Get the 'domain' parameter from the current URL // Refresh page
var urlParams = new URLSearchParams(window.location.search); // Get domain from param
var domain = urlParams.get('domain'); var domain = urlParams.get('domain');
// Construct the new URL with the 'domain' parameter window.location = "https://hnshosting.au/success?domain=" + domain;
var newURL = "https://hnshosting.au/info?domain=" + domain;
// Redirect to the new URL
window.location.href = newURL;
}, 10000); }, 10000);

View File

@ -32,7 +32,7 @@
<ul class="navbar-nav mx-auto"> <ul class="navbar-nav mx-auto">
<li class="nav-item"><a class="nav-link active" href="/">Home</a></li> <li class="nav-item"><a class="nav-link active" href="/">Home</a></li>
<li class="nav-item"><a class="nav-link active" href="/#contact">Contact</a></li> <li class="nav-item"><a class="nav-link active" href="/#contact">Contact</a></li>
<li class="nav-item"><a class="nav-link" href="register">Register Site</a></li> <li class="nav-item"><a class="nav-link" href="/register">Register Site</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -42,10 +42,10 @@
<div class="row pt-5"> <div class="row pt-5">
<div class="col-md-8 col-xl-6 text-center text-md-start mx-auto"> <div class="col-md-8 col-xl-6 text-center text-md-start mx-auto">
<div class="text-center"> <div class="text-center">
<h1 class="fw-bold">The best solution for your Handshake domain</h1> <h1 class="fw-bold">A simple and easy way to actually use your domain.</h1>
</div> </div>
<p class="text-center" style="padding-bottom: 50px;padding-top: 25px;">Wordpress allows you to have an easily customizable website on your Handshake domain.</p> <p class="text-center" style="padding-bottom: 50px;padding-top: 25px;">Wordpress allows you to have an easily customizable website on your Handshake domain.</p>
<p class="text-center" style="font-size: 22px;">Currently hosting {{site_count}} sites!</p> <p class="text-center" style="font-size: 22px;">Currently hosting {{site_count}} wordpress sites!</p>
</div> </div>
</div> </div>
</div> </div>
@ -92,7 +92,7 @@
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path> <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
</svg></div> </svg></div>
<h5 class="fw-bold card-title">Regular backups</h5> <h5 class="fw-bold card-title">Regular backups</h5>
<p class="text-muted card-text mb-4">The worker server has regular encrypted backups to an offsite location to allow recovery of any data if the server goes down.</p> <p class="text-muted card-text mb-4">The worker servers has weekly encrypted backups to an offsite location to allow recovery of any data if the server goes down.</p>
</div> </div>
</div> </div>
</div> </div>
@ -115,7 +115,7 @@
<div class="col mb-4"> <div class="col mb-4">
<div class="card bg-secondary-light"> <div class="card bg-secondary-light">
<div class="card-body text-center px-4 py-5 px-md-5"> <div class="card-body text-center px-4 py-5 px-md-5">
<p class="fw-bold text-secondary card-text mb-2">Free Licences</p> <p class="fw-bold text-secondary card-text mb-2">Free Licences supported by OpenSystems</p>
<h5 class="fw-bold card-title mb-3">We offer a free tier with 1 GB storage capacity.<br>If you would like more please contact us to find an acceptable price for you.<br>Join our Discord for a free licence</h5> <h5 class="fw-bold card-title mb-3">We offer a free tier with 1 GB storage capacity.<br>If you would like more please contact us to find an acceptable price for you.<br>Join our Discord for a free licence</h5>
</div> </div>
</div> </div>
@ -162,7 +162,7 @@
<div class="container py-4 py-lg-5"> <div class="container py-4 py-lg-5">
<hr> <hr>
<div class="text-muted d-flex justify-content-between align-items-center pt-3"> <div class="text-muted d-flex justify-content-between align-items-center pt-3">
<p class="mb-0">Copyright © 2023 HNSHosting</p> <p class="mb-0">Copyright © 2023 HNSHosting</p><a href="/terms">Terms &amp; Privacy</a>
</div> </div>
</div> </div>
</footer> </footer>

View File

@ -24,7 +24,7 @@
<ul class="navbar-nav mx-auto"> <ul class="navbar-nav mx-auto">
<li class="nav-item"><a class="nav-link" href="/">Home</a></li> <li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<li class="nav-item"><a class="nav-link" href="/#contact">Contact</a></li> <li class="nav-item"><a class="nav-link" href="/#contact">Contact</a></li>
<li class="nav-item"><a class="nav-link" href="register">Register Site</a></li> <li class="nav-item"><a class="nav-link" href="/register">Register Site</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -59,7 +59,7 @@
<div class="container py-4 py-lg-5"> <div class="container py-4 py-lg-5">
<hr> <hr>
<div class="text-muted d-flex justify-content-between align-items-center pt-3"> <div class="text-muted d-flex justify-content-between align-items-center pt-3">
<p class="mb-0">Copyright © 2023 HNSHosting</p> <p class="mb-0">Copyright © 2023 HNSHosting</p><a href="/terms">Terms &amp; Privacy</a>
</div> </div>
</div> </div>
</footer> </footer>

View File

@ -24,7 +24,7 @@
<ul class="navbar-nav mx-auto"> <ul class="navbar-nav mx-auto">
<li class="nav-item"><a class="nav-link" href="/">Home</a></li> <li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<li class="nav-item"><a class="nav-link" href="/#contact">Contact</a></li> <li class="nav-item"><a class="nav-link" href="/#contact">Contact</a></li>
<li class="nav-item"><a class="nav-link" href="register">Register Site</a></li> <li class="nav-item"><a class="nav-link" href="/register">Register Site</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -35,9 +35,7 @@
<div class="col-md-8 col-xl-6 text-center text-md-start mx-auto"> <div class="col-md-8 col-xl-6 text-center text-md-start mx-auto">
<div class="text-center"> <div class="text-center">
<p class="fw-bold text-success mb-2">Success</p> <p class="fw-bold text-success mb-2">Success</p>
<h1 class="fw-bold">{{title| safe}}</h1> <h1 class="fw-bold">{{title | safe}</h1></div><p class="text-center">{{message | safe}}</p>
</div>
<p class="text-center">{{message | safe}}</p>
</div> </div>
</div> </div>
</div> </div>
@ -46,7 +44,7 @@
<div class="container py-4 py-lg-5"> <div class="container py-4 py-lg-5">
<hr> <hr>
<div class="text-muted d-flex justify-content-between align-items-center pt-3"> <div class="text-muted d-flex justify-content-between align-items-center pt-3">
<p class="mb-0">Copyright © 2023 HNSHosting</p> <p class="mb-0">Copyright © 2023 HNSHosting</p><a href="/terms">Terms &amp; Privacy</a>
</div> </div>
</div> </div>
</footer> </footer>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html data-bs-theme="dark" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Terms - HNSHosting</title>
<link rel="canonical" href="https://wp.hnshosting.au/terms.html">
<meta property="og:url" content="https://wp.hnshosting.au/terms.html">
<meta name="description" content="HNS Hosting Wordpress">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="508x430" href="assets/img/favicon.png">
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&amp;display=swap">
</head>
<body>
<nav class="navbar navbar-expand-md sticky-top py-3 navbar-dark" id="mainNav">
<div class="container"><a class="navbar-brand d-flex align-items-center" href="/"><span class="bs-icon-sm bs-icon-circle bs-icon-primary shadow d-flex justify-content-center align-items-center me-2 bs-icon" style="background: transparent;"><img src="assets/img/favicon.png" style="width: 100%;"></span><span>HNSHosting</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navcol-1">
<ul class="navbar-nav mx-auto">
<li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<li class="nav-item"><a class="nav-link" href="/#contact">Contact</a></li>
<li class="nav-item"><a class="nav-link" href="/register">Register Site</a></li>
</ul>
</div>
</div>
</nav>
<section class="py-5">
<div class="container py-5">
<div class="row mb-4 mb-lg-5">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<p class="fw-bold text-success mb-2">Terms of Service</p>
</div>
</div>
<div class="row d-flex justify-content-center">
<div class="col">
<p>Terms of Service for HNSHosting Website Hosting<br><br>Last Updated: 17/11/23<br><br>Welcome to HNSHosting! Please carefully read the following terms before using our hosting services.<br><br>By using our website hosting services, you agree to comply with and be bound by the following terms and conditions. If you do not agree to these terms, please do not use our services.<br><br><strong>1. Acceptance of Terms:</strong><br>By accessing or using our website hosting services, you agree to these Terms of Service and all applicable laws and regulations.<br><br><strong>2. Hosting Services:</strong><br>HNSHosting provides hosting services for websites, and related content.<br><br><strong>3. Account Registration:</strong><br>To use our hosting services, you must create a Wordpress administrator account. You are responsible for maintaining the security of your account and any actions taken under your account credentials.<br><br><strong>4. Payment and Billing:</strong><br>Payment for hosting services is required in accordance with the pricing and billing terms specified on our website. Failure to pay may result in the suspension or termination of your hosting services.<br><br><strong>5. Content and Usage:</strong><br>You are solely responsible for the content hosted on your website. You agree not to host any content that violates applicable laws or infringes on the rights of others. This includes anything usually classified as <em>NSFW</em>. HNSHosting reserves the right to suspend or terminate services for any user found in violation of this provision.<br><br><strong>6. Data Security:</strong><br>We implement reasonable measures to protect the security of your data, but we cannot guarantee its absolute security. You should backup any critical data using your own backup solution.<br><br><strong>7. Uptime and Downtime:</strong><br>HNSHosting strives to provide high uptime for its hosting services. However, downtime may occur for maintenance or other reasons. We will make reasonable efforts to notify you in advance of scheduled maintenance.<br><br><strong>8. Support:</strong><br>We offer customer support for technical issues related to our hosting services. Support availability and response times may vary. We can not guarantee support for issues unrelated to our hosting services.<br><br><strong>9. Termination:</strong><br>HNSHosting reserves the right to terminate or suspend your account at any time for violation of these terms or for any other reason. You may also terminate your account by contacting us.<br><br><strong>10. Changes to Terms:</strong><br>HNSHosting reserves the right to modify these Terms of Service at any time. Any changes will be effective immediately upon posting on our website. It is your responsibility to review these terms regularly.<br><br><br>By using our hosting services, you agree to these terms. If you have any questions or concerns, please contact us.<br>Thank you for choosing HNSHosting Services!<br><br><br><br><br><br></p>
</div>
</div>
</div>
</section>
<footer class="bg-dark">
<div class="container py-4 py-lg-5">
<hr>
<div class="text-muted d-flex justify-content-between align-items-center pt-3">
<p class="mb-0">Copyright © 2023 HNSHosting</p><a href="/terms">Terms &amp; Privacy</a>
</div>
</div>
</footer>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/bold-and-dark.js"></script>
</body>
</html>