forked from thunix/www
Compare commits
66 Commits
Author | SHA1 | Date |
---|---|---|
deepend | de2c993957 | |
deepend | 08f9258f5c | |
deepend | cb8a7c00ec | |
deepend | 5fd94f5487 | |
deepend | 33ad7a37ae | |
deepend | 127a63d4a4 | |
deepend | 31dfa8fc34 | |
deepend | 0138a6e12d | |
deepend | bd705ab55d | |
deepend | 1456e013ec | |
deepend | 34a344a952 | |
deepend | 99c00eb649 | |
deepend | e3a380be10 | |
deepend | 65b13d8949 | |
Blade of Darkness | 610904d4b9 | |
deepend | 9dcb1906f9 | |
deepend | 5b74ae2415 | |
deepend | 5e95451c0e | |
deepend | 23288a99b4 | |
deepend | 4af70552f5 | |
deepend | a5c0980f3a | |
deepend | 153adcfdd1 | |
Blade of Darkness | 269bd5ea1f | |
Ubergeek | db7b6282ce | |
Ubergeek | 5ef05e811e | |
ubergeek | ef89333873 | |
Ubergeek | a7f799912b | |
Ubergeek | 425641da57 | |
Blade of Darkness | eb8b5b6f74 | |
Blade of Darkness | b8545fb767 | |
Blade of Darkness | 860d816031 | |
Ubergeek | 2ffb79088f | |
Ubergeek | 4ea46e4e24 | |
Blade of Darkness | 73f0a980d9 | |
Blade of Darkness | 16f9b6e4a6 | |
Blade of Darkness | 55f641afc4 | |
Blade of Darkness | 99b9d67af0 | |
Blade of Darkness | f9dd82d909 | |
ubergeek | 44508f99dc | |
Blade of Darkness | f5aaed23ab | |
Blade of Darkness | d36f10189d | |
Blade of Darkness | cfd6ccdbbc | |
Ubergeek | 0833e91520 | |
Anton McClure | fce23c7cd1 | |
Blade of Darkness | 1b9c4e87af | |
Blade of Darkness | a6ae512417 | |
Blade of Darkness | 48922db7c4 | |
Blade of Darkness | 107ea4f396 | |
Blade of Darkness | d163822726 | |
Blade of Darkness | fa3e7ed385 | |
Blade of Darkness | 58e54f5f01 | |
Blade of Darkness | 99f93eb00e | |
Blade of Darkness | 8122e8d4a0 | |
Blade of Darkness | 7a30f92ed1 | |
Blade of Darkness | 278f561744 | |
Blade of Darkness | 1dde4d4fc1 | |
Blade of Darkness | 86f04da9a4 | |
Blade of Darkness | 75ab2e6a94 | |
Blade of Darkness | e83a255b85 | |
ubergeek | 74a3c9a45d | |
Anton McClure | fc73f8c4df | |
ubergeek | c8e6df0083 | |
Blade of Darkness | d720fd3758 | |
Blade of Darkness | bc6c6d735b | |
Blade of Darkness | 495d05679d | |
Blade of Darkness | c7a949f04f |
|
@ -1,7 +1,5 @@
|
|||
RewriteEngine On
|
||||
RewriteRule ^$ main [QSA]
|
||||
RewriteRule ^index\.php$ wiki.php?page=main [QSA]
|
||||
RewriteRule ^users$ includes/users.php [QSA,L]
|
||||
RewriteRule ^server$ includes/server.php [QSA,L]
|
||||
RewriteCond %{REQUEST_URI} !(/includes/|/media/|tilde.json|humans.txt|/webmail/|/favicon.ico|/~|githook|sitemap.xml)
|
||||
RewriteRule ^([^\d]+)/?$ wiki.php?page=$1 [QSA]
|
||||
|
|
|
@ -2,23 +2,11 @@
|
|||
|
||||
As this server and our projects are all a labor of love and goodwill for the community, operating the thunix server costs money. We love what we do and we love sharing what we do for free, but over time, operating expenses can have a big impact.
|
||||
|
||||
That being said, we also rely on the good nature of generous people, who are willing to donate to us. The price breakdown right now is €38/month. So to help with server costs and time spent, you can donate the following ways:
|
||||
That being said, we also rely on the good nature of generous people, who are willing to donate to us. The price breakdown right now is €80/month. So to help with server costs and time spent, you can donate the following ways:
|
||||
|
||||
<div style="text-align:center;">
|
||||
|
||||
<p>Via BitCoin: 1DFM3qY7XmCxGTFPATSQJVCNjvmWiVubGN</p>
|
||||
<p>You can donate via Liberapay here: <a href="https://liberapay.com/deepend/donate"><img src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
|
||||
|
||||
<p>Via Lumen: GDG75UEP4DTNUWRZJ7426AA627OZQ6K5SEOO3YIESHGVRBLUCWWQ4CKJ</p>
|
||||
|
||||
<p>You can donate via Liberapay here: <a href="https://liberapay.com/ub3g33k/donate"><img src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
|
||||
|
||||
<p>Or via Paypal:</a>
|
||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
|
||||
<input type="hidden" name="cmd" value="_donations" />
|
||||
<input type="hidden" name="business" value="GW2H85HY9VJ3L" />
|
||||
<input type="hidden" name="currency_code" value="USD" />
|
||||
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
|
||||
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
|
||||
</form>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -2,38 +2,42 @@
|
|||
|
||||
**How do I sign up for an account?**
|
||||
|
||||
Simply by going to our [signup page](/signup) and filling in the form. You can ask for help in \#thunix on tilde.chat, or you can [contact us](contact), if you run into any difficulties.
|
||||
- Simply by going to our [signup page](/signup) and filling in the form. You can ask for help in \#thunix on tilde.chat, or you can [contact us](contact), if you run into any difficulties.
|
||||
|
||||
**How can I request an account recovery or public key replacement?**
|
||||
|
||||
- Just send the request from the email you used to register and we'll poke a new key in for you.
|
||||
|
||||
**Who is running thunix?**
|
||||
|
||||
The current system administrators are [ubergeek](/~ubergeek), [Naglfar](/~naglfar), and [fosslinux](/~fosslinux).
|
||||
- The current system administrators are [deepend](/~deepend), [Naglfar](/~naglfar), [ubergeek](/~ubergeek) still helps out from time to time but not sure if he wants the admin role going forward. If this changes it will be updated ASAP.
|
||||
|
||||
**What happened to the old thunix? Why the name change?**
|
||||
|
||||
The original machine and founder dissappeared without any warning to anyone, including server staff. For this reason, most things were not backed up, and we needed to obtain a new domain name, and a new set of machines.
|
||||
- The original machine and founder dissappeared without any warning to anyone, including server staff. For this reason, most things were not backed up, and we needed to obtain a new domain name, and a new set of machines.
|
||||
|
||||
**I want a new package installed, or I want something changed on Thunix!**
|
||||
|
||||
Excellent! We're looking to make this system useful for the community! You can submit a PR or an issue [here](https://tildegit.org/thunix/ansible) to request the system change.
|
||||
- Excellent! We're looking to make this system useful for the community! You can submit a PR or an issue [here](https://tildegit.org/thunix/ansible) to request the system change.
|
||||
|
||||
**Can I get password-based login? Old thunix had it!**
|
||||
|
||||
No. Sorry. Not for shell access. For other integrated services, password auth will be enabled, but not for your ssh connection. We use key based authentication, as it's more secure, and more convienent for you, to be honest.
|
||||
- No. Sorry. Not for shell access. For other integrated services, password auth will be enabled, but not for your ssh connection. We use key based authentication, as it's more secure, and more convienent for you, to be honest.
|
||||
|
||||
**I want to run {fill in the blank} server, but I can't seem to access it?**
|
||||
|
||||
The only exposed ports to the internet are services as defined in our [ansible playbook.](https://tildegit.org/thunix/ansible) If there is a public service you want to see, open an issue, or do a pull request for it, and we'll probably enable it without much question.
|
||||
- The only exposed ports to the internet are services as defined in our [ansible playbook.](https://tildegit.org/thunix/ansible) If there is a public service you want to see, open an issue, or do a pull request for it, and we'll probably enable it without much question.
|
||||
|
||||
**That's too hard! Can you just open the port up for this service I have running?**
|
||||
|
||||
No. Due to security issues, we cannot. HOWEVER! You can certainly use an [SSH tunnel](https://duckduckgo.com/?q=ssh+tunnnel) to access it.
|
||||
- No. Due to security issues, we cannot. HOWEVER! You can certainly use an [SSH tunnel](https://duckduckgo.com/?q=ssh+tunnnel) to access it.
|
||||
|
||||
**Old thunix did {fill in the blank}, and now it doesn't. Make it work like it used to!**
|
||||
|
||||
There was a huge changeover. Maybe we can get something going old thunix had, and maybe not. You can mention it in the IRC channel, and we'll see what we can do.
|
||||
- There was a huge changeover. Maybe we can get something going old thunix had, and maybe not. You can mention it in the IRC channel, and we'll see what we can do.
|
||||
|
||||
**How can I access my thunix email?**
|
||||
|
||||
You can use the following for your mail settings (This is Thunderbird's setting screen, but the settings are the same):
|
||||
- You can use the following for your mail settings (This is Thunderbird's setting screen, but the settings are the same):
|
||||
|
||||
[![](/media/mail.png)](/media/mail.png)
|
||||
|
|
|
@ -5,14 +5,10 @@ We're so glad you could drop by and we hope you enjoy your visit. Stay a while!
|
|||
|
||||
## About thunix
|
||||
|
||||
thunix offers Secure Shell (SSH) accounts, Web Hosting, Email Accounts, and many other services. But, most of all, we are a community of users. It was founded by hexhaxtron in the Summer of 2017, and was continued by [amcclure](/~amcclure) and [ubergeek](/~ubergeek) since 2018. We aim to provide the best service possible with a wide variety of features, and we hope you have fun with it!
|
||||
The Thunix project provide Secure Shell (SSH) accounts, Web Hosting, Email Accounts, and many other UNIX-like services. But, most of all, we are a community of users. It was founded by hexhaxtron in the Summer of 2017, and was continued by [ubergeek](/~ubergeek) since 2018 however in 2023 [deepend](/~deepend) has since taken the role. We aim to provide the best service possible with a wide variety of features, and we hope you have fun with it!
|
||||
|
||||
|
||||
## Project Phoenix
|
||||
|
||||
The thunix Phoenix project aims to provide a new user experience for shell users, with integration into the wider Tildeverse network.
|
||||
|
||||
Join us on IRC on irc.tilde.chat/6697 in the #thunix channel, or just click here for a web client: [![#thunix channel](https://tilde.chat/badges/badge.php?channel=%23thunix)](https://web.tilde.chat/?join=thunix)
|
||||
Join us on IRC on irc.newnet.net/6697 in the #thunix channel, or just click here for a web client: [![#thunix channel](https://stats.newnet.net/badges/badge.php?channel=%23thunix)](https://tilde.chat/kiwi/#thunix)
|
||||
|
||||
If you want to sign up for an account, simply open our [signup form](/signup) and provide us with:
|
||||
|
||||
|
|
|
@ -1,19 +1,7 @@
|
|||
# State of the Thunix - March 2020
|
||||
# State of the Thunix - July 2023
|
||||
|
||||
So, Thunix has moved to a new host. With this move comes many benefits, and a couple of tradeoffs.
|
||||
We are on the mend. deepend from tilde.club has taken on running Thunix and has started to build it up on his
|
||||
own infrastructure. Sign ups that come in will be kept in queue until the system is ready
|
||||
for more users.
|
||||
|
||||
So, first for what we lost: We lost ~8GB of RAM and 1TB of disk space.
|
||||
|
||||
We rarely utilized more than 1/4 of the RAM, so we're still way good to go there.
|
||||
|
||||
We haven't ran out of disk space, with 2TB, in fact, we have been hovering ~1/4 usage. So, right now, we're at ~50% usage. We will be getting rid of some low-usage mirrors, that have plenty of replicas already in Germany, which should free up a bunch more space.
|
||||
|
||||
What we have gained: ipv6 addresses, full virtualization (Which allows us to modify the system more heavily, better isolation (Which means more privacy and security for users), we can do snaps and containers now as well!
|
||||
|
||||
We have also gotten what should hopefully be a more sustainable model: Thunix is now being graciously sponsored by [WNY Technology Collaborative](https://wnytechcollab.com), a worker-owned cooperative, that works with other cooperatives, socialist organizations, non-profit organizations, and local small businesses to meet their information technology needs. So, as long as they are still in business, we have a home :)
|
||||
|
||||
All in all, this new home gives us a lot more flexibility to grow, and gets us to a slightly more sustainable position, since donations (While still welcomed) have been pretty lacking. This move provides stability, for the moment. Eventually, I would like to see Thunix become a fully self-sustaining community.
|
||||
|
||||
If you see anything awry, open an issue on our tildegit repo for ansible, if you're unsure where the problem is, or drop a line in tilde.chat/#thunix, and we'll check into it, so see what is wrong.
|
||||
|
||||
So, on to more good things!
|
||||
More to come very soon.
|
|
@ -12,9 +12,16 @@ Connect to thunix.net in your minecraft client. Running the Paperclip minecraft
|
|||
|
||||
Thunix offers webmail at [https://thunix.net/webmail](/webmail). You can also connect via imap. Thunderbird will autodetect your settings, and we recommend the use of Thunderbird email client, so you can get the best-of-breed email experience. We also recommend using enigmail with Thunderbird as well. You can get it from your distro's package manager, or from [the Thunderbird project's site](https://www.thunderbird.net/)
|
||||
|
||||
## SSH Fingerprints
|
||||
|
||||
256 SHA256:iuqEWXCqUNihqO7o4xLrJ05M+te09i3P+WrHZsjUdZY thunix.net (ECDSA)
|
||||
3072 SHA256:7gZXCqNUYBfrTQ8wYmLrD6rVc5zL5nYf2l5t8ZrLIBU thunix.net (RSA)
|
||||
256 SHA256:d+J8u5pmQ8sR1BM8/EpUiNAlL9by371utl1ncNgFG6A thunix.net (ED25519)
|
||||
|
||||
## Onion Service
|
||||
|
||||
Thunix's services are available as a onion site as well. Our onion address is thunixme5v4rnoby.onion.
|
||||
Thunix's websites are available as a onion site as well. (SSH access is currently not available over Tor)
|
||||
Our Tor network (The Onion Router) address is kbguajmip4jlr2k3vpscmvymtxqnft267ox2ij6pdrgb5jcvx3kctkyd.onion.
|
||||
|
||||
## BZFlag Game Server
|
||||
|
||||
|
@ -22,15 +29,17 @@ BZFlag runs on the standard port. If you have a specific map you want loaded, se
|
|||
|
||||
## IRC Chat
|
||||
|
||||
Thunix is part of the tilde.chat network. You can access chat via the terminal, with the 'chat' command, via your favorite email client at irc.tilde.chat/6697, or via a web chat interface located [![#thunix channel](https://tilde.chat/badges/badge.php?channel=%23thunix)](https://web.tilde.chat/?join=thunix).
|
||||
Thunix is part of the Newnet IRC network. You can access chat via the terminal, with the 'chat' command, via your favorite email client at irc.newnet.net/6697, or via a web chat interface located [![#thunix channel](https://stats.newnet.net/badges/badge.php?channel=%23thunix)](https://web.newnet.net/?join=thunix).
|
||||
|
||||
|
||||
## FOSS Project Mirrors
|
||||
## FOSS Project Mirrors
|
||||
|
||||
Thunix hosts mirrors for several FOSS projects. You can see the full mirror list in the sidebar link.
|
||||
|
||||
## Tildenet Client VPN
|
||||
## Website and CMS hosting
|
||||
|
||||
Thunix allows users to connect into [tildenet](https://intranet.tildeverse.org), via [Wireguard](https://www.wireguard.com/). If you're interested in accessing Tildenet, send an email to [root](mailto:root@thunix.net), requesting a wireguard client VPN, or ask in IRC.
|
||||
Collaborative creation, modification and management of digital content.
|
||||
- LAMP (Apache HTTP server, MySQL database and PHP scripting language) is an open source software stack on Linux environment, available to host a variety of web sites, content management systems and applications.
|
||||
- Django web development framework.
|
||||
|
||||
<!-- Begin autogen content from /includes/server.php -->
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Form Failure
|
||||
|
||||
This username is already registered, please choose another one.
|
|
@ -0,0 +1,3 @@
|
|||
# Form Failure
|
||||
|
||||
Please check SSH public key format.
|
|
@ -1,9 +1,8 @@
|
|||
<?php
|
||||
//Name of your site
|
||||
$site_name="☣ thunix ☣";
|
||||
$site_name="🌻 thunix 🌻";
|
||||
|
||||
//Root for the site, in a browser
|
||||
//$site_root="https://dev.thunix.cf";
|
||||
$site_root="https://".$_SERVER['HTTP_HOST'];
|
||||
//Local base root for app files
|
||||
$doc_root="/var/www/thunix.cf";
|
||||
|
|
43
githook.php
43
githook.php
|
@ -16,8 +16,6 @@
|
|||
|
||||
/* security */
|
||||
$access_token = "secret";
|
||||
$ansible_lastrun = '/dev/shm/ansible-hook-last-run';
|
||||
$ansible_dropfile = '/dev/shm/run-ansible';
|
||||
$www_lastrun = '/dev/shm/www-hook-last-run';
|
||||
$www_dropfile = '/dev/shm/run-www';
|
||||
$gopher_lastrun = '/dev/shm/gopher-hook-last-run';
|
||||
|
@ -25,7 +23,7 @@ $gopher_dropfile = '/dev/shm/run-gopher';
|
|||
$wiki_lastrun = '/dev/shm/wiki-hook-last-run';
|
||||
$wiki_dropfile = '/dev/shm/run-wiki';
|
||||
|
||||
$allowedip = '2607:5300:203:5fd5::7:65';
|
||||
$allowedip = '198.50.210.248';
|
||||
$remoteip = $_SERVER['REMOTE_ADDR'];
|
||||
$ratelimit = 300;
|
||||
|
||||
|
@ -51,24 +49,6 @@ if ( strcmp($remoteip, $allowedip) !== 0 )
|
|||
exit(0);
|
||||
}
|
||||
|
||||
// Hook for ansible here
|
||||
if ($data["repository"]["full_name"] == 'thunix/ansible') {
|
||||
syslog(LOG_INFO, 'Ansible Webhook recieved.');
|
||||
// We limit runs to once per 5 minutes, so they don't try
|
||||
// overlapping. Systemd shouldn't allow it, but we'll check
|
||||
// anyways
|
||||
if ( time () - filemtime ( $ansible_lastrun ) > $ratelimit ) {
|
||||
touch ( $ansible_dropfile );
|
||||
touch ( $ansible_lastrun );
|
||||
echo "HTTP 200 - Ansible webhook recieved.\n";
|
||||
}
|
||||
else {
|
||||
http_response_code(429);
|
||||
echo "HTTP 429 - Rate Limited.\n";
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Hook for www repo here. Same rules apply, as above, for www. We
|
||||
// could probably make it able to run more frequently. Backend job is
|
||||
// just a git pull, and is quick.
|
||||
|
@ -119,8 +99,8 @@ elseif ($data["repository"]["full_name"] == 'thunix/wiki') {
|
|||
}
|
||||
}
|
||||
|
||||
// Easter egg for anyone probing the hook. Enjoy. We're a coffee maker
|
||||
// and not a teapot :)
|
||||
// Easter egg for anyone probing the hook. Enjoy. We're a tea pot
|
||||
// and not a coffee maker :)
|
||||
else {
|
||||
http_response_code(418);
|
||||
echo "HTTP 418 - I'm a teapot.\n";
|
||||
|
@ -128,22 +108,5 @@ else {
|
|||
exit(0);
|
||||
}
|
||||
|
||||
/*$fp = pfsockopen( "tcp://127.0.0.1", 1234, $errno, $errstr );
|
||||
|
||||
if (!$fp)
|
||||
{
|
||||
echo "ERROR: $errno - $errstr<br />\n";
|
||||
}
|
||||
socket_set_timeout ($fp, 10);
|
||||
$msg = "Commit '".$data['commits'][0]["message"]."' was pushed to ".$data["repository"]["full_name"].' by '.$data["pusher"]["login"];
|
||||
$msg = trim(preg_replace('/\s+/', ' ', $msg));
|
||||
$write = fwrite ($fp, $msg);
|
||||
fclose($fp);
|
||||
|
||||
if (!$write) {
|
||||
echo "error writing to port.<br/>";
|
||||
next;
|
||||
}
|
||||
*/
|
||||
?>
|
||||
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
/* TEAM */
|
||||
Your title: ubergeek, naglfar, fosslinux
|
||||
Your title: deepend, naglfar
|
||||
Site: https://thunix.net, root@thunix.net
|
||||
Location: Frankfurt, Germany
|
||||
Location: Quebec, Canada
|
||||
|
||||
/* THANKS */
|
||||
Name: ubergeek https://thunix.net/~ubergeek
|
||||
Name: deepend https://thunix.net/~deepend
|
||||
ubergeek https://thunix.net/~ubergeek
|
||||
naglfar https://thunix.net/~naglfar
|
||||
fosslinux https://thunix.net/~fosslinux
|
||||
|
||||
/* SITE */
|
||||
Last update: 2019/10/31
|
||||
Last update: 2023/12/26
|
||||
Standards: HTML5
|
||||
Components: Apache2, Git, and PHP, Parsedown, Parsedown Extra
|
||||
Software: vim, geany, ansible, wiki.php
|
||||
|
|
BIN
images/mail.png
BIN
images/mail.png
Binary file not shown.
Before Width: | Height: | Size: 650 KiB |
|
@ -3,7 +3,7 @@ include "../config.php";
|
|||
// This code is licensed under the AGPL 3 or later by ubergeek (https://tildegit.org/ubergeek)
|
||||
|
||||
$name = $_GET['contact_name'];
|
||||
$email = $_GET['email_address'];
|
||||
$return_addr = $_GET['email_address'];
|
||||
$type = $_GET['type'];
|
||||
$body = $_GET['message'];
|
||||
|
||||
|
@ -14,7 +14,6 @@ $subject = "Contact Form";
|
|||
$mailbody = "The following submission via the contact form was recieved:
|
||||
|
||||
Real Name: $name
|
||||
Email Address: $email
|
||||
Type: $type
|
||||
Message: $body";
|
||||
|
||||
|
@ -24,7 +23,7 @@ if ( $tv != "tildeverse" ) {
|
|||
die();
|
||||
}
|
||||
|
||||
shell_exec("echo '$mailbody' | /usr/bin/mail -s '$subject' $destination_addr ");
|
||||
shell_exec("echo '$mailbody' | /usr/bin/mail -s '$subject' -r '$return_addr' $destination_addr ");
|
||||
|
||||
// In the future, here, we *should* be able to build a process that
|
||||
// auto opens an issue in the tildegit project
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
All content is licensed as [CC BY-SA 4.0license](https://creativecommons.org/licenses/by-sa/4.0/). Users define their own licensing and own all of their content.
|
||||
All content is licensed as [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/). Users define their own licensing and own all of their content.
|
||||
|
||||
All questions, comments, and concerns about this site should be sent to [the administration team](/contact).
|
||||
|
||||
Created with valid [HTML](https://validator.w3.org/check?uri=referer) and [CSS](https://jigsaw.w3.org/css-validator/check/referer) code.
|
||||
|
||||
Services and hosting sponsored by [WNY Technology Collaborative](https://wnytechcollab.com).
|
||||
Created with valid [HTML](https://validator.w3.org/check?uri=referer) and [CSS](https://jigsaw.w3.org/css-validator/check/referer) code.
|
|
@ -1 +1 @@
|
|||
![☣ thunix ☣](/media/thunix.png)
|
||||
![🌻 thunix🌻](/media/thunix.gif)
|
||||
|
|
|
@ -1,72 +1,4 @@
|
|||
<?php
|
||||
/*
|
||||
This code is licensed under the AGPL 3 or later by ubergeek (https://tildegit.org/ubergeek)
|
||||
Parsedown is licensed under the MIT license.
|
||||
*/
|
||||
|
||||
include('../config.php');
|
||||
include('../parsedown-1.7.3/Parsedown.php');
|
||||
include('../parsedown-extra-0.7.1/ParsedownExtra.php');
|
||||
|
||||
$page = $_GET['page'];
|
||||
$style = $_GET['style'];
|
||||
$Parsedown = new Parsedown();
|
||||
$Parsedown->setMarkupEscaped(true);
|
||||
$ParsedownExtra = new ParsedownExtra();
|
||||
|
||||
if ( $page == "") {
|
||||
$page = "main";
|
||||
}
|
||||
|
||||
if ( $style == "") {
|
||||
if ( $site_style == "") {
|
||||
$site_style="site";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$site_style=$style;
|
||||
}
|
||||
|
||||
$header = file_get_contents("$doc_root/includes/header.md");
|
||||
$sidebar = file_get_contents("$doc_root/includes/sidebar.md");
|
||||
$content = file_get_contents("$doc_root/articles/server.md");
|
||||
$footer = file_get_contents("$doc_root/includes/footer.md");
|
||||
|
||||
print "<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<title>$site_name - $page</title>
|
||||
<link rel='stylesheet' type='text/css' href='$site_root/includes/$site_style.css'>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Begin Header -->
|
||||
|
||||
<div id='header'>";
|
||||
|
||||
print $Parsedown->text($header);
|
||||
|
||||
print "
|
||||
</div>
|
||||
<!-- End Header -->
|
||||
";
|
||||
|
||||
print "<hr>
|
||||
<div id='body'>
|
||||
|
||||
<!-- Begin Sidebar -->
|
||||
<div id='sidebar'>
|
||||
";
|
||||
|
||||
echo $Parsedown->text($sidebar);
|
||||
|
||||
print " </div>
|
||||
<!-- End Sidebar -->
|
||||
|
||||
<!-- Begin Body -->
|
||||
<div id='content'>";
|
||||
|
||||
echo $ParsedownExtra->text($content);
|
||||
|
||||
// Monitoring section
|
||||
|
||||
$hosts="all";
|
||||
|
@ -113,21 +45,4 @@ echo "\n</table>\n";
|
|||
fclose($f);
|
||||
|
||||
// End monitoring section
|
||||
print " </div>
|
||||
<!-- End Body -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Begin Footer -->
|
||||
<div id='footer'>
|
||||
<hr>
|
||||
";
|
||||
|
||||
echo $Parsedown->text($footer);
|
||||
|
||||
print " </div>
|
||||
<!-- End Footer -->
|
||||
|
||||
</body>
|
||||
</html>";
|
||||
?>
|
||||
|
|
|
@ -7,22 +7,24 @@
|
|||
- [GDPR Statement and Privacy Policy](/gdpr)
|
||||
- [Contact Us](/contact)
|
||||
- [Sign Up](/signup)
|
||||
- [Donations](/donate)
|
||||
- Status of Servers and Services
|
||||
---------------------------
|
||||
|
||||
- [Status and Information](/server)
|
||||
- [thunix Mirror Services](https://ftp.thunix.net/)
|
||||
- [Web Server Stats](https://stats.thunix.net/)
|
||||
- [Donations](/donate)
|
||||
- [Web Mail](/webmail/)
|
||||
- [ZNC Service](https://thunix.net:1356/)
|
||||
- [Service News](/news)
|
||||
- Main Resources On This Site
|
||||
---------------------------
|
||||
|
||||
- [Wiki](https://wiki.thunix.net/)
|
||||
- [Status of thunix Servers and Services](/server)
|
||||
- [Service News](/news)
|
||||
- [User Web Directories](/users)
|
||||
- [User Gopher Directories](https://gopher.tildeverse.org/thunix.net)
|
||||
- [Web Mail](/webmail/)
|
||||
- [ZNC Service](https://thunix.net:1326/)
|
||||
- Server Staff
|
||||
------------
|
||||
|
||||
- [Ubergeek](/~ubergeek/)
|
||||
- [Naglfar](/~naglfar/)
|
||||
- [fosslinux](/~fosslinux/)
|
||||
- [deepend](/~deepend/)
|
||||
- [Naglfar](/~naglfar/)
|
|
@ -9,6 +9,12 @@ $interest = $_GET['interest'];
|
|||
$pubkey = $_GET['pubkey'];
|
||||
$tv = $_GET['tv'];
|
||||
|
||||
// username passed lowercased
|
||||
$username = strtolower($username);
|
||||
|
||||
// strip new line characters from the end
|
||||
$pubkey = trim($pubkey);
|
||||
|
||||
$from = 'From: www-data <www-data@thunix.net>';
|
||||
$destination_addr = "newuser@thunix.net";
|
||||
$subject = "New User Registration";
|
||||
|
@ -19,19 +25,39 @@ Email Address: $email
|
|||
Interest: $interest
|
||||
Pubkey: $pubkey";
|
||||
|
||||
if ( $tv != "tildeverse" ) {
|
||||
print "Spam attempt";
|
||||
header("Location: $site_root/?page=success1");
|
||||
die();
|
||||
}
|
||||
|
||||
mail($destination_addr, $subject, $mailbody, $from);
|
||||
|
||||
// In the future, here, we *should* be able to build a process that
|
||||
// somehow auto-verifies the user, and instead of email, it'll kick off the new user process here
|
||||
|
||||
header("Location: $site_root/?page=success2");
|
||||
$user_queue = '/dev/shm/userqueue';
|
||||
|
||||
// Spam attempt
|
||||
$success = 'success1';
|
||||
if ( $tv == "tildeverse" )
|
||||
{
|
||||
// Success!
|
||||
$success = 'success2';
|
||||
|
||||
// Check if username already taken
|
||||
if (posix_getpwnam($username)) {
|
||||
$success = 'success3';
|
||||
}
|
||||
|
||||
// Simple SSH public key format check
|
||||
$valid_key_starts = ['ssh-rsa', 'ssh-dss', 'ecdsa-sha2', 'ssh-ed25519'];
|
||||
$key_parts = explode(' ', $pubkey, 3);
|
||||
if (!in_array($key_parts[0], $valid_key_starts) || count($key_parts) < 2) {
|
||||
$success = 'success4';
|
||||
}
|
||||
|
||||
if ($success == "success2") {
|
||||
mail($destination_addr, $subject, $mailbody, $from);
|
||||
$fp = fopen($user_queue, 'a');
|
||||
fwrite($fp, "'$username','$email','$pubkey'\n");
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
|
||||
header("Location: $site_root/?page=$success");
|
||||
die();
|
||||
|
||||
?>
|
||||
?>
|
|
@ -1,98 +1,17 @@
|
|||
<?php
|
||||
/*
|
||||
This code is licensed under the AGPL 3 or later by ubergeek (https://tildegit.org/ubergeek)
|
||||
Parsedown and Parsedown Extra is licensed under the MIT license.
|
||||
*/
|
||||
|
||||
include('../config.php');
|
||||
include('../parsedown-1.7.3/Parsedown.php');
|
||||
include('../parsedown-extra-0.7.1/ParsedownExtra.php');
|
||||
|
||||
$page = $_GET['page'];
|
||||
$style = $_GET['style'];
|
||||
$Parsedown = new Parsedown();
|
||||
$Parsedown->setMarkupEscaped(true);
|
||||
$ParsedownExtra = new ParsedownExtra();
|
||||
|
||||
if ( $page == "") {
|
||||
$page = "main";
|
||||
}
|
||||
|
||||
if ( $style == "") {
|
||||
if ( $site_style == "") {
|
||||
$site_style="site";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$site_style=$style;
|
||||
}
|
||||
|
||||
$header = file_get_contents("$doc_root/includes/header.md");
|
||||
$sidebar = file_get_contents("$doc_root/includes/sidebar.md");
|
||||
$content = file_get_contents("$doc_root/articles/userdir.md");
|
||||
$footer = file_get_contents("$doc_root/includes/footer.md");
|
||||
|
||||
print "<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<title>$site_name - $page</title>
|
||||
<link rel='stylesheet' type='text/css' href='$site_root/includes/$site_style.css'>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Begin Header -->
|
||||
|
||||
<div id='header'>";
|
||||
|
||||
print $Parsedown->text($header);
|
||||
|
||||
print "
|
||||
</div>
|
||||
<!-- End Header -->
|
||||
";
|
||||
|
||||
print "<hr>
|
||||
<div id='body'>
|
||||
|
||||
<!-- Begin Sidebar -->
|
||||
<div id='sidebar'>
|
||||
";
|
||||
|
||||
echo $Parsedown->text($sidebar);
|
||||
|
||||
print " </div>
|
||||
<!-- End Sidebar -->
|
||||
|
||||
<!-- Begin Body -->
|
||||
<div id='content'>";
|
||||
|
||||
echo $ParsedownExtra->text($content);
|
||||
|
||||
$html_skel='/etc/skel/public_html/index.html';
|
||||
print "<!-- Begin autogen userdir list -->";
|
||||
print "<ul style='list-style: none; margin-left: -40px;'>";
|
||||
foreach (glob("/home/*") as $user):
|
||||
if (!is_dir($user . "/public_html") || (!file_exists($user . "/public_html/index.html") && !file_exists($user . "/public_html/index.php")))
|
||||
continue;
|
||||
$user = basename($user);
|
||||
print"<li><a href='$site_root/~$user/'>~$user</a></li>";
|
||||
foreach (glob("/home/*") as $userpath):
|
||||
if (is_dir("$userpath/public_html"))
|
||||
{
|
||||
$user = basename($userpath);
|
||||
if(sha1_file($html_skel) == sha1_file("$userpath/public_html/index.html") || count(scandir("$userpath/public_html")) == 2)
|
||||
print"<li>~$user</li>\n";
|
||||
else
|
||||
print"<li><a href='$site_root/~$user/'>~$user</a></li>\n";
|
||||
}
|
||||
endforeach;
|
||||
print "</ul></div>
|
||||
<!-- End Autgen userdir list -->";
|
||||
|
||||
print " </div>
|
||||
<!-- End Body -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Begin Footer -->
|
||||
<div id='footer'>
|
||||
<hr>
|
||||
";
|
||||
|
||||
echo $Parsedown->text($footer);
|
||||
|
||||
print " </div>
|
||||
<!-- End Footer -->
|
||||
|
||||
</body>
|
||||
</html>";
|
||||
?>
|
||||
|
|
BIN
media/mail.png
BIN
media/mail.png
Binary file not shown.
Before Width: | Height: | Size: 650 KiB After Width: | Height: | Size: 447 KiB |
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
1186
tilde.json
1186
tilde.json
File diff suppressed because it is too large
Load Diff
34
wiki.php
34
wiki.php
|
@ -8,24 +8,20 @@ include('config.php');
|
|||
include('parsedown-1.7.3/Parsedown.php');
|
||||
include('parsedown-extra-0.7.1/ParsedownExtra.php');
|
||||
|
||||
$page = $_GET['page'];
|
||||
$style = $_GET['style'];
|
||||
if(isset($_GET['page']))
|
||||
$page = $_GET['page'];
|
||||
else
|
||||
$page = "main";
|
||||
|
||||
if(isset($_GET['style']))
|
||||
$site_style = $_GET['style'];
|
||||
|
||||
$Parsedown = new Parsedown();
|
||||
$Parsedown->setMarkupEscaped(true);
|
||||
$ParsedownExtra = new ParsedownExtra();
|
||||
|
||||
if ( $page == "") {
|
||||
$page = "main";
|
||||
}
|
||||
|
||||
if ( $style == "") {
|
||||
if ( $site_style == "") {
|
||||
$site_style="site";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$site_style=$style;
|
||||
}
|
||||
if (empty($site_style))
|
||||
$site_style="site";
|
||||
|
||||
$header = file_get_contents("$doc_root/includes/header.md");
|
||||
$sidebar = file_get_contents("$doc_root/includes/sidebar.md");
|
||||
|
@ -67,6 +63,13 @@ print " </div>
|
|||
|
||||
echo $ParsedownExtra->text($content);
|
||||
|
||||
switch ($page)
|
||||
{
|
||||
case 'users':
|
||||
case 'server':
|
||||
require "includes/$page.php";
|
||||
}
|
||||
|
||||
print " </div>
|
||||
<!-- End Body -->
|
||||
|
||||
|
@ -79,7 +82,8 @@ print " </div>
|
|||
|
||||
echo $Parsedown->text($footer);
|
||||
|
||||
print " </div>
|
||||
print " <a href=\"https://tildegit.org/thunix/www\">Site Source</a> | <a href=\"https://tildegit.org/thunix/www/src/branch/master/articles/$page.md\">Page Source</a>
|
||||
</div>
|
||||
<!-- End Footer -->
|
||||
|
||||
</body>
|
||||
|
|
Loading…
Reference in New Issue