Compare commits

..

10 Commits

Author SHA1 Message Date
core 70bce03991
add germany servers 2023-07-24 12:42:38 -04:00
core 008ba069b5
nishi update 2023-06-13 21:59:08 -04:00
NishiOwO d0ae4562ca yeah 2023-06-14 10:04:04 +09:00
core 0c0fb6d4fd
terra update 2023-06-13 20:26:49 -04:00
TerraMaster85 4c81aff165 whoops, other html 2023-06-13 20:19:25 -04:00
TerraMaster85 4c5b7c02aa New and improved nav bar! and some minor fixes 2023-06-13 19:54:46 -04:00
core b837aa8e72
add index.html 2023-06-13 17:41:55 -04:00
core 44a69d1796
implement nav pt3 2023-06-13 17:39:00 -04:00
core 1f3eab5c63
implement nav pt2 2023-06-13 17:37:52 -04:00
core 84b5d3b7cc
implement nav 2023-06-13 17:33:21 -04:00
6 changed files with 315 additions and 63 deletions

122
index.html Normal file
View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body { margin: 0; }
body > * {
box-sizing: border-box;
float: left;
padding: 4px;
}
#main {
position: absolute;
top: 0;
left: 192px;
width: calc(100% - 192px);
}
#nav {
width: 192px;
height: 100%;
background-color: #cccccc;
position: fixed;
top: 0;
left: 0;
}
.nav-item {
padding: 0px 4px 0px 4px;
margin: 2px;
background-color: #800000;
color: #ddd;
display: block;
}
.nav-item:hover {
background-color: #ffffff;
color: #800000;
}
.nav-section-bottom {
position: absolute;
bottom: 0;
}
@media only screen and (max-width: 576px) {
#main, #nav {
position: initial;
width: 100%;
}
#nav { height: initial; }
.nav-section-bottom{ display: hidden; }
}
</style>
<title>e3team</title>
</head>
<body>
<div id="nav">
<div class="nav-section">
<span>Navigation</span>
<a class="nav-item" href="/">About</a>
<a class="nav-item" href="/services.html">Services</a>
<a class="nav-item" href="/servers.html">Machines</a>
</div>
<div class="nav-section nav-section-bottom">
Free now and forever.
</div>
</div>
<div id="main">
<h1>hi, we're e3team</h1>
<p>we're a team/group of friends (mostly software developers) who believe
in a free (as in freedom) and decentralized internet</p>
<a href="#whoareus">meet the team</a> or
<a href="mailto:team+lists@e3t.cc">get in touch</a> or
<a href="https://git.e3t.cc">check out our stuff</a>
<h2>whoareus</h2>
<ul>
<li>
<b><a href="https://nishi.e3t.cc">nishi</a></b> is a NetBSD
enthusiast and accomplished C programmer
<blockquote>
gluten morgen - nishi 2022
</blockquote>
</li>
<li>
<b><a href="https://coredoes.dev">core</a></b> is a wannabe network
engineer and programmer of 9 years
<blockquote>
mobil key(br d - core 2022
</blockquote>
</li>
<li>
<b>dooms</b> is a quantum engineer and just likes to chat
<blockquote>
ghostly and ghostly and ghostly is a triple universe fault - dooms
2022
</blockquote>
</li>
<li>
<b>ghostly</b> is a linguist and game developer
<blockquote>
buffalo buffalo buffalo buffalo buffalo - ghost 2022
</blockquote>
</li>
<li>
<b><a href="https://u8.lc">terra</a></b> is a network engineer and old
laptop salvager
<blockquote>
walk into a five star hotel with bombs and an ak, then unpack your
one tiny suitcase and check it in and leave without staying the
night - terra 2021
</blockquote>
</li>
</ul>
</div>
</body>
</html>

View File

@ -29,6 +29,26 @@ servers:
region: "New York"
admins: ["core", "terra"]
- hostname: de-fsn1
public: true
public_ips: ["78.47.43.220"]
edge: true
domain: de-fsn1.e3t.cc
ownership: rented
country: "Germany"
region: "Falkenstien"
admins: ["core", "terra"]
- hostname: de-fnk1
public: true
public_ips: ["141.147.35.117"]
edge: true
domain: de-fnk1.e3t.cc
ownership: rented
country: "Germany"
region: "Frankfurt"
admins: ["core"]
- hostname: ghost-east1
public: true
public_ips: ["5.183.8.190"]
@ -249,4 +269,32 @@ services:
url: "https://zulip.e3t.cc"
host: central2
backups: "Never"
admins: ["core"]
admins: ["core"]
- name: SwineHub
software: swinehub
public: true
url: "https://sw.e3t.cc"
host: fxtwr
backups: "never"
admins: ["nishi"]
- name: BBS (Nibbler)
software: nibbler
public: true
url: "https://nibbler.e3t.cc/bbs"
host: nishinbsd-raid
backups: "never"
admins: ["nishi"]
- name: BBS (SeaCat)
software: seacat
public: true
url: "telnet://bbs.u8.lc"
host: terra-mm12
backups: "never"
admins: ["nishi"]
- name: IRC
software: ircd-hybrid
public: true
url: "ircs://irc.e3t.cc:6697"
host: nishinbsd-g4
backups: "never"
admins: ["nishi"]

50
nav.css Normal file
View File

@ -0,0 +1,50 @@
body { margin: 0; }
body > * {
box-sizing: border-box;
float: left;
padding: 4px;
}
#main {
position: absolute;
top: 0;
left: 192px;
width: calc(100% - 192px);
}
#nav {
width: 192px;
height: 100%;
background-color: #cccccc;
position: fixed;
top: 0;
left: 0;
}
.nav-item {
padding: 0px 4px 0px 4px;
margin: 2px;
background-color: #800000;
color: #ddd;
display: block;
}
.nav-item:hover {
background-color: #ffffff;
color: #800000;
}
.nav-section-bottom {
position: absolute;
bottom: 0;
}
@media only screen and (max-width: 576px) {
#main, #nav {
position: initial;
width: 100%;
}
#nav { height: initial; }
.nav-section-bottom{ display: hidden; }
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -71,40 +71,56 @@ fn generate_servershtml(config: &ListgenConfig) -> String {
<html>
<head>
<title>"e3team Servers"</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" href="nav.css" />
</head>
<body>
<h1>"e3team-owned servers"</h1>
<p>"e3team owns and controls several servers around the globe. Following is a list of them all:"</p>
<table style="border: 1px solid;">
<tr>
<th style="border: 1px solid;">"Hostname"</th>
<th style="border: 1px solid;">"Public?"</th>
<th style="border: 1px solid;">"Public IP"</th>
<th style="border: 1px solid;">"Edge?"</th>
<th style="border: 1px solid;">"Domain Name"</th>
<th style="border: 1px solid;">"Ownership"</th>
<th style="border: 1px solid;">"Country"</th>
<th style="border: 1px solid;">"Region"</th>
<th style="border: 1px solid;">"Primary Admin(s)"</th>
</tr>
{ config.servers.iter().map(|u| {
html! (
<tr>
<td style="border: 1px solid;">{ text!("{}", u.hostname) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if let Some(ips) = &u.public_ips { ips.iter().map(|u| u.to_string()).collect::<Vec<_>>().join(", ") } else { "N/A".into() } ) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.edge { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if let Some(domain) = &u.domain { domain.as_str() } else { "N/A" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if matches!(u.ownership, ListgenConfigServerOwnership::Rented) { "Rented" } else { "Owned" }) }</td>
<td style="border: 1px solid;">{ text!("{}", u.country ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.region ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
</tr>
)
})}
</table>
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
<a href="services.html">"View our services list"</a>
<div id="nav">
<div class="nav-section">
<span>"Navigation"</span>
<a class="nav-item" href="/">"About"</a>
<a class="nav-item" href="/services.html">"Services"</a>
<a class="nav-item" href="/servers.html">"Machines"</a>
</div>
<div class="nav-section nav-section-bottom">
"Free now and forever."
</div>
</div>
<div id="main">
<h1>"e3team-owned servers"</h1>
<p>"e3team owns and controls several servers around the globe. Following is a list of them all:"</p>
<table style="border: 1px solid;">
<tr>
<th style="border: 1px solid;">"Hostname"</th>
<th style="border: 1px solid;">"Public?"</th>
<th style="border: 1px solid;">"Public IP"</th>
<th style="border: 1px solid;">"Edge?"</th>
<th style="border: 1px solid;">"Domain Name"</th>
<th style="border: 1px solid;">"Ownership"</th>
<th style="border: 1px solid;">"Country"</th>
<th style="border: 1px solid;">"Region"</th>
<th style="border: 1px solid;">"Primary Admin(s)"</th>
</tr>
{ config.servers.iter().map(|u| {
html! (
<tr>
<td style="border: 1px solid;">{ text!("{}", u.hostname) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if let Some(ips) = &u.public_ips { ips.iter().map(|u| u.to_string()).collect::<Vec<_>>().join(", ") } else { "N/A".into() } ) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.edge { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if let Some(domain) = &u.domain { domain.as_str() } else { "N/A" }) }</td>
<td style="border: 1px solid;">{ text!("{}", if matches!(u.ownership, ListgenConfigServerOwnership::Rented) { "Rented" } else { "Owned" }) }</td>
<td style="border: 1px solid;">{ text!("{}", u.country ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.region ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
</tr>
)
})}
</table>
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
<a href="services.html">"View our services list"</a>
</div>
</body>
</html>
);
@ -116,36 +132,52 @@ fn generate_serviceslist(config: &ListgenConfig) -> String {
<html>
<head>
<title>"e3team Services"</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" href="nav.css" />
</head>
<body>
<h1>"e3team-hosted servers"</h1>
<p>"e3team hosts many services on it's servers around the globe. Many are public. Following is a list of them all:"</p>
<table style="border: 1px solid;">
<tr>
<th style="border: 1px solid;">"Name"</th>
<th style="border: 1px solid;">"Software"</th>
<th style="border: 1px solid;">"Public?"</th>
<th style="border: 1px solid;">"Public URL"</th>
<th style="border: 1px solid;">"Hosted On"</th>
<th style="border: 1px solid;">"Backed Up"</th>
<th style="border: 1px solid;">"Primary Admin(s)"</th>
</tr>
{ config.services.iter().map(|u| {
html! (
<tr>
<td style="border: 1px solid;">{ text!("{}", u.name) }</td>
<td style="border: 1px solid;">{ text!("{}", u.software) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", u.url ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.host) }</td>
<td style="border: 1px solid;">{ text!("{}", u.backups ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
</tr>
)
})}
</table>
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
<a href="servers.html">"View our server list"</a>
<div id="nav">
<div class="nav-section">
<span>"Navigation"</span>
<a class="nav-item" href="/">"About"</a>
<a class="nav-item" href="/services.html">"Services"</a>
<a class="nav-item" href="/servers.html">"Machines"</a>
</div>
<div class="nav-section nav-section-bottom">
"Free now and forever."
</div>
</div>
<div id="main">
<h1>"e3team-hosted servers"</h1>
<p>"e3team hosts many services on it's servers around the globe. Many are public. Following is a list of them all:"</p>
<table style="border: 1px solid;">
<tr>
<th style="border: 1px solid;">"Name"</th>
<th style="border: 1px solid;">"Software"</th>
<th style="border: 1px solid;">"Public?"</th>
<th style="border: 1px solid;">"Public URL"</th>
<th style="border: 1px solid;">"Hosted On"</th>
<th style="border: 1px solid;">"Backed Up"</th>
<th style="border: 1px solid;">"Primary Admin(s)"</th>
</tr>
{ config.services.iter().map(|u| {
html! (
<tr>
<td style="border: 1px solid;">{ text!("{}", u.name) }</td>
<td style="border: 1px solid;">{ text!("{}", u.software) }</td>
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
<td style="border: 1px solid;">{ text!("{}", u.url ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.host) }</td>
<td style="border: 1px solid;">{ text!("{}", u.backups ) }</td>
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
</tr>
)
})}
</table>
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
<a href="servers.html">"View our server list"</a>
</div>
</body>
</html>
);