forked from 3wordchant/capsul-flask
added FAQ, Changelog, and Support static pages
This commit is contained in:
parent
5d37f26585
commit
7932db90d5
@ -26,11 +26,9 @@ def create_app():
|
||||
|
||||
db.init_app(app)
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
return render_template("index.html")
|
||||
from capsulflask import auth, landing, console
|
||||
|
||||
from capsulflask import auth
|
||||
app.register_blueprint(landing.bp)
|
||||
|
||||
app.register_blueprint(auth.bp)
|
||||
|
||||
|
@ -37,7 +37,7 @@ def login():
|
||||
|
||||
if not email:
|
||||
error = "email is required"
|
||||
elif not re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email):
|
||||
elif len(email.strip()) < 6 or email.count('@') != 1 or email.count('.') == 0:
|
||||
error = "enter a valid email address"
|
||||
|
||||
if error is None:
|
||||
|
@ -14,3 +14,18 @@ from capsulflask.db import get_model
|
||||
|
||||
bp = Blueprint("landing", __name__, url_prefix="/")
|
||||
|
||||
@bp.route("/")
|
||||
def index():
|
||||
return render_template("index.html")
|
||||
|
||||
@bp.route("/faq")
|
||||
def faq():
|
||||
return render_template("faq.html")
|
||||
|
||||
@bp.route("/changelog")
|
||||
def changelog():
|
||||
return render_template("changelog.html")
|
||||
|
||||
@bp.route("/support")
|
||||
def support():
|
||||
return render_template("support.html")
|
@ -26,18 +26,24 @@ a:hover, a:active, a:visited {
|
||||
color: #b5bd68;
|
||||
}
|
||||
|
||||
header {
|
||||
nav .nav-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
nav .nav-row:last-child {
|
||||
justify-content: center;
|
||||
}
|
||||
nav .nav-row:last-child a, nav .nav-row:last-child div {
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
.flash {
|
||||
color: rgb(173, 74, 8);
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: 1px dashed rgb(173, 74, 8);
|
||||
border-radius: 2em;
|
||||
border-radius: 0.5em;
|
||||
margin-bottom: 2em;
|
||||
padding: 1em;
|
||||
}
|
||||
@ -45,6 +51,7 @@ header {
|
||||
main {
|
||||
border: 1px dashed #bdc7b8;
|
||||
padding: 1rem;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
.hero {
|
||||
@ -54,7 +61,7 @@ main {
|
||||
}
|
||||
|
||||
.single-content {
|
||||
margin: 4rem 0;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
form {
|
||||
@ -79,7 +86,7 @@ input {
|
||||
input[type=text] {
|
||||
font: calc(0.40rem + 1vmin) monospace;
|
||||
border: 0;
|
||||
border-bottom: 2px solid #777e73;
|
||||
border-bottom: 1px solid #777e73;
|
||||
min-width: 20em;
|
||||
outline: 0;
|
||||
}
|
||||
@ -100,7 +107,15 @@ h1, h2, h3, h4, h5 {
|
||||
}
|
||||
|
||||
ul li {
|
||||
margin-bottom: 1em;
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
.code {
|
||||
display: inline-block;
|
||||
padding: 0.5em 2em;
|
||||
border-radius: 0.5em;
|
||||
border: 1px solid #777e73;
|
||||
background: #bdc7b810;
|
||||
}
|
||||
|
||||
footer, p {
|
||||
|
@ -8,24 +8,32 @@
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div>
|
||||
<a href="/"><b>Capsul</b></a>💊
|
||||
<nav>
|
||||
<div class="nav-row">
|
||||
<div>
|
||||
<a href="/"><b>Capsul</b></a>💊
|
||||
</div>
|
||||
<div>
|
||||
{% if session["account"] %}
|
||||
{ {{ session["account"] }} <a href="{{ url_for('auth.logout') }}">Log Out</a> }
|
||||
{% else %}
|
||||
<a href="{{ url_for('auth.login') }}">Login</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
{% if session["account"] %}
|
||||
{ {{ session["account"] }} <a href="{{ url_for('auth.logout') }}">Log Out</a> }
|
||||
{% else %}
|
||||
<a href="{{ url_for('auth.login') }}">Login</a>
|
||||
{% endif %}
|
||||
<div class="nav-row">
|
||||
<a href="/faq">FAQ</a>
|
||||
<a href="/changelog">Changelog</a>
|
||||
<a href="/support">Support</a>
|
||||
</div>
|
||||
</header>
|
||||
</nav>
|
||||
{% for message in get_flashed_messages() %}
|
||||
<div class="flash">{{ message }}</div>
|
||||
{% endfor %}
|
||||
<main>
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
{% block subcontent %}{% endblock %}
|
||||
<footer>
|
||||
(c) Attribution-ShareAlike 4.0 International <br/>
|
||||
A service by Cyberia Computer Club 2020-<span class="bigtext">∞</span> <br/>
|
||||
|
29
capsulflask/templates/changelog.html
Normal file
29
capsulflask/templates/changelog.html
Normal file
@ -0,0 +1,29 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}Changelog{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="hero">
|
||||
<div class="single-content"><h1>CHANGELOG</h1></div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block subcontent %}
|
||||
<p>
|
||||
<ul>
|
||||
<li>2020-01-30: Baikal ownership transferred to Cyberia Computer Club</li>
|
||||
<li>2020-01-31: Prepping docs</li>
|
||||
<li>2020-02-26: Re-prepping docs</li>
|
||||
<li>2020-03-07: CVM goes live</li>
|
||||
<li>2020-03-10: CVM name changed to Capsul</li>
|
||||
<li>2020-03-10: Capsul site goes live</li>
|
||||
<li>2020-03-22: Alpine support added</li>
|
||||
<li>2020-03-25: Network limits made public</li>
|
||||
<li>2020-04-17: OpenBSD support added</li>
|
||||
<li>2020-04-26: Support link added</li>
|
||||
<li>2020-05-04: Simplified payment page</li>
|
||||
</ul>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block pagesource %}/templates/changelog.html{% endblock %}
|
||||
|
147
capsulflask/templates/faq.html
Normal file
147
capsulflask/templates/faq.html
Normal file
@ -0,0 +1,147 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}FAQ{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="hero">
|
||||
<div class="single-content"><h1>Frequently Asked Questions</h1></div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block subcontent %}
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
Which instance type should I buy?
|
||||
<ul><li>
|
||||
It depends a lot on your requirements, but I can lay down a few guidelines.
|
||||
<ul>
|
||||
<li>
|
||||
f1-s
|
||||
<ul>
|
||||
<li> blog </li>
|
||||
<li> vpn </li>
|
||||
<li> bot </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
f1-m
|
||||
<ul>
|
||||
<li> semi-popular blog </li>
|
||||
<li> complicated webapp </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
f1-l
|
||||
<ul>
|
||||
<li> big ol docker box? </li>
|
||||
<li> lightweight software builds </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
f1-x
|
||||
<ul>
|
||||
<li> large webservice with thousands of users </li>
|
||||
<li> rotund java app </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
f1-xx
|
||||
<ul>
|
||||
<li> gitlab (wow such memory very devops) </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
f1-xxx
|
||||
<ul>
|
||||
<li> waow big box </li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
How do I log in?
|
||||
<ul><li>
|
||||
<p>ssh to the ip provided to you using the cyberian user.</p>
|
||||
<pre class='code'>$ ssh cyberian@1.2.3.4</pre>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
How do I change to the root user?
|
||||
<ul><li>
|
||||
<p>The cyberian user has passwordless sudo access by default. This should work:</p>
|
||||
<pre class='code'>
|
||||
# Linux
|
||||
$ sudo su -
|
||||
|
||||
# OpenBSD
|
||||
$ doas su -</pre>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Do you offer reverse DNS?
|
||||
<ul><li>
|
||||
<p>We do, but right now it's a manual process. Shoot us an email and we'll get it done.</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
What if I don't pay?
|
||||
<ul><li>
|
||||
<p>Your VM will be deleted. You will receive coal.
|
||||
You will be banned from our minetest server.
|
||||
We will attempt to give you ample warning before nuking a server, but that's no guarantee.
|
||||
</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Besides my virtual machines and payments, what information do you keep about me?
|
||||
<ul><li>
|
||||
<p>We associate an email address with every VM so that we can track payment and respond to support requests.</p>
|
||||
<p>If you pay with a credit card, Stripe sends some additional details about you that we literally cannot delete.</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
What can I do with my VM?
|
||||
<ul><li>
|
||||
<p>Make it into a mailserver, a bitcoin miner, a VPN host, whatever.</p>
|
||||
<p>We place no restrictions on what you can do, as long as it's not illegal. Don't get us in trouble.</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Can you recover my passwords/insert new keys?
|
||||
<ul><li>
|
||||
<p>Can we? Technically yes. Will we? Never. It would violate the trust that our customers have in us.
|
||||
We have no interest in touching client VMs after they're running.
|
||||
If you lose access to your VM, that's on you.</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Do you offer refunds?
|
||||
<ul><li>
|
||||
<p>Not now.</p>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Do you offer support?
|
||||
<ul><li>
|
||||
<p>Yes. support@cyberia.club</p>
|
||||
<ul>
|
||||
<li>all volunteers have very busy schedules, but we will do our best to respond in a reasonable time period.</li>
|
||||
<li>If you would prefer private support, please send your mail to capsul@cyberia.club instead.</li>
|
||||
</ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
Will you implement feature X?
|
||||
<ul><li>
|
||||
Maybe! Email ops@cyberia.club and ask us about it.
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block pagesource %}/templates/changelog.html{% endblock %}
|
||||
|
@ -13,13 +13,12 @@
|
||||
\ /
|
||||
`"`
|
||||
</pre>
|
||||
<span>Simple, fast, private compute by <a href="https://cyberia.club">https://cyberia.club</a></span>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block subcontent %}
|
||||
<p>
|
||||
Simple, fast, private compute by <a href="https://cyberia.club">https://cyberia.club</a><br/><br/>
|
||||
|
||||
Spin up your choice of virtual machine by sending an email. <br/><br/>
|
||||
|
||||
<ul>
|
||||
<li>Simply log in with your email address </li>
|
||||
<li>All root disks are backed up at no charge</li>
|
||||
|
30
capsulflask/templates/support.html
Normal file
30
capsulflask/templates/support.html
Normal file
@ -0,0 +1,30 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}Support{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="hero">
|
||||
<div class="single-content">
|
||||
<h1>SUPPORT</h1>
|
||||
</div>
|
||||
|
||||
<div class="single-content">
|
||||
<a href="mailto:support@cyberia.club?subject=Please%20halp!">Click Here to Email Support</a> (support@cyberia.club)
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block subcontent %}
|
||||
<p>
|
||||
Note: We maintain a searchable archive of all support emails at
|
||||
<a href="https://lists.cyberia.club/~cyberia/support">https://lists.cyberia.club/~cyberia/support</a>
|
||||
</p>
|
||||
<p>
|
||||
If you do not want your mail to appear in a public archive, email capsul@cyberia.club instead.
|
||||
</p>
|
||||
<p>
|
||||
Please describe your problem or feature request, and we will do our best to get back to you promptly. Thank you very much.
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block pagesource %}/templates/support.html{% endblock %}
|
Loading…
Reference in New Issue
Block a user