Compare commits
10 Commits
f89b05a084
...
70bce03991
Author | SHA1 | Date |
---|---|---|
core | 70bce03991 | |
core | 008ba069b5 | |
NishiOwO | d0ae4562ca | |
core | 0c0fb6d4fd | |
TerraMaster85 | 4c81aff165 | |
TerraMaster85 | 4c5b7c02aa | |
core | b837aa8e72 | |
core | 44a69d1796 | |
core | 1f3eab5c63 | |
core | 84b5d3b7cc |
|
@ -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>
|
48
listing.yaml
48
listing.yaml
|
@ -29,6 +29,26 @@ servers:
|
||||||
region: "New York"
|
region: "New York"
|
||||||
admins: ["core", "terra"]
|
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
|
- hostname: ghost-east1
|
||||||
public: true
|
public: true
|
||||||
public_ips: ["5.183.8.190"]
|
public_ips: ["5.183.8.190"]
|
||||||
|
@ -250,3 +270,31 @@ services:
|
||||||
host: central2
|
host: central2
|
||||||
backups: "Never"
|
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"]
|
||||||
|
|
|
@ -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
152
src/main.rs
152
src/main.rs
|
@ -71,40 +71,56 @@ fn generate_servershtml(config: &ListgenConfig) -> String {
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>"e3team Servers"</title>
|
<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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>"e3team-owned servers"</h1>
|
<div id="nav">
|
||||||
<p>"e3team owns and controls several servers around the globe. Following is a list of them all:"</p>
|
<div class="nav-section">
|
||||||
<table style="border: 1px solid;">
|
<span>"Navigation"</span>
|
||||||
<tr>
|
<a class="nav-item" href="/">"About"</a>
|
||||||
<th style="border: 1px solid;">"Hostname"</th>
|
<a class="nav-item" href="/services.html">"Services"</a>
|
||||||
<th style="border: 1px solid;">"Public?"</th>
|
<a class="nav-item" href="/servers.html">"Machines"</a>
|
||||||
<th style="border: 1px solid;">"Public IP"</th>
|
</div>
|
||||||
<th style="border: 1px solid;">"Edge?"</th>
|
<div class="nav-section nav-section-bottom">
|
||||||
<th style="border: 1px solid;">"Domain Name"</th>
|
"Free now and forever."
|
||||||
<th style="border: 1px solid;">"Ownership"</th>
|
</div>
|
||||||
<th style="border: 1px solid;">"Country"</th>
|
</div>
|
||||||
<th style="border: 1px solid;">"Region"</th>
|
<div id="main">
|
||||||
<th style="border: 1px solid;">"Primary Admin(s)"</th>
|
<h1>"e3team-owned servers"</h1>
|
||||||
</tr>
|
<p>"e3team owns and controls several servers around the globe. Following is a list of them all:"</p>
|
||||||
{ config.servers.iter().map(|u| {
|
<table style="border: 1px solid;">
|
||||||
html! (
|
<tr>
|
||||||
<tr>
|
<th style="border: 1px solid;">"Hostname"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.hostname) }</td>
|
<th style="border: 1px solid;">"Public?"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
|
<th style="border: 1px solid;">"Public IP"</th>
|
||||||
<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>
|
<th style="border: 1px solid;">"Edge?"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", if u.edge { "Yes" } else { "No" }) }</td>
|
<th style="border: 1px solid;">"Domain Name"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", if let Some(domain) = &u.domain { domain.as_str() } else { "N/A" }) }</td>
|
<th style="border: 1px solid;">"Ownership"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", if matches!(u.ownership, ListgenConfigServerOwnership::Rented) { "Rented" } else { "Owned" }) }</td>
|
<th style="border: 1px solid;">"Country"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.country ) }</td>
|
<th style="border: 1px solid;">"Region"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.region ) }</td>
|
<th style="border: 1px solid;">"Primary Admin(s)"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
|
</tr>
|
||||||
</tr>
|
{ config.servers.iter().map(|u| {
|
||||||
)
|
html! (
|
||||||
})}
|
<tr>
|
||||||
</table>
|
<td style="border: 1px solid;">{ text!("{}", u.hostname) }</td>
|
||||||
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
|
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
|
||||||
<a href="services.html">"View our services list"</a>
|
<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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
|
@ -116,36 +132,52 @@ fn generate_serviceslist(config: &ListgenConfig) -> String {
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>"e3team Services"</title>
|
<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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>"e3team-hosted servers"</h1>
|
<div id="nav">
|
||||||
<p>"e3team hosts many services on it's servers around the globe. Many are public. Following is a list of them all:"</p>
|
<div class="nav-section">
|
||||||
<table style="border: 1px solid;">
|
<span>"Navigation"</span>
|
||||||
<tr>
|
<a class="nav-item" href="/">"About"</a>
|
||||||
<th style="border: 1px solid;">"Name"</th>
|
<a class="nav-item" href="/services.html">"Services"</a>
|
||||||
<th style="border: 1px solid;">"Software"</th>
|
<a class="nav-item" href="/servers.html">"Machines"</a>
|
||||||
<th style="border: 1px solid;">"Public?"</th>
|
</div>
|
||||||
<th style="border: 1px solid;">"Public URL"</th>
|
<div class="nav-section nav-section-bottom">
|
||||||
<th style="border: 1px solid;">"Hosted On"</th>
|
"Free now and forever."
|
||||||
<th style="border: 1px solid;">"Backed Up"</th>
|
</div>
|
||||||
<th style="border: 1px solid;">"Primary Admin(s)"</th>
|
</div>
|
||||||
</tr>
|
<div id="main">
|
||||||
{ config.services.iter().map(|u| {
|
<h1>"e3team-hosted servers"</h1>
|
||||||
html! (
|
<p>"e3team hosts many services on it's servers around the globe. Many are public. Following is a list of them all:"</p>
|
||||||
<tr>
|
<table style="border: 1px solid;">
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.name) }</td>
|
<tr>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.software) }</td>
|
<th style="border: 1px solid;">"Name"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", if u.public { "Yes" } else { "No" }) }</td>
|
<th style="border: 1px solid;">"Software"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.url ) }</td>
|
<th style="border: 1px solid;">"Public?"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.host) }</td>
|
<th style="border: 1px solid;">"Public URL"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.backups ) }</td>
|
<th style="border: 1px solid;">"Hosted On"</th>
|
||||||
<td style="border: 1px solid;">{ text!("{}", u.admins.join(", ")) }</td>
|
<th style="border: 1px solid;">"Backed Up"</th>
|
||||||
</tr>
|
<th style="border: 1px solid;">"Primary Admin(s)"</th>
|
||||||
)
|
</tr>
|
||||||
})}
|
{ config.services.iter().map(|u| {
|
||||||
</table>
|
html! (
|
||||||
<p>"Generated automatically by e3t-listgen from "<a href="listing.yaml">"listing.yaml"</a>"."</p>
|
<tr>
|
||||||
<a href="servers.html">"View our server list"</a>
|
<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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue