:: rewrite ::
This commit is contained in:
parent
e30a136cc2
commit
775cbae281
23 changed files with 724 additions and 326 deletions
21
templates/abuse.html.tera
Normal file
21
templates/abuse.html.tera
Normal file
|
@ -0,0 +1,21 @@
|
|||
{% extends "base" %}
|
||||
{% block title %}report abuse{% endblock title %}
|
||||
{% block content %}
|
||||
We ask that you report any abuse you find to: abuse@iwakura.rip.<br>
|
||||
Please make sure your e-mail contains the following:
|
||||
<ol>
|
||||
<li>Type of abuse</li>
|
||||
<li>Evidence (no screenshots, <b>hard evidence only</b>)</li>
|
||||
<li>Origin of abuse (e-mail address, IP, domain etc)</li>
|
||||
<li>Additional information that might help us.</li>
|
||||
</ol>
|
||||
|
||||
Please consider the following when sending an abuse e-mail.
|
||||
<ol>
|
||||
<li>We are *not* able to provide any personal identifiable information, as we do not store them.</li>
|
||||
<li>We take abuse notifications very serious. Sending us multiple false abuse reports will result in a permanent block from our mailserver.</li>
|
||||
<li>We try to respond within 48 hours. Do not flood our inboxes.</li>
|
||||
<li>Please be respectful at all times.</li>
|
||||
</ol>
|
||||
|
||||
{% endblock content %}
|
22
templates/base.html.tera
Normal file
22
templates/base.html.tera
Normal file
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>{% block title %}{% endblock title %} - iwakura.rip</title>
|
||||
<link rel="stylesheet" href="/assets/css/global.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="top">
|
||||
<h1 style="font-size: 50px;text-align:center;margin:0;">iwakura.rip</h1><br>
|
||||
|
||||
<div id="link-container">
|
||||
<a href="/">home</a>
|
||||
<a href="/services">services</a>
|
||||
<a href="/guestbook">guestbook</a>
|
||||
<a href="/members">members</a>
|
||||
<a href="/abuse">report abuse</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="content">{% block content %}{% endblock content %}</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,159 +1,20 @@
|
|||
<title>Guest Book</title>
|
||||
<div id="page-container">
|
||||
<div id="header-container">
|
||||
<h1 id="title"><a href="/">iwakura.rip</a></h1>
|
||||
<p>Leave a nice message for others to read :)</p>
|
||||
<p>Dates are in UTC+2/CEST.</p>
|
||||
<a class="link" id="msg-post" onclick="show_message_poster()" style="margin-bottom: 10px;"> [ post message ] </a>
|
||||
</div>
|
||||
<div id="entries-container">
|
||||
{% extends "base" %}
|
||||
{% block title %}guestbook{% endblock title %}
|
||||
{% block content %}
|
||||
<p style="text-align:center;"><a href="/post">post a message?</a></p>
|
||||
<hr>
|
||||
<div id="entries">
|
||||
{% for message in messages %}
|
||||
<div class="guest-entry">
|
||||
<div class="entry-header">
|
||||
<bu class="entry-title">{{ message.name }}</bu>
|
||||
<bu class="entry-date">{{ message.date | date(format="%Y-%m-%d | %H:%M", timezone="Europe/Amsterdam") }}</bu>
|
||||
<bu class="entry-date">{{ message.date | date(format="%Y-%m-%d | %H:%M", timezone="Europe/Amsterdam")}}</bu>
|
||||
</div>
|
||||
<div class="entry-body">
|
||||
<p>{{ message.body }}</p>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="post-container">
|
||||
<bu id="name-label">name</bu>
|
||||
<input type="text" id="name-box" name="name-box"><br>
|
||||
<div class="break"></div>
|
||||
<bu id="msg-label">message</bu>
|
||||
<textarea id="msg-box"></textarea>
|
||||
<div class="break"></div>
|
||||
<a class="link" onclick="send_msg()"> [ send ] </a>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
let show_post_message = false;
|
||||
let show_message_poster = () => {
|
||||
if (!show_post_message) {
|
||||
show_post_message = !show_post_message
|
||||
document.getElementById("entries-container").style.display = "none";
|
||||
document.getElementById("post-container").style.display = "flex";
|
||||
document.getElementById("msg-post").innerText = " [ back ] ";
|
||||
return
|
||||
}
|
||||
document.getElementById("msg-post").innerText = " [ post message ] "
|
||||
show_post_message = !show_post_message
|
||||
document.getElementById("entries-container").style.display = "flex";
|
||||
document.getElementById("post-container").style.display = "none";
|
||||
}
|
||||
let send_msg = async () => {
|
||||
fetch("/post_message", {
|
||||
"method": "POST",
|
||||
"body": JSON.stringify({
|
||||
body: document.getElementById("msg-box").value,
|
||||
name: document.getElementById("name-box").value
|
||||
}),
|
||||
}).then(x => {
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
a:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
:root {
|
||||
--term-color: #4AF626;
|
||||
--title-gap: 0px;
|
||||
--title-font: "Hack Nerd Font";
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Hack Nerd Font";
|
||||
src: url(/assets/ttf/HNF-Reg.ttf);
|
||||
}
|
||||
#title {
|
||||
background: url("/assets/img/lain.png");
|
||||
background-position: -100px 1125px;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
font-size: 35px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin-bottom: calc(var(--title-gap) + 10px);
|
||||
margin-top: var(--title-gap);
|
||||
font-family: var(--title-font);
|
||||
}
|
||||
#post-container {
|
||||
width: 50%;
|
||||
padding: 5px;
|
||||
border: 1px solid var(--term-color);
|
||||
display: none;
|
||||
margin: auto;
|
||||
margin-top: 10px;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
input {
|
||||
margin-left: auto;
|
||||
float: right;
|
||||
}
|
||||
.break {
|
||||
flex-basis: 100%;
|
||||
height: 0;
|
||||
}
|
||||
.link:hover {
|
||||
background-color: var(--term-color);
|
||||
color: black;
|
||||
}
|
||||
label {
|
||||
text-align: left;
|
||||
clear: both;
|
||||
float: left;
|
||||
}
|
||||
.link {
|
||||
cursor: default;
|
||||
align-items: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
transition: 0.3s;
|
||||
}
|
||||
#header-container {
|
||||
text-align: center;
|
||||
}
|
||||
#entries-container {
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
#page-container {
|
||||
font-family: "Hack Nerd Font";
|
||||
color: var(--term-color);
|
||||
}
|
||||
.guest-entry {
|
||||
width: 50%;
|
||||
padding: 5px;
|
||||
border: 1px var(--term-color) solid;
|
||||
}
|
||||
.entry-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.entry-body {
|
||||
font-size: 14px;
|
||||
overflow: auto;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
bu {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
body {
|
||||
background-color: black;
|
||||
}
|
||||
</style>
|
||||
{% endblock content %}
|
||||
|
|
|
@ -1,158 +1,6 @@
|
|||
<div id="main-content">
|
||||
<div id="middle-box">
|
||||
<p style="text-align: center;margin-bottom: 5px;font-size: 20px;">[ iwakura.rip ]</p>
|
||||
<img id="main-img" style="display:block;margin-left:auto;margin-right:auto;" src="https://media1.tenor.com/m/OlHMWq46CtAAAAAC/serial-experiments-lain-lain.gif" width="332" height="235">
|
||||
<div class="link-container" id="service-container">
|
||||
<a id="anim-1" href="https://mail.iwakura.rip"> [ mail ] </a>
|
||||
<a id="anim-2" href="https://git.iwakura.rip"> [ git ] </a>
|
||||
<a id="anim-3" href="https://media.iwakura.rip"> [ media ] </a>
|
||||
<a id="anim-4" href="https://blog.iwakura.rip"> [ blog ] </a>
|
||||
</div>
|
||||
<div class="link-container" id="main-container">
|
||||
<a onclick="showContainer(aboutContainer)"> [ about ] </a>
|
||||
<a onclick="showContainer(serviceContainer)"> [ services ] </a>
|
||||
<a href="/guestbook"> [ guestbook ] </a>
|
||||
</div>
|
||||
<div class="link-container" id="about-container">
|
||||
<a onclick="showSect(aboutSect)"> [ i ] </a>
|
||||
<a onclick="showSect(explaSect)"> [ ? ] </a>
|
||||
<a onclick="showSect(disclSect)"> [ ! ] </a>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div id="about-box" class="fadeIn">
|
||||
<div id="about-sect">
|
||||
<bu>About</bu>
|
||||
<p>iwakura.rip is a collection of servers hosting mostly-private services for hexlocation & friends.</p>
|
||||
<p>The iwakura.rip website is also connected to dn42 (<a href="https://iwakura.dn42">iwakura.dn42</a>). We are planning to connect our services to dn42 too.</p>
|
||||
</div>
|
||||
<div id="expla-sect">
|
||||
<bu>Explanation</bu>
|
||||
<p>Most of the gifs/art/names/ui design is inspired by/based on <a href="https://en.wikipedia.org/wiki/Serial_Experiments_Lain"><b>Serial Experiments Lain</b></a>, an anime series about Lain <u>Iwakura</u></p>
|
||||
</div>
|
||||
<div id="discl-sect">
|
||||
<bu>Disclaimer</bu>
|
||||
<p>Serial Experiments Lain is the property of Triangle Studios. iwakura.rip is not affiliated with Triangle Studios.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
@keyframes fadeIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes fadeOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
bu {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
#expla-sect, #discl-sect, #about-sect {
|
||||
opacity:0;
|
||||
display:none;
|
||||
}
|
||||
.fadeIn {
|
||||
animation: fadeIn 0.5s forwards;
|
||||
}
|
||||
.fadeOut {
|
||||
animation: fadeOut 0.5s forwards;
|
||||
}
|
||||
:root {
|
||||
--term-color: #4AF626;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Hack Nerd Font";
|
||||
src: url(/assets/ttf/HNF-Reg.ttf);
|
||||
}
|
||||
a:hover {
|
||||
color: black !important;
|
||||
background-color: var(--term-color);
|
||||
}
|
||||
body {
|
||||
background-color: black;
|
||||
}
|
||||
#main-container {
|
||||
animation-delay: 0.2s;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
transition: 0.3s;
|
||||
cursor: default;
|
||||
}
|
||||
.link-container {
|
||||
display: flex;
|
||||
margin-top: 5px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: 0.5s;
|
||||
opacity:0;
|
||||
}
|
||||
#service-container {
|
||||
display: none;
|
||||
}
|
||||
#main-content, a {
|
||||
font-family: "Hack Nerd Font";
|
||||
color: var(--term-color);
|
||||
}
|
||||
#main-content {
|
||||
/*font-family: "Hack Nerd Font";
|
||||
color: var(--term-color);*/
|
||||
position:absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
let getId = (i) => document.getElementById(i);
|
||||
|
||||
let serviceContainer = getId('service-container');
|
||||
let mainContainer = getId('main-container');
|
||||
let aboutContainer = getId('about-container');
|
||||
|
||||
let aboutSect = getId('about-sect');
|
||||
let disclSect = getId('discl-sect');
|
||||
let explaSect = getId('expla-sect');
|
||||
|
||||
let sections = [aboutSect, disclSect, explaSect];
|
||||
|
||||
mainContainer.classList.add("fadeIn");
|
||||
|
||||
let containers = [serviceContainer, mainContainer, aboutContainer];
|
||||
function showContainer(container){
|
||||
for (let _container of containers) {
|
||||
//_container.style.display = "none";
|
||||
if (_container == container) continue
|
||||
_container.classList.remove("fadeIn");
|
||||
_container.style.display = "none"
|
||||
}
|
||||
container.classList.add("fadeIn");
|
||||
container.style.display = "flex";
|
||||
}
|
||||
|
||||
let showSect = (s) => {
|
||||
for (let _s of sections) {
|
||||
console.log(_s)
|
||||
if (_s == s) continue;
|
||||
_s.style.display = "none";
|
||||
}
|
||||
s.style.display = "block";
|
||||
s.classList.add("fadeIn");
|
||||
}
|
||||
|
||||
let showAbout = () => document.getElementById('about-box').style.display = "block";
|
||||
document.getElementById("main-img").onclick = () => {
|
||||
showContainer(mainContainer)
|
||||
for (let _s of sections) {
|
||||
_s.style.display="none";
|
||||
_s.classList.remove("fadeIn");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% extends "base" %}
|
||||
{% block title %}homepage{% endblock title %}
|
||||
{% block content %}
|
||||
Welcome to iwakura.rip. We are a small group of technology nerds and geeks fascinated by computers and technology.<br>
|
||||
We host a bunch of services on this domain for public usage. Want access? Just send me a pgp-encrypted email (hex[a]iwakura.rip) and introduce yourself :)
|
||||
{% endblock content %}
|
||||
|
|
10
templates/macros.html.tera
Normal file
10
templates/macros.html.tera
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% macro service(title, description, href, img, h="16") %}
|
||||
<div class="service-container">
|
||||
<p class="service-title">
|
||||
<img class="service-icon" src="{{img}}" height="{{h}}" >
|
||||
<a href="{{href}}" class="service-link">{{title}}</a>
|
||||
</p>
|
||||
<hr />
|
||||
<p class="service-description">{{description}}</p>
|
||||
</div>
|
||||
{% endmacro service %}
|
9
templates/members.html.tera
Normal file
9
templates/members.html.tera
Normal file
|
@ -0,0 +1,9 @@
|
|||
{% extends "base" %}
|
||||
{% block title %}members{% endblock title %}
|
||||
{% block content %}
|
||||
Make sure to verify our PGP keys when communicating with us.
|
||||
<ul>
|
||||
<li><a href="/assets/pgp/andre.txt">andre</a></li>
|
||||
<li><a href="/assets/pgp/hex.txt">hex</a></li>
|
||||
</ul>
|
||||
{% endblock content %}
|
26
templates/post.html.tera
Normal file
26
templates/post.html.tera
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% extends "base" %}
|
||||
{% block title %}post a message{% endblock title %}
|
||||
{% block content %}
|
||||
<div id="post-container">
|
||||
<bu id="name-label">name</bu>
|
||||
<input type="text" id="name-box" name="name-box"><br>
|
||||
<div class="break"></div>
|
||||
<bu id="msg-label">message</bu>
|
||||
<textarea id="msg-box"></textarea>
|
||||
<div class="break"></div>
|
||||
<a class="link" onclick="send_msg()">send!</a>
|
||||
</div>
|
||||
<script>
|
||||
let send_msg = async () => {
|
||||
fetch("/post_message", {
|
||||
"method": "POST",
|
||||
"body": JSON.stringify({
|
||||
body: document.getElementById("msg-box").value,
|
||||
name: document.getElementById("name-box").value
|
||||
}),
|
||||
}).then(x => {
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
</script>
|
||||
{% endblock content %}
|
16
templates/services.html.tera
Normal file
16
templates/services.html.tera
Normal file
|
@ -0,0 +1,16 @@
|
|||
{% import "macros" as macros %}
|
||||
{% extends "base" %}
|
||||
{% block title %}services{% endblock title %}
|
||||
{% block content %}
|
||||
<div id="service-containers">
|
||||
{{macros::service(title="Forgejo", description="A place for everyone to host their source code!", href="https://git.iwakura.rip", img="https://www.marefa.org/w/images/thumb/0/05/Forgejo_logo.svg/640px-Forgejo_logo.svg.png")}}
|
||||
{{macros::service(title="Jellyfin", description="For all your media consumption needs.", href="https://media.iwakura.rip", img="/assets/img/jellyfin.png")}}
|
||||
{{macros::service(title="Woodpecker CI", description="Powerful CI/CD to use together with Forgejo.", href="https://ci.iwakura.rip", img="/assets/img/woodpecker.svg")}}
|
||||
{{macros::service(title="Jellyseerr", description="Get information about your favorite movies and TV shows, all together in one place.", href="https://request.iwakura.rip", img="/assets/img/jellyseerr.ico")}}
|
||||
{{macros::service(title="DN42", description="We are currently in the process of connecting all of our services to DN42 - an overlay network using internet technologies.", href="https://iwakura.dn42", img="/assets/img/dn42.png")}}
|
||||
{{macros::service(title="Authelia", description="Open-source authentication & authorization platform.", href="https://a.iwakura.rip", img="/assets/img/authelia.png")}}
|
||||
{{macros::service(title="E-mail", description="We are hosting our own e-mail servers on an off-shore hosting provider. Note: all emails are currently being stored in plain text. We recommend using PGP encryption.", href="https://mail.iwakura.rip", img="/assets/img/mail.png")}}
|
||||
</div><br>
|
||||
Other services can be added on request. We also try to provide space for members wanting to host their own services, though stability is something to think about when asking for this.
|
||||
<p style="font-size: 10px">We do not own the copyright for any of the projects mentioned above. All copyright goes to their respective owners.</p>
|
||||
{% endblock content %}
|
Loading…
Add table
Add a link
Reference in a new issue