added FAQ, Changelog, and Support static pages

docker-api
forest 3 years ago
parent 5d37f26585
commit 7932db90d5
  1. 6
      capsulflask/__init__.py
  2. 2
      capsulflask/auth.py
  3. 15
      capsulflask/landing.py
  4. 25
      capsulflask/static/style.css
  5. 28
      capsulflask/templates/base.html
  6. 29
      capsulflask/templates/changelog.html
  7. 147
      capsulflask/templates/faq.html
  8. 7
      capsulflask/templates/index.html
  9. 30
      capsulflask/templates/support.html

@ -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/>
&nbsp;&nbsp;&nbsp;&nbsp;A service by Cyberia Computer Club 2020-<span class="bigtext"></span> <br/>

@ -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 %}

@ -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>

@ -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…
Cancel
Save