148 lines
No EOL
5.9 KiB
PHP
148 lines
No EOL
5.9 KiB
PHP
<?php
|
|
|
|
function getUsers()
|
|
{
|
|
$usernames = array();
|
|
|
|
// Get all users in /home directory
|
|
$users = glob("/home/*");
|
|
|
|
foreach ($users as $user) {
|
|
if (is_dir($user)) {
|
|
if (file_exists("$user/public_html")) {
|
|
$username = basename($user);
|
|
$usernames[] = $username;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $usernames;
|
|
}
|
|
|
|
// Execute the function and display results
|
|
$usernames = getUsers();
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<title>frzn.dev</title>
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
<link rel="stylesheet" href="/assets/master.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div class="page-container">
|
|
<div>
|
|
<div class="header">
|
|
<pre>
|
|
_______ _____
|
|
| ___|.----.-----.-----.-----.-----.| \.-----.--.--.
|
|
| ___|​| _| _ |-- __| -__| |​| -- | -__| | |
|
|
|___| |__| |_____|_____|_____|__|__|​|_____/|_____|\___/</pre>
|
|
</div>
|
|
<div class="content">
|
|
<div>
|
|
<div class="section tor-notice">
|
|
<pre>
|
|
+----------------------------------------------------------------+
|
|
| This site is accessible via Tor! |
|
|
| <a href="http://frzndev32nhnla77oozhxhz5yzo4abldr6zbc4qkdh5hcyanizlxs2ad.onion/">frzndev32nhnla77oozhxhz5yzo4abldr6zbc4qkdh5hcyanizlxs2ad.onion</a> |
|
|
+----------------------------------------------------------------+
|
|
</pre>
|
|
|
|
<div class="section">
|
|
<p>Members</p>
|
|
<ul class="members">
|
|
<?php if (count($usernames) > 0) { ?>
|
|
<?php foreach ($usernames as $username) { ?>
|
|
<li><a href="/~<?= $username ?>">~<?= $username ?></a><?= $username == "amr" ? "*" : "" ?></li>
|
|
<?php } ?>
|
|
<?php } else { ?>
|
|
<li class="error">Error fetching members!</li>
|
|
<?php } ?>
|
|
</ul>
|
|
<small>
|
|
* owner & admin
|
|
</small>
|
|
</div>
|
|
<div class="section">
|
|
<p>Services</p>
|
|
<table class="services">
|
|
<tr>
|
|
<td><a href="https://git.frzn.dev">git.frzn.dev</a></td>
|
|
<td>Forgejo<sup>1</sup></td>
|
|
<td>A lightweight git server (which is better than Gogs)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://p.frzn.dev">p.frzn.dev</a></td>
|
|
<td>fiche</td>
|
|
<td>A command line pastebin (similar to termbin)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://pb.frzn.dev">pb.frzn.dev</a></td>
|
|
<td>PrivateBin</td>
|
|
<td>A minimalist, open source online pastebin</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://bitwarden.frzn.dev/">bitwarden.frzn.dev</a></td>
|
|
<td>Vaultwarden<sup>1</sup></td>
|
|
<td>A Bitwarden-compatible server written in Rust</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://snowflake.torproject.org/">Snowflake</a></td>
|
|
<td></td>
|
|
<td>A web proxy server</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://crypt.frzn.dev">crypt.frzn.dev</a></td>
|
|
<td>CryptPad</td>
|
|
<td>An open-source web-based encrypted suite of realtime collaborative editors</td>
|
|
</tr>
|
|
<tr>
|
|
<td>frzn.dev:64738</td>
|
|
<td>Mumble<sup>1,2</sup></td>
|
|
<td>A VoIP server</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="https://irc.frozenelectronics.ca:8088/">frzn.dev:6697/6667</a></td>
|
|
<td>ZNC<sup>1</sup></td>
|
|
<td>An IRC bouncer</td>
|
|
</tr>
|
|
</table>
|
|
<small>
|
|
<sup>1</sup> Only available for existing members<br>
|
|
<sup>2</sup> Not running 24/7
|
|
</small>
|
|
</div>
|
|
|
|
</div>
|
|
<div>
|
|
<div class="section">
|
|
<p>System Info</p>
|
|
<table class="system-info">
|
|
<tr>
|
|
<td>time:</td>
|
|
<td><?= gmdate("l, j F Y g:i:s A (e)") ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>os:</td>
|
|
<td>Ubuntu GNU/Linux 24.04 (LTS)</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="footer">
|
|
<hr>
|
|
(c) frzn.dev 2018 - <?= date('Y') ?> / design and "backend" by <a href="/~roscoe">~roscoe</a>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|