Compare commits

...

187 Commits

Author SHA1 Message Date
Blade of Darkness 527916b078 Add Backup wiki page 2021-09-24 23:53:39 +02:00
southerntofu 51620f7d22 Allow dots in requested page name 2021-03-21 10:46:35 +01:00
southerntofu 290b0dcf39 Add path debugging print statements in comment 2021-03-21 10:46:18 +01:00
southerntofu 42a438fc52 Make codeblocks responsive and don't hardcode baseURL 2021-03-20 19:15:04 +01:00
Blade of Darkness 8d5275e3a4 could return 403 instead 2021-03-20 18:53:06 +01:00
southerntofu 549e014daa Don't output anything only 403 on fishy request 2021-03-20 18:33:58 +01:00
southerntofu 6d6093990d Minimal README with nginx example config 2021-03-20 18:31:16 +01:00
southerntofu 79b32dda8e You can't escape the webroot 2021-03-20 17:53:54 +01:00
southerntofu 708dc5a3f1 Handle 404 gracefully 2021-03-20 17:43:07 +01:00
southerntofu 3c0a380ce3 Remove hardcoded paths to local files 2021-03-20 17:36:39 +01:00
Blade of Darkness abf209326c Avoid indefined variable warning 2021-01-12 14:27:16 +01:00
Blade of Darkness 2503482ae2 Avoid warning undefined variable 2021-01-12 14:05:31 +01:00
Blade of Darkness 68aded8aef Add ssh clients, split OpenSSH specific info and add url for PuTTY 2021-01-12 13:48:41 +01:00
Blade of Darkness 26cab9a719 Fix: broken url 2020-11-26 03:11:43 +01:00
Ubergeek 9937cb3ca5 Updated spec for ip_info 2020-01-24 21:26:21 -05:00
Ubergeek 82e100abf7 Updated API doc 2020-01-23 09:12:03 -05:00
Ubergeek 888ab902c6 Keep api in sync 2020-01-22 13:34:36 -05:00
Ubergeek 387af5a51f Adding new API call 2020-01-22 11:22:56 -05:00
Ubergeek ac0749c01b Beginning spec for thunix API 2020-01-21 08:20:55 -05:00
Blade of Darkness 9a39cc2c5f added: How to generate an SSH Public key on Android smartphone 2019-11-27 00:20:14 +00:00
Ubergeek a1911c60a2 Updated some formatting on the mail page 2019-09-17 14:18:24 +00:00
Ubergeek 38f25baa37 Updated email page 2019-09-17 14:17:48 +00:00
ubergeek 9bf0c92e4f Merge branch 'getmail' of lugubris/wiki into master 2019-09-17 07:33:41 -04:00
Lugubris ddb798556b
wiki/unsorted/lugubris/getmail: New page, wiki/email: Update
wiki/email: Mention POP is also supported on thunix.net
2019-09-17 10:33:22 +00:00
dovahkin f5bf210eb8 Started definitions of what "git" is, and continuing on with contrib section. 2019-09-05 21:34:13 -04:00
Ubergeek 0b11fcaaef Updating toc 2019-08-05 18:37:04 +00:00
Ubergeek 7040920fd6 Adding git.md 2019-07-26 14:15:01 +00:00
Ubergeek 759213c4c6 Merge branch 'master' of ttm.sh:thunix/wiki 2019-07-16 13:18:14 +00:00
Ubergeek 974d7038c7 Some article cleanup 2019-07-16 13:18:04 +00:00
ubergeek 5e6f43a783 Merge branch 'master' of fosslinux/wiki into master 2019-07-16 05:11:58 -04:00
fosslinux 2ca33d07bf Merge branch 'master' of ttm.sh:fosslinux/wiki 2019-07-17 04:10:44 +10:00
fosslinux 86c6834eb2 add vnc 2019-07-17 04:10:01 +10:00
Ubergeek 225150834d Updating links to point to new canonical locations 2019-07-15 16:01:44 +00:00
dovahkin 435921d2a8 Fixed some typos and formatting woes 2019-07-10 18:05:30 -04:00
Ubergeek c69d0fb307 Merge branch 'master' of ttm.sh:thunix/wiki 2019-07-10 11:12:42 +00:00
Ubergeek 51a5d23df7 Backporting htaccess fix from wiki.php 2019-07-10 11:12:28 +00:00
dovahkin 6acd79d960 Patching the patch... Don't ask... 2019-07-10 00:06:56 -04:00
dovahkin 02a4a11755 [x005] QuickFix: Patching invalid directory links. Moving System-Gen Pages to align with rest of pages as a topic 2019-07-10 00:01:26 -04:00
dovahkin 604e989a37 Started Ch3-"Contributing".
Finished Top1(mainpage)

Updated Link in ToC for Ch3.

Added files to personal unsorted directory (For WIP Files) ./wiki/unsorted/dovahkin/contrib/

Fixed typo/improper format for things in contribdir
2019-07-09 23:53:13 -04:00
dovahkin f815f1faca ToC Edits, linking. 2019-07-09 22:54:24 -04:00
dovahkin eaa1cd2ebc Added "Contributions Directory" page (For Chapter 1, Sub 6).
Fixed a typo in Main, which stated the "Wrong" username for dovahkin.

Listed current contributions (planned/active) on ContribDirectory.
2019-07-09 22:48:24 -04:00
dovahkin b3ad021d51 Brings ToC U2D, provides actual ToC Content. 2019-07-09 22:31:17 -04:00
dovahkin d13acf9d28 Adding Table of Contents to Sidebar... U2D ToC to follow... 2019-07-09 21:54:16 -04:00
Ubergeek cc9dbf7612 Some doc interlinking 2019-07-10 01:23:40 +00:00
Ubergeek 59c88ece1f Fixing filename 2019-07-10 01:20:40 +00:00
Ubergeek 06c92ed5be Updating landing for unsorted 2019-07-10 01:19:34 +00:00
Ubergeek 7baec92983 Adding new articles, updating links 2019-07-10 01:18:07 +00:00
Ubergeek ea6f0d9fe5 Fixed markup 2019-07-10 00:45:11 +00:00
Ubergeek 07bfe0822b Added some landing pages, updated others 2019-07-10 00:43:29 +00:00
Ubergeek e7599247cb Moved to unsorted 2019-07-10 00:39:58 +00:00
Ubergeek da1f93b428 ok, adding files, for reals 2019-07-08 11:47:17 +00:00
Ubergeek d8fb434323 Helps to add files 2019-07-08 11:45:24 +00:00
Ubergeek 22ab895320 Updated wiki page to point to sysdoc for iris 2019-07-08 11:44:36 +00:00
Ubergeek 36bb482ee4 Moved admintools, added sysdoc for iris 2019-07-08 11:43:44 +00:00
ubergeek 16a3301258 Update '.htaccess' 2019-07-07 16:58:44 -04:00
Ubergeek 197bd937e4 One more try to rollback 2019-07-07 20:55:18 +00:00
Ubergeek cdbe70112d Rolling back 2019-07-07 20:43:19 +00:00
Ubergeek eb2842a7b0 Fixing upstream bug that prevents numbers from being used 2019-07-07 20:39:42 +00:00
Ubergeek b996d89e3b Removing some extraneous formatting stuff, and toc link in main 2019-07-05 17:26:57 +00:00
Ubergeek 8c4c250cc0 Adding test style for thunix 2019-07-05 15:28:46 +00:00
Ubergeek edae613867 Added emoji char 2019-07-05 13:38:40 +00:00
Ubergeek c32af0ef9f Added new articles, updated landing page 2019-07-05 13:33:31 +00:00
Ubergeek 5d39d872c2 Final tweak (for now) to site.css 2019-07-05 12:09:54 +00:00
Ubergeek c46d7530c6 Fixing up site.css 2019-07-05 12:03:08 +00:00
Ubergeek ea7d9b2411 Updating sysgen docs 2019-07-04 16:55:59 +00:00
Ubergeek a0da2cc553 Adding system landing page 2019-07-04 16:50:02 +00:00
Ubergeek caf7fc593d Adding landing page listing docs 2019-07-04 16:44:19 +00:00
Ubergeek 1b9d194e1b Moving files around, and cleaning up dirty looking syntax 2019-07-04 16:39:59 +00:00
Ubergeek 587e17678a Switching to use parsedown 2019-07-04 16:34:33 +00:00
Ubergeek caa44d3795 Adding alt text to image in email doc 2019-07-03 14:27:28 +00:00
Ubergeek 881259e967 Adding admintools 2019-07-03 11:46:00 +00:00
ubergeek 0d82689892 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-07-02 21:48:57 -04:00
Ubergeek f2b65f5fec Backported wiki.php from parent 2019-07-03 01:15:44 +00:00
TechEmporium 45f64abf57 Minor adjustment to style.caa 2019-07-02 21:12:18 -04:00
Ubergeek 507d5daf07 Some formatting cleanup for email.md 2019-07-02 12:37:47 +00:00
Ubergeek 999c0ba70a Fixing spaces 2019-07-02 11:11:53 +00:00
Ubergeek 78217d7535 Fixed merge 2019-07-02 11:10:16 +00:00
ubergeek b2b3adc695 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-07-02 07:08:46 -04:00
TechEmporium 9343ddea98 Changed image file to use markdown instead of inline HTML 2019-07-01 21:37:30 -04:00
ubergeek 0f53697914 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-07-01 21:11:58 -04:00
TechEmporium b76c4740b0 Modified image to display correctly, using HTML 2019-07-01 21:11:19 -04:00
Ubergeek 5faf3118ab Roll back wiki.php changes 2019-07-02 01:11:01 +00:00
TechEmporium 1ccad66609 Reverted horizontal rule back to previous version 2019-07-01 21:07:21 -04:00
ubergeek ee1ffac841 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-07-01 21:04:38 -04:00
TechEmporium 6b732d29c6 Added content to email.md 2019-07-01 20:58:36 -04:00
TechEmporium 29ff3e640a Corrected heading tag 2019-07-01 20:00:06 -04:00
TechEmporium 3cb00852ac Readjusted horizontal rule on footer 2019-07-01 19:57:56 -04:00
Ubergeek fe990bad80 Fixing up the merge 2019-07-01 22:40:30 +00:00
TechEmporium dba5a12a3f Fixed code blocks 2019-07-01 18:34:42 -04:00
Ubergeek 74da539b76 Cleaning up markup 2019-07-01 22:32:39 +00:00
TechEmporium 5990ac1180 Corrected SSH article markdown 2019-07-01 18:32:14 -04:00
ubergeek e00f409804 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-07-01 18:12:32 -04:00
TechEmporium 343b2b2970 Updated the SSH article 2019-07-01 18:10:12 -04:00
Ubergeek 66c0683d83 Removing styling from includes 2019-07-01 21:58:15 +00:00
Ubergeek d82c8dfa8f Flipping sidebar and content 2019-07-01 21:56:28 +00:00
Ubergeek 8e9bd8304d Updating wiki.php and site.css, to match version 2019-07-01 21:55:26 +00:00
ubergeek 419e69a0e3 Update 'config.php' 2019-06-30 21:10:38 -04:00
ubergeek e227d2ede9 Update 'config.php' 2019-06-30 21:09:48 -04:00
ubergeek c0391f180e Update 'wiki.php' 2019-06-30 21:05:38 -04:00
ubergeek 83baab10e6 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 21:03:50 -04:00
TechEmporium dfcdc19a56 Used proper CSS to centre the header title 2019-06-30 21:03:39 -04:00
TechEmporium 089ae52177 Unscrewed my screw-up 2019-06-30 21:01:55 -04:00
ubergeek d3b629ccc8 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 21:00:21 -04:00
TechEmporium 23e2297676 Use of echo to point to correct directory for CSS file 2019-06-30 20:59:28 -04:00
ubergeek 4e35e8fe89 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 20:53:31 -04:00
TechEmporium 47d54cdd65 Fixed wiki.php to point to correct directory for style.css 2019-06-30 20:49:36 -04:00
TechEmporium 2d11c620d6 Modified CSS to use the tildeverse text & background colours 2019-06-30 20:45:21 -04:00
TechEmporium 3ad2f79fbb Used proper inline CSS to centre-align footer 2019-06-30 20:40:51 -04:00
Ubergeek 278be5c80e Human linting 2019-07-01 00:35:39 +00:00
Ubergeek 7d6b375b59 Backport fixes from personal site 2019-07-01 00:32:30 +00:00
Ubergeek d28a0b3e6e Flipping site.css 2019-07-01 00:28:33 +00:00
ubergeek adaee9c811 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 19:01:36 -04:00
TechEmporium 73f12bac4e Added proper CSS to centre the heading 2019-06-30 18:51:03 -04:00
ubergeek 85b1ec0041 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 18:46:00 -04:00
TechEmporium 5ea3ec61ca Readjusted the horizontal rule at the footer 2019-06-30 18:37:27 -04:00
ubergeek 89e06825ce Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-30 18:29:13 -04:00
TechEmporium a0c8542eff Corrected HTML and adjusted column width 2019-06-30 18:05:02 -04:00
TechEmporium 0eec566185 Corrected HTML 2019-06-30 17:56:55 -04:00
Ubergeek be2bf9275b Adding dir structure explanation to the contibuting page 2019-06-30 18:26:30 +00:00
Ubergeek c79963f916 More sidebar content 2019-06-30 17:41:19 +00:00
Ubergeek b440200f22 Updating sidebar 2019-06-30 17:40:37 +00:00
Ubergeek 820dc25d68 Adding sandbox page 2019-06-30 17:40:08 +00:00
Ubergeek 6d1134a750 Adding some sidebar content 2019-06-30 17:36:30 +00:00
Ubergeek a64ec940c6 Centering header and footer, should likely be moved to css eventually 2019-06-30 17:30:58 +00:00
Ubergeek 6488564bcd Adding pages that are created by staff, or via automation tools from man pages 2019-06-30 17:28:15 +00:00
Ubergeek d6e6c637d5 Adding a more non-relative link to css 2019-06-30 17:24:15 +00:00
Ubergeek ec7212728a Cleaned up elements, mainly properly closing them 2019-06-30 17:17:30 +00:00
Ubergeek 30cd1939bf Fixing merge 2019-06-30 17:12:43 +00:00
Ubergeek 9569f47a90 Finally got the formatting fixed 2019-06-30 17:11:12 +00:00
ubergeek 6c287fb279 fixed floats for proper sidebar 2019-06-30 13:07:54 -04:00
ubergeek 8956441002 changed one div from content to body 2019-06-30 13:05:09 -04:00
dovahkin eeb230f0c7 x004: [Removing Duped files] 2019-06-30 07:10:08 -04:00
xdovahkinx 3d62715dda Merge branch 'master' of TechEmporium/thunix_wiki into master
> "Just noticed some issues with the ID tagging of your DIV elements, defining your human-readable language & the way your inline CSS."
2019-06-30 05:41:06 -04:00
xdovahkinx 8fd7860596 Merge v003 of xdovahkinx/wiki into master
Took me long enough XD.
2019-06-30 05:36:50 -04:00
dovahkin 0203ad34fd Fuck this file.
This file has destroyed perfectly good PRs and is evil. I condemn it's soul to the deepest level of hell.

I will be adding a whole topic to the wiki (soonTM) regarding how to contribute to the wiki. This file is just in the way for now...
2019-06-30 05:22:24 -04:00
dovahkin d0db7c59aa v003_04: [Proofread/Additionals]
Proofread the ./articles/main.md file

Also added some sorting to the "Unsorted" directory; giving users individual folders for unsorted works by them/in progress works.
2019-06-30 05:22:24 -04:00
dovahkin bea37fa3fc v003_03: [More Trash Removal]
Misplaced files being removed...
2019-06-30 05:22:24 -04:00
dovahkin 1bdc1bec15 v003_02: [Phase in new readme]
... And replace it immediately for a pointless file... Which we will probably remove anyways... At least if I have anything to say about it...
2019-06-30 04:41:36 -04:00
dovahkin 308311f2a2 v003_01: [Phase out older Readme]
Removed an old file.
2019-06-30 04:41:36 -04:00
dovahkin 07bd9ca4eb x001: [Quick-Fix]
Continuing a quick fix, fixing missing file error.
2019-06-30 04:41:36 -04:00
dovahkin 35128c83ff v002_03: [hotfix]
Yet again attempting to fix the stupid readme in the root of the repository that is honestly not needed... we could always add it to an article later...
2019-06-30 04:41:36 -04:00
dovahkin cdc4d00d00 v002-2: [Welcome Page Updates]
Updated the wiki welcome page (main.md) to make it more proper.

Fixed accidental modification of readme.md in the repository root.
2019-06-30 04:41:36 -04:00
dovahkin f0a7a3dce0 v002_01: [Draft U2D]
Brought Drafts up-2-date on the bitb repo.
2019-06-30 04:41:36 -04:00
TechEmporium a7f83b9d7b Fixed more of your HTML 2019-06-30 00:15:38 -04:00
TechEmporium 723b1eb479 Fixed even more HTML code 2019-06-30 00:14:36 -04:00
Ubergeek a04eeda3dc Ok, tweaking sidebar stuff 2019-06-30 02:30:45 +00:00
Ubergeek 5d468882d6 Adding a sidebar 2019-06-30 02:24:56 +00:00
Ubergeek 5ece73cf0c Adding some styling, and enabling a sidebar 2019-06-30 02:22:37 +00:00
Ubergeek eecf824135 Merge branch 'master' of ttm.sh:thunix/wiki 2019-06-30 02:01:53 +00:00
Ubergeek de4688abf8 Adding man pages we have as wiki pages 2019-06-30 02:01:38 +00:00
ubergeek a1348a432f Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-29 14:42:06 -04:00
TechEmporium 66a03adc37 Added introduction to SSH article 2019-06-29 13:01:50 -04:00
ubergeek dd9aeaedd9 Fixed quotes 2019-06-29 07:01:20 -04:00
ubergeek d701127f89 Merge branch 'master' of TechEmporium/thunix_wiki into master 2019-06-29 06:57:17 -04:00
TechEmporium 49c31e7f97 Added an introduction to start the email wiki page 2019-06-28 23:02:27 -04:00
TechEmporium e06bacd191 Made wiki.php produce correct HTML5 2019-06-28 22:49:58 -04:00
Ubergeek ad682d3442 Adding stuff to main, and adding contributing, updated README 2019-06-29 01:52:29 +00:00
Ubergeek 827f286ff3 Switching to hacker.css 2019-06-29 01:11:01 +00:00
Ubergeek 1d832de1b1 Fixed sandbox link 2019-06-29 01:08:39 +00:00
Ubergeek 568d7d9b35 Last fix for htaccess 2019-06-29 01:00:02 +00:00
Ubergeek 161e8f7964 Adding new sandbox file 2019-06-29 00:10:19 +00:00
Ubergeek f8569c328e Removing these dud files 2019-06-29 00:09:45 +00:00
Ubergeek 531598ed32 again? 2019-06-28 23:28:36 +00:00
Ubergeek f0453ddfd4 tweak main 2019-06-28 23:19:06 +00:00
Ubergeek 89ecb48c9c Moving sandbox 2019-06-28 23:18:17 +00:00
Ubergeek e2778b66f8 Trying another css 2019-06-28 23:08:18 +00:00
Ubergeek 70bba8ddb3 Adding a css, to see how well it works 2019-06-28 23:06:33 +00:00
Ubergeek 3261476faf Fixed header stuff 2019-06-28 23:00:17 +00:00
Ubergeek b87382b078 Fixed main 2019-06-28 22:58:14 +00:00
Ubergeek 480f71f2d8 sandbox stuff 2019-06-28 22:55:28 +00:00
Ubergeek 8ec78e4a45 Adding placeholders 2019-06-28 22:54:34 +00:00
Ubergeek 5d7c77ae25 File cleanup, and slight mods to wiki.php 2019-06-28 22:48:19 +00:00
Ubergeek 7d6c4cad11 Made wiki.php portable, and added footer and header files 2019-06-28 22:32:40 +00:00
Ubergeek 0c842d5d97 More clean URL for htaccess 2019-06-28 18:48:24 +00:00
Ubergeek 9774dc2680 New fixed htaccess, and testing links 2019-06-28 18:43:05 +00:00
Ubergeek b1afbe1f37 Merge branch 'master' of ttm.sh:thunix/wiki 2019-06-28 18:13:26 +00:00
Ubergeek 875bb890ad Adding .htaccess file, to try and clean up URLs 2019-06-28 18:13:14 +00:00
ubergeek 56fea15267 testing links 2019-06-28 12:49:48 -04:00
Ubergeek 7356d5ad0a Updated main 2019-06-28 16:13:37 +00:00
Ubergeek 23aeabdd9b Niceified this a bit 2019-06-28 15:51:05 +00:00
Ubergeek b2cd357199 Some cleanup, and a way to do on-the-fly generation 2019-06-28 15:30:55 +00:00
ubergeek 24fe8907fa Merge branch 'final/master' of xdovahkinx/wiki into master
Nothing looks nutso.  We should work out an engine to render this as a web page under wiki.thunix.net, somehow.
2019-06-26 06:49:14 -04:00
dovahkin ce52ec31ea Formatting Test 2019-06-26 00:53:48 -04:00
4g0tt3n Sou1 ca5665a31b Merged in review/review (pull request #3)
Move my basic start to final draft, using it as an "Initial" Commit and Contribution

Approved-by: 4g0tt3n Sou1 <x4g0tt3nsou1x@gmail.com>
2019-06-26 04:44:27 +00:00
dovahkin 69fd18d295 Added a test to Readme
Created Wiki Directory
Created table of contents.
2019-06-26 00:42:49 -04:00
4g0tt3n Sou1 67d4588a65 Merged in draft/drafts (pull request #1)
Initial Commit Tests

Approved-by: 4g0tt3n Sou1 <x4g0tt3nsou1x@gmail.com>
2019-06-26 04:22:42 +00:00
dovahkin ee871a3ce6 Initial Commit Tests
Signed-off-by: dovahkin <x4g0tt3nSou1x@gmail.com>
2019-06-26 00:19:49 -04:00
49 changed files with 3885 additions and 2 deletions

5
.htaccess Normal file
View File

@ -0,0 +1,5 @@
RewriteEngine On
RewriteRule ^$ main [QSA]
RewriteRule ^index\.php$ wiki.php?page=main [QSA]
RewriteCond %{REQUEST_URI} !(/includes/|/media)
RewriteRule ^([A-Za-z0-9\.\/]+)/?$ wiki.php?page=$1 [QSA]

View File

@ -1,3 +1,26 @@
# wiki
# thunix wiki
Thunix Wiki
Requires a webserver and PHP. The web server needs to be configured to:
- serve wiki.php by default (not index.php)
- when a requested URL does not correspond to an actual file, pass the requested page to wiki.php?page=
On apache, this is achieved by provided [.htaccess](.htaccess). On nginx, you can do something like:
```
server {
listen 80;
root /var/www/wiki_webroot;
index wiki.php;
server_name _;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
location ~ ^/(.+)$ {
try_files $uri $uri/ /wiki.php?page=$1;
}
}
```

14
articles/main.md Normal file
View File

@ -0,0 +1,14 @@
# Welcome to the Offical Thunix Wiki!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hello, and welcome to the Official Thunix wiki!
This is a multi-contributor project created to give useful guides & documentation on common and uncommon topics alike. Most of the things in here will pertain directly to **Thunix**, which is the platform you are (or if not, _should be_) using.
If you have any questions about the project, feel free to Direct Message ``dovahkin`` on IRC, or any of the other contributors/staff @ ``#thunix``.
From all the contributors and staff at **Thunix**, we hope you enjoy the project and find it helpful and informative!
Further notes;
- This project is maintained at the leisure of its contributors. You might find out-of-date info or content. Each contributor is only responsible for their commits, and the topics they contribute.
- These guides, while upheld to a professional-like standard, may contain offensive language. If you are easily offended, take caution.
- There is usually more than one way to do the same job. You will most likely find pages with alternative methods that have been added by other contributors.
- Some guides may contain "Hacky" or non-recommended methods of completing certain tasks. These methods can sometimes carry some risks. You, as an individual are SOLELY RESPONSIBLE for any and all actions you take as a result of reading ANY of the content in this wiki. We will always try to provide the safest methods or guides, but we cannot fix stupid. Be careful and vigilant.
- Again, this is maintained by contributors, NOT Thunix Staff. Any content created herein are at the responsibility of the respective contributor(s). Thunix Staff are not liable/responsible for anything you do as a result of this wiki. Do NOT harass them with issues regarding the wiki or etc.

6
articles/sandbox.md Normal file
View File

@ -0,0 +1,6 @@
## Sandbox
Just a sandbox.
This document is free for you to play around with your markdown, and not worry about breaking important pages.
thunix.jpg

View File

@ -0,0 +1,35 @@
# Table of Contents
- Chapter 1 - Thunix and You.
1. What is Thunix?
- History of Thunix
2. Staff Bios
3. Thunix Rules and Policies
4. How can I help?
5. Where is Thunix?
6. [Contributions Directory](/wiki/Thunix/contribdir)
7. [System-Generated Pages](/wiki/system/main)
- Chapter 2 - SSH Tips and Tricks
1. To Be Linked. (WIP)
- Chapter 3 - Contributing
1. [What is "Contributing"?](/wiki/contrib/top1)
- Git Crash Course
- History and Usage
2. How to Contrib. (Using Git)
- General "Rule of Thumb"s
- Workflow
- Etiquette
- Methods of
3. Contrib'ing to Thunix
- Guidelines & Proceedures
- Methods Available
- Tildegit & Ansible
- Formatting
- Chapter 4 - The Wiki
1. TBA/Planned. See Contributions Directory.
- [Unsorted Pages](/wiki/unsorted/main)
- [Sandbox](/sandbox)

View File

@ -0,0 +1,26 @@
# Contributions/Contributors Directory.
### This is a directory of who is contributing to what, and ETC. Reference the Table of Contents for full names/directories.
- Please contact these people for the respective Topic/Subtopic. DO NOT Contact Thunix Staff, unless they are a listed contrib.
- Have your name listed by contributing! See Chapter 3, Topic 3 for more info!
- If you cannot contact the relevant person for a given topic (say, after a week.)m Or otherwise N/A; contact ``dovahkin`` on IRC
###### Dovahkin (xdovahkinx) - Wiki Maintainer.
- Ch 3
- Ch 4
- Ch 1, Top 4&6.
###### Ubergeek (Ub3rg33k) - Thunix Staff.
- Ch 1
###### TechEmporium
- Ch 2
### Legend
- Chapter = "Ch." (Or Parent Topic, Ex: SSH)
- Top = "Topic"
- Sub = "Subtopic"
Example:
- Ch 1, Top 2, Sub 3 = Chapter 1, Topic 2, Subtopic 3

View File

@ -0,0 +1,19 @@
# Admin tools
There's a set of tools to ease system administration. These tools can be found in the poorly named repo [makeuser](https://tildegit.org/thunix/makeuser).
- makeuser: adds a user to our system
```makeuser {username} {email address} {ssh key}```
- rmuser: Removes user account, terminates processes, archives home directory
```rmuser {username}```
- makedb: Creates a db for a user, and emails the credentials and connection info to their thunix email address.
```makedb {username}```
- dbremove : Removes a db created by a user, after generating an mysqldump of it
```dbremove {username}```

88
articles/wiki/api.md Normal file
View File

@ -0,0 +1,88 @@
# Thunix API
This is the working spec for the Thunix API. Until finalization, the spec will be consider v1. v1 of the API shall be considered unstable, and a work in progress.
The API will be authenticated, at all times, using the user's credentials sent in the host headers.
The API shall return a 200 for successful requests, with the JSON paylod.
The API shall return a 400 for any endpoint not existent.
The API shall return a 401 for unauthenticated requests.
The API shall return a 403 for requests which are authenticated, but not permissible for the authenticated user.
The API shall return a 418 for requests to the "/teapot" endpoint.
The API shall return a 420 for requests exceeding the rate limits.
The API shall return a 501 for requests which exist in the spec, but have not been implemented yet.
## API Format
The API is a RESTful API, and the following URIs will be used:
```
https://{hostname}/api/1/{action}
```
## Informational APIs
### ip_info
This endpoint shall return a JSON payload containing interfaces, with the name, address, and netmask:
```
{
"Interfaces":[
{
"Interface":"lo",
"Address":"127.0.0.1",
"Netmask":"255.0.0.0"
},
{
"Interface":"eth0",
"Address":"213.239.234.117",
"Netmask":"255.255.255.255"
},
{
"Interface":"client1",
"Address":"10.0.1.1",
"Netmask":"255.255.255.0"
},
{
"Interface":"wg-p2p",
"Address":"10.0.0.5",
"Netmask":"255.255.255.0"
}
]
}
```
### uptime
This will return a JSON payload of system uptime:
```
{
"days":164,
"hours":16,
"mins":22,
"secs":3
}
```
### teapot
This shall return a JSON payload, describing the current tea making capabilities of the system:
```
{
"tea" : "available",
"height" : "short",
"width" : "stout
}
```

View File

@ -0,0 +1,16 @@
## Contributing to the wiki
Just do a PR on [tildegit](https://tildegit.org/thunix/wiki)
We divide things into Topics and Subtopics, each with their own Folders. So for example: ./wiki/ssh/general/howto.md
^ ^ ^
Topic Subtopic File
Note that Subtopic isnt required, but makes for nice sorting of different topics in a topic, so generic SSH guides are not confused with different SSH topics on how SSH works within thunix itself or etc…
There is also an “Unsorted” directory (located ./wiki/unsorted/), which has three purposes; These are:
* A “Hodge-Podge” for anything that doesnt have/need a specific directory
* A temporary storage area for files not classified into a category. NOTE; Maintainer/Contribs would sort these and be responsible for ensuring that any files that refer to files that have been resorted properly)

View File

@ -0,0 +1,40 @@
# What is "Contributing"?
### Definitions:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[My Favorite](https://www.urbandictionary.com/define.php?term=contributing)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[The Actual Definition](https://www.dictionary.com/browse/contributing)
### The Answer to the Title.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contributing is the act of helping further the given environment/community by means of labor or assistance, over other methods; such as Moderating or Donating.
The most classic way of doing so is through means like Bughunting, Bug Reporting, Patches, or other meaningful contributions, such as this nice wiki you are reading.
The basic goal is to ease off some of the pressure on the given leadership of the community; in the case of Thunix, the SysAdmins/Staff. As such, contributing is really any task that accomplishes that goal.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contributing is a great way to give back to a community you love and support where you cannot be part of the staff team or compensate some other way, usually financially.
It is understandable that everyone cannot pitch in through these other means, as everyone is on their own walks of life, so these little things add up and help make a community like Thunix what it is.
***
Take my personal case for example:
I (dovahkin) have been part of Thunix for a good while, about 2(ish) years. I was part of the original Thunix, and honestly was shocked when I heard about the service!
I mean, who wouldn't be?!?! A completely free SSH Shell that offers no caps on pretty much anything, Where the SysAdmins are a message away, with only rudimentary rules? Not to mention an active community, often which is friendly enough to help you when you are doing something stupid or unfamiliar?
HELLS YES. I'll take two! (Anyhow, I digress...)
I honestly should've contributed more; and I feel that could be said for a majority of the service at the time.
(Mad props to ``hexhaxtron`` for putting up with us on his own time, btw.)
Anyhow; that's a mistake I made sure not to repeat. When I heard about the re-launch of Thunix, I immediately sent 5$ as a donation.
It isn't much when you consider the cost of the bottom line of what it takes to operate Thunix as we know it, but it was what I could spare; and I know it was appreciated :).
Seeing how my financial situation doesn't exactly allow me to be sending donations every month, I put my brain to work on how I might contribute by other means.
I proposed I head and maintain the wiki, as a sort of weekend project; just something to do in my spare time. Look at how it expanded!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Instead of some random things every week/other week, we have three contributors! All making more pushes to the wiki than I can bear listening to the notifications for!
Something so innocuous, as this little weekend project, turned into a major part of Thunix, and set an example of how powerful small contributions are.
With every push to this wiki, is one less thing that the SysAdmins have to explain to the skid asking questions in IRC (Which is usually me, lets be real....).
At this point, I am rambling... You get the point? Contributing is an effective means to help where one cannot by other means.
### Cool story bro, now how is that relevant to outside of Thunix?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The point was this; No matter how big or small a contribution might be, it has the potential to really affect the entire ecosystem.
Now, let's talk about the giant in the room, being the way most might be familiar with contributing to; [Git/Version Control.](/wiki/contrib/top1_sub1). Prepare yourself for a crash-course and generic overview of Git. (We will probably release a dedicated topic for just git EventuallyTM)

View File

@ -0,0 +1,24 @@
# Databases
There are some database technologies available on Thunix.
* MySQL/MariaDB
* Sqlite
## Sqlite
In the spirit of minimalism, the recommended database technology to use here is sqlite. Sqlite DB's exist as a single, atomic file, and are a good use for light applications, with low to medium concurrent loads.
As an example, [tildegit](https://tildegit.org) is backed by a sqlite database. It also allows for greater flexibility, and segregation for your application's data: You can create as many sqlite databases as you need.
## MySQL/MariaDB
We have MariaDB server running on Thunix, and should you desire, we can provision a database for you. In order to minimize admin overhead, the database will be named the same as your user account. It's recommended that in order to segregate your applications in the single DB, use table-prefixes.
### Requesting a MySQL/MariaDB Database
Either opening an issue on [tildegit](https://tildegit.org/thunix), shooting an email to root, or asking in IRC is the way to get a DB created for your.
### Admin notes
The makedb and dbremove commands are used to create and destroy their respective databases. See [makedb](/wiki/makedb) and [dbremove](/wiki/dbremove) for more information.

View File

@ -0,0 +1,3 @@
# dbremove
Coming soon

34
articles/wiki/email.md Normal file
View File

@ -0,0 +1,34 @@
## Your Thunix Email
---
Every thunix account comes with a functional email address and mail box. This email address is the same as your SSH login name and your password is that which you received from the server's staff, in your signup confirmation email. However, if need to change your password on your thunix SSH account, use the `PASSWD` command through SSH. Though your SSH account has a password, this will NOT affect how you log into your account using SSH or an SFTP client, as your public/private key pair will always work. The account password, however, will affect only your thunix email address and ZNC IRC bouncer.
Your email can be accessed in one of three ways:
1. Running the Mutt or Alpine email clients through your SSH account
2. Logging into your email account from our [Rainloop web mail](https://www.thunix.net/webmail/) service
3. Through an email client program installed on your computer, using IMAP or POP
4. Some other tool, such as [getmail](/wiki/unsorted/lugubris/getmail)
Unlike the email services provided by Microsoft, Yahoo, Google and other providers, who intrusively spy on its users beyond reasonable law enforcement and advertising tactics, thunix email services will always respect user privacy, as you can see through our [GDPR Statement and Privacy Policy](https://www.thunix.net/gdpr).
## Mutt and Alpine Email Clients
---
Both Mutt and Alpine email clients are installed on thunix's server. They're open and accessible to every user, simply by running either the command `mutt` or `alpine` through SSH. For further assistance with either of these programs, it's highly suggested to read their man pages on the server; do this by running either `man mutt` or `man alpine` through SSH. The server is set up in such a way that allows both Mutt and Alpine to be able to fetch and send emails, so no manual configuration is required.
## Rainloop Web Mail Service
---
Thunix uses the Rainloop web interface to give users email access through their web browsers. Logging in requires the same username and password as your SSH account. Rainloop's interface is very easy to navigate, comparable to those of Microsoft Outlook, Google Mail or other browser-based email services, with utilities for organising your inbox, reporting spam and writing new messages.
## Email Client Setup with IMAP
---
You can also access thunix email using your favourite client software, including but not limited to Mozilla Thunderbird, Microsoft Office Outlook, Claws Mail or any email client that supports IMAP. The below picture illustrates the settings needed to configure your email client to fetch mail from thunix. Though it shows Thunderbird's configuration menu, this applies to all email client programs.
![Email settings in a Thunderbird dialog](https://www.thunix.net/media/mail.png)

72
articles/wiki/git.md Normal file
View File

@ -0,0 +1,72 @@
**This document is unfinished, and in draft state**
# Git Crash Course
Git can take some getting used to, but once you've mastered a few of the operations, it really begins to make sense.
## Common Workflow
A common workflow goes like this:
1. Clone Repo
2. Create a *feature branch*
3. Switch to your feature branch
4. Make changes
5. Ask for a merge/merge into master
6. Push to your origin
### Clone Repo
To clone a repo, you use the git clone command, ie
```
git clone https://tildegit.org/thunix/ansible
```
This makes a local copy of the code repo. Whatever changes you make here, nobody else sees what you did, until you *commit* and then *push*.
### Create Feature Branch
You usually don't want to work right on the *master* branch, until you're ready to push the code live. So, to make a new feature branch, try this:
```
git branch -v
```
This will show you what branches you currently have. You probably only have one right now: *master*. Let's make a new one:
```
git checkout -b UpdatingKey
```
Now do look at your branches again:
```
git branch -v
```
You'll see you know have *master* and *UpdatingKey*. You'll see there's an asterisk next to *UpdatingKey*. This means that is the branch you're currently working on.
### Make Changes
Let's make some changes in your new feature branch.
```
touch mykey.asc
git status
```
You'll see there is a file *mykey.asc* which says it's not currently tracked. Let's add the file:
```
git add mykey.asc
git status
```
You should see there's a new file to commit. Let's do that:
```
git commit -am 'Adding my key'
```

14
articles/wiki/iris.md Normal file
View File

@ -0,0 +1,14 @@
# Iris
Iris is a command-line based forum software. If you've ever used a BBS in the past, you'll fine this interface quite similar to forums of that style. Not quite as complicated as bboard.
## Usage
To use iris, once logged into your shell account, just type `iris`.
Once there, type `t` to see the topics. To read a topic, just type the topic number. To reply, `r` followed by the topic number.
To quite, just type `q`.
## See Also
* [iris](/wiki/system/iris)

14
articles/wiki/main.md Normal file
View File

@ -0,0 +1,14 @@
# Current List of Pages
### Page will be depreciated once Table of Contents is in full swing, as that is the effective point of this page, and etc.
###### Links here MAY break depending on updates to the ToC. We will try to reflect those changes here.
* ~~Contributing to the wiki~~ (See Table of Contents)
* [How to use email](/wiki/email)
* [Using SSH with thunix](/wiki/ssh)
* [Iris](/wiki/iris)
* [Databases](/wiki/databases)
* [Admin Tools](/wiki/admintools)
* [VNC](/wiki/vnc)
* ~~Unsorted~~ (See Table of Contents)

3
articles/wiki/makedb.md Normal file
View File

@ -0,0 +1,3 @@
# Makedb
Coming soon.

33
articles/wiki/ssh.md Normal file
View File

@ -0,0 +1,33 @@
## SSH and Thunix (And magic!)
---
When you [sign up](https://www.thunix.net/signup) for an account on thunix, you'll be given remote access to a Linux shell server, with web hosting, gopher hosting and email. And because of our [GDPR and privacy policy](https://www.thunix.net/gdpr), we take security seriously. This is why we use SSH key pairs to grant access to our server through SSH or SFTP.
On our signup page, you'll seen an entry for a "Public SSH Key." SSH key pairs work on the basis of having two files; one is a public key that you can send to us when we create your account, while the other is a private key that you keep on your computer, away from public knowledge. If you're wondering where to find these things, you have to generate them yourself.
Generating SSH key pairs requires software that also allows you to connect to a shell server using SSH (such as OpenSSH, ConnectBot, Termius, OpenSSH-Win32/64 or PuTTY).
With [OpenSSH](http://www.openssh.com/) Client software installed on Windows and UNIX-like operating systems, including all Linux variants, BSD variants and macOS, the terminal command:
`ssh-keygen`
Will generate both the public and private SSH key files for you. You would be prompted for a file name to save the key files as, then a passphrase to help generate the files from. Then, out of the two files, open the public key file (the file with the file suffix \*.pub) in your favourite text editor, copy all its text and paste it in the Public SSH Key section of our signup page when submitting your registration form.
[PuTTY](https://www.putty.org/) handles key generation differently, as the PuTTYGen program is graphical. However, the interface makes key generation very self-explanatory (it simply involves moving your mouse cursor around your screen). The resulting key files can be saved and, as with the public key file saved by OpenSSH's shh-keygen program, open your new public key file in your favourite text editor, copy all its text and paste it in the Public SSH Key section of our signup page when submitting your registration form.
[ConnectBot](https://f-droid.org/en/packages/org.connectbot/) is the SSH client available for Android smartphone. You can generate an type rsa 2048 bits and copy this public key, in the "Manage Public Keys" menu.
## Logging into Thunix through SSH
---
Now that you have an account with us, it's time for you to connect to our server with an SSH client program. On all operating systems using OpenSSH Client, it's a simple matter of opening a terminal and running the command:
`ssh -i [path_to-private_key] [username]@thunix.net`
Where `[path_to-private_key]` is the directory path to your previously generated private SSH key and where `[username]` is the username you registered when signing up for our services.
Logging into your account with PuTTY is also quite simple. When you first run PuTTY, simply fill in `[username]@thunix.net` as your host name, where '[username]` is the username you registered when signing up for our services. Then, in the Category column of PuTTY's interface, expand the SSH category, select the Auth category and look for a text field called Private Key for Authentication; click on the Browse button, open the private key that you generated earlier and click on the Open button at the bottom of the program window.
If everything has been done correctly, you should see a BASH terminal prompt; you're not logged into Thunix!

View File

@ -0,0 +1,42 @@
man(8) Ansible on Thunix man(8)
NAME Ansible on Thunix - how we manage the server
SYNOPSIS ansible-pull
DESCRIPTION We use ansible to manage the servers running the systems and
services for Thunix. Ansible consists of a "playbook" of YAML files,
that declare the state of the system.
The first step is to clone the repo used to manage the environment:
git clone git@ttm.sh:thunix/ansible.git (You will need a tidegit account for this, and a key loaded into your account there)
From there, the typical github-type workflow is used:
* Create a local branch, to track your issue's changes.
* Commit changes to your local branch.
* Send a URI pointing to your repo, with branch name to someone with merge permissions
Inside of the tildegit interface:
* Create a new branch, selecting option to create a branch and pull request
* Make changes in your branch
* Update PR
* Wait for someone to merge your changes
Hourly, a job runs that pulls the latest version of the repo, and the runs ansible-playbook against the playbook. A sudoer can manually run this job, if desired,
and it's located at /etc/cron.hourly/ansible-pull.
SEE ALSO tildegit.org(8), git(8), ansible-playbook(8)
BUGS No known bugs.
AUTHOR Uber Geek (ubergeek@thunix.net)
1.1 19 February 2019 man(8)

View File

@ -0,0 +1,22 @@
backup(1) Thunix backup backup(1)
NAME backup - creating data backup script
SYNOPSIS backup
DESCRIPTION Thunix uses a daily cron job that runs /usr/local/bin/backup
script to store tar gzip compressed files located on local disk in BACKUP
Cycle: full weekly and incrementals daily.
Incremental backup restore process:
First extract files from the full backup.
Then extract files in the correct order from each incremental backup.
BUGS No known bugs.
SEE ALSO tar(1), gzip(1), crontab(1), find(1), mysqldump(1)
AUTHOR Thunix Corporation (http://thunix.net)
11.0 24 September 2021 backup(1)

View File

@ -0,0 +1,19 @@
man(8) Thunix chat man(8)
NAME chat - chat script
SYNOPSIS chat
DESCRIPTION This is a simple script to launch weechat for new users, and
get them into the correct channel for chat and support.
BUGS \* If you have a customized list of servers in your weechat config
already, this may try to connect you twice, and you'll have two nicks
going at once, which will be confusing. Once you've customized weechat
to your liking, just invoke 'weechat' or 'weechat-curses'.
SEE ALSO weechat(8)
AUTHOR Uber Geek (ubergeek@thunix.net)
1.1 19 February 2019 man(8)

View File

@ -0,0 +1,562 @@
# Iris
## Serverless text-based forum for tilde-likes
Iris is a tiny bit of shared message and file convention that pretends to be forum software.
It is a fully usable message system, designed for use between different users on a single server.
Iris is strictly text-based, requiring no GUI or web servers.
* [Installation](#installation)
* [Usage](#usage)
* [Commands](#commands)
* [Command-line Options](#command-line-options)
* [Text Features/Markup](#text-featuresmarkup)
* [Philosophy](#philosophy)
* [Technical Bits](#technical-bits)
* [License](#license)
## Installation
At its core, Iris is simply a single, executable Ruby script. It has been tested and is known to work with Ruby 2.3.5. No extra gems or libraries are required.
Copy or symlink `iris.rb` somewhere the whole server can use it; `/usr/local/bin` is a good candidate:
```
chmod 755 ./iris.rb
mv ./iris.rb /usr/local/bin/iris
```
## Usage
Iris has a readline interface that can be used to navigate the message corpus.
### Readline Interface Example
```
%> iris
Welcome to Iris v. 1.0.7. Type "help" for a list of commands.; Ctrl-D or 'quit' to leave.
| ID | U | TIMESTAMP | AUTHOR | TITLE
| 1 | | 2018-01-24T05:49:53Z | jimmy_foo@ctrl-c.club | Welcome!
| 2 | 1 | 2018-01-24T16:13:05Z | jerry_berry@ctrl-c.club | Suggestions for imp...
jimmy_foo@ctrl-c.club>
```
## Commands
* [[t]opics](#topics)
* [Display topic](#display-topic)
* [[c]ompose](#compose)
* [[r]eply](#reply)
* [[e]dit](#edit)
* [[d]elete and un[d]elete](#delete)
* [[f]reshen](#freshen)
* [reset OR clear](#reset-or-clear)
* [[i]nfo](#info)
* [[h]elp](#help)
---
### [t]opics
`topics, t - List all topics`
This outputs a list of top-level topics that have been composed by everyone on the server.
```
jimmy_foo@ctrl-c.club> topics
| ID | U | TIMESTAMP | AUTHOR | TITLE
| 1 | | 2018-01-24T05:49:53Z | jimmy_foo@ctrl-c.club | Welcome!
| 2 | 1 | 2018-01-24T16:13:05Z | jerry_berry@ctrl-c.club | Suggestions for i...
```
1. The first column is the topic index. This is the reference number to use when displaying or replying to a topic.
1. The second column is unread count. This shows how many messages under this topic you haven't seen.
1. The third column is the timestamp. This is the server-local time when the topic was composed or last replied to.
1. The fourth column is the author. This is the user who composed the topic.
1. The fifth column is the title. This is the truncated first line of the topic.
---
### Display topic
`# (topic id) - Read specified topic`
Type in the index of the topic you wish to read. This will display the topic and all its replies.
```
jimmy_foo@ctrl-c.club> topics
| ID | U | TIMESTAMP | AUTHOR | TITLE
| 1 | | 2018-01-24T05:49:53Z | jimmy_foo@ctrl-c.club | Welcome!
| 2 | 1 | 2018-01-24T16:13:05Z | jerry_berry@ctrl-c.club | Suggestions for i...
jimmy_foo@ctrl-c.club> 1
*** [1] On 2018-01-24T05:49:53Z, jimmy_foo@ctrl-c.club posted...-----------------
Welcome!
It's good to see everyone here!
---------------------------------------------------------------------------------
| === [M2] On 2018-01-30T22:50:38Z, jerry_berry@ctrl-c.club replied...---------
| Thanks!
| -----------------------------------------------------------------------------
```
---
### [c]ompose
`compose, c - Add a new topic`
This allows you to add a new top-level topic to the board. The first line of your new topic will be used as the topic title.
The line editor is quite basic. Enter your message, line-by-line, and type a single period on a line by itself to end the message.
If you post an empty message, the system will discard it.
```
jimmy_foo@ctrl-c.club~> compose
Writing a new topic. Type a period on a line by itself to end message.
new~> How do I spoo the fleem?
new~> It's not in the docs and my boss is asking. Any help is appreciated!
new~> .
Topic saved!
jimmy_foo@ctrl-c.club~> topics
| ID | U | TIMESTAMP | AUTHOR | TITLE
| 1 | | 2018-01-24T05:49:53Z | jimmy_foo@ctrl-c.club | Welcome!
| 2 | | 2018-01-24T16:13:05Z | jerry_berry@ctrl-c.club | Suggestions for i...
| 3 | 1 | 2018-01-23T00:13:44Z | jimmy_foo@ctrl-c.club | How do I spoo the...
```
---
### [r]eply
`reply #, r # - Reply to a specific topic`
Replies are responses to a specific topic -- they only appear when displaying the topic.
The line editor is quite basic. Enter your message, line-by-line, and type a single period on a line by itself to end the message.
If you post an empty message, the system will discard it.
```
jennie_minnie@ctrl-c.club~> reply 3
Writing a reply to topic 'How do I spoo the fleem?'.
Type a period on a line by itself to end message.
reply~> Simple, you just boondoggle the flibbertigibbet. That should be in the manual.
reply~> .
Reply saved!
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club replied...-------
| Simple, you just boondoggle the flibbertigibbet. That should be in the
| manual.
| -----------------------------------------------------------------------------
```
---
### [e]dit
`edit #, e # - Edit a topic or message`
Editing a message or topic will replace the message you select with an all-new message.
To select the message you wish to edit, use either the topic index or the message number.
The message number will always start with the capital letter "M", message "M5" for example.
A topic ID will always be strictly numeric, "3" in the following example.
The message or topic ID can be found in square brackets in the informational text above each message.
The line editor is quite basic. Enter your edited message, line-by-line, and type a single period on a line by itself to end the message.
If you post an empty message, the system will discard it and the edit will be ignored.
After an edit, a status flag will appear on the message, letting others know the content of the message has been changed.
```
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club replied...-------
| Simple, you just boondoggle the flibbertigibbet. That should be in the
| manual.
| -----------------------------------------------------------------------------
jennie_minnie@ctrl-c.club~> edit M5
Editing message 'Simple, you just boondoggle the flibbertigibbet. That shoul...'
Type a period on a line by itself to end message.
edit~> Simple, you just boondoggle the flibbertigibbet. That's in the manual on page 45.
edit~> .
Message edited!
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] (edited) On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club repli...
| Simple, you just boondoggle the flibbertigibbet. That's in the manual on
| page 45.
| -----------------------------------------------------------------------------
```
---
### [d]elete
`delete #, d #, undelete # - Delete or undelete a topic or message`
Deleting a message or topic will remove the message you select.
To select the message you wish to delete, use either the topic index or the message number.
The message number will always start with the capital letter "M", message "M5" for example.
A topic ID will always be strictly numeric, "3" in the following example.
The message or topic ID can be found in square brackets in the informational text above each message.
After a deletion, a status flag will appear on the message, letting others know the content of the message has been deliberately removed.
If you wish to revert your deletion, "delete" the deleted message or topic ID to restore it.
The `undelete` command is provided as a mnemonic convenience; it is identical in function to the `delete` command.
```
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club replied...-------
| Simple, you just boondoggle the flibbertigibbet. That should be in the
| manual.
| -----------------------------------------------------------------------------
jennie_minnie@ctrl-c.club~> delete M5
Deleted message 'Simple, you just boondoggle the flibbertigibbet. That shoul...'
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] (deleted) On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club repl...
| -----------------------------------------------------------------------------
jennie_minnie@ctrl-c.club~> undelete M5
Undeleted message 'Simple, you just boondoggle the flibbertigibbet. That sho...'
jennie_minnie@ctrl-c.club~> 3
*** [3] On 2018-01-23T00:13:44Z, jimmy_foo@ctrl-c.club posted...-----------------
How do I spoo the fleem?
It's not in the docs and my boss is asking. Any help is appreciated!
---------------------------------------------------------------------------------
| === [M5] On 2018-01-31T05:59:27Z, jennie_minnie@ctrl-c.club replied...-------
| Simple, you just boondoggle the flibbertigibbet. That should be in the
| manual.
| -----------------------------------------------------------------------------
```
---
### [f]reshen
`freshen, f - Reload to get any new messages`
This command reloads all users' message files to get any new messages that might have come in since you started the program.
---
### reset OR clear
`reset, clear - Fix screen in case of text corruption`
This clears the screen and resets the cursor. If you experience screen corruption due to wide characters or terminal resizing, this may fix your visual issues.
---
### [i]nfo
`info, i - Display Iris version and message stats`
This outputs the current version of Iris, along with messsage, topic, and author counts.
```
jennie_minnie@ctrl-c.club~> info
Iris 1.0.7
13 topics, 0 unread.
50 messages, 0 unread.
10 authors.
```
---
### [h]elp
`help, h, ? - Display help text`
This displays helpful reminders of the commands that Iris supports.
## Command-line Options
There are a few options you can pass in from the command-line:
* [--version, -v](#--version-v)
* [--stats, -s](#--stats-s)
* [--interactive, -i](#--interactive-i)
* [--dump, -d](#--dump-d)
* [--help, -h](#--help-h)
### --version/-v
This displays the current version of Iris and exits.
```
iris --version
```
```
Iris 1.0.7
```
---
### --stats/-s
This outputs the current version of Iris, along with messsage, topic, and author counts.
This command does not enter Iris' interactive mode.
```
iris --stats
```
```
Iris 1.0.7
13 topics, 0 unread.
50 messages, 0 unread.
10 authors.
```
---
### --interactive/-i
This command enters Iris' interactive mode, the default mode with which users can compose and read topics and replies.
This is the mode that Iris enters if no options are passed on the command-line.
---
### --dump/-d
This reads the entire message corpus and outputs it as a stream of JSON data, suitable for piping into a backup file, `jq` parser, or similar.
This command does not enter Iris' interactive mode.
---
### --help/-h
This command displays a complete list of options that Iris recognizes.
## Text Features/Markup
### Color
Iris supports 7 colors and 4 text features.
#### Colors
| Marker | Color |
|:------:|:--------|
| r | Red |
| g | Green |
| y | Yellow |
| b | Blue |
| m | Magenta |
| c | Cyan |
| w | White |
#### Text Features
| Marker | Feature |
|:------:|:-----------|
| n | Normal |
| i | Intense |
| u | Underlined |
| v | Reversed |
#### Markup
Colors and Text Features are applied by a simple markup. Surround the text you want colored with an opening curly brace (`{`), add some number of text modification markers (`riu`, for example), and `}`), and close with a closing curly brace (`}`).
For example, if you have the text:
```
The blue fox and the yellow dog
```
...and you wanted to color it appropriately, you would wrap the text "blue fox" and "yellow dog" like so:
```
The {b blue fox} and the {y yellow dog}
```
The result, in your final message, would look like:
![blue_fox_and_yellow_dog.png](docs/images/blue_fox_and_yellow_dog.png)
---
Text features can be added as well:
```
The {b blue fox} {u will} jump over the {y yellow dog}
```
![blue_fox_jumping.png](docs/images/blue_fox_jumping.png)
---
A color can be combined with multiple text features:
```
The {b blue fox} {riuv will} jump over the {y yellow dog}
```
![blue_fox_really_jumping.png](docs/images/blue_fox_really_jumping.png)
---
Marker order does not matter. These two statements are equivalent:
```
The {bv blue fox} {riuv will} jump over the {yi yellow dog}
The {vb blue fox} {uirv will} jump over the {iy yellow dog}
```
---
If you want to type a curly brace, preface it with a backslash (`\`):
```
No colors for me, please. I just want to \{ write: code \}
```
...yields:
```
No colors for me, please. I just want to { write: code }
```
---
#### Color and Text Feature Sample
![color_and_text_feature_sample.png](docs/images/color_and_text_feature_sample.png)
---
#### Caveats
Color and text feature markup cannot be nested. It won't break anything, but it will probably not look like you are expecting.
## Philosophy
Iris must:
* Be a single file
* There should be no specific directory structure or complicated setup required.
* Run a single file, answer one question, and you should be going with Iris!
* Not require administrator intervention to install
* Any user on a tilde, or with his or her own server, should be able to start using Iris just by running the file.
* Not require any other software to function
* No databases, web servers, GUIs, or frameworks are require to use Iris fully.
* Require only Ruby
* Not everybody uses Ruby or is familiar with the Ruby ecosystem.
* Installing gems and libraries can be a major hassle if you don't have admin access or if there are library version conflicts.
* Iris needs no extra gems or libraries to function.
* Be durable
* A user deleting or modifying his or her messages or message file should not break Iris.
* Deleted or edited messages should leave flags or placeholders for other users to know that other content was there before.
* The Iris client should expect that any message file could be missing, altered, or corrupted, and should handle those cases gracefully.
* Be portable
* All Iris files should be human-readable (and -editable, in a pinch)
* The use of the official Iris client should be optional for a user to manage his or her messages. A text editor should suffice.
* Other clients which follow the Iris file format should work seamlessly with the official Iris client.
* Be secure
* Message files should be owned and only editable by their author.
* Iris should warn the user if this is not the case.
* Be a teacher
* Code should be clean, well-organized, and readable.
* Be limited in scope
* The source code should not exceed 1,000 LOC
## Technical Bits
* [Conventions](#conventions)
* [Message Files](#message-files)
* [Messages](#messages)
* [Message Hash](#message-hash)
* [Bad Hashes](#bad-hashes)
* [Edit Chain](#edit-chain)
* [Deleted Messages](#deleted-messages)
* [Topic List](#topic-list)
* [Replies](#replies)
### Conventions
Iris leans heavily on convention. Iris' security and message authentication is provided by filesystem permissions and message hashing.
### Message Files
Each user has their own message file. This is a JSON file containing all the messages that the user has authored. It is named `.iris.messages` and is located in the user's home directory.
`/home/jimmy_foo/.iris.messages`
In order to operate correctly and safely, this file _must_ be:
* World-readable
* Owner-writable
* Non-executable
* Owned by the user account that will be storing messages for
```
%> ls -la ~/.iris.messages
-rw-r--r-- 1 jimmy_foo jimmy_foo /home/jimmy_foo/.iris.messages
```
### Messages
#### Message Hash
##### Bad Hashes
#### Edit Chain
#### Deleted Messages
### Topic List
###Replies
## License
GPLv2

View File

@ -0,0 +1,10 @@
# List of System Generated Pages
These documents are autogenerated from our man pages, and various readmes used here on thunix.
* [ansible](/wiki/system/ansible)
* [backup](/wiki/system/backup)
* [chat](/wiki/system/chat)
* [iris](/wiki/system/iris)
* [thunix](/wiki/system/thunix)
* [tildegit.org](/wiki/system/tildegit.org)

View File

@ -0,0 +1,120 @@
man(8) Thunix man(8)
NAME Thunix - a public Linux server
SYNOPSIS ssh thunix.net
ADMINISTRATORS List of system adminstrators are:
* amcclure - Email: amcclure@thunix.net
IRC: amcclure/irc.tilde.chat, amcclure/irc.freenode.net
* naglfar - Email: naglfar@thunix.net
IRC: Naglfar/irc.tilde.chat, Naglfar/irc.freenode.net
* ubergeek - Email: ubergeek@thunix.net, ubergeek@yourtilde.com
- IRC: ubergeek/irc.tilde.chat, ub3g33k/irc.freenode.net
* fosslinux - Email: fosslinux@thunix.net
- IRC: fosslinux/irc.tilde.chat
DESCRIPTION Thunix is a publicly accesible Linux server, running Debian
9, and managed using ansible playbooks.
There are many optional things to do on Thunix. There is IRC chat availble with the weechat client. Most build tools are available to you as well, to include
git, make, gcc, go, python, and perl. Mail facilties are also available for you to use via alpine, mutt, or even mailx.
To enter chat, just type 'chat' and hit enter. You'll be dropped into the #thunix chat room on the irc.tilde.chat network.
You should create an account at tildegit.org, where Thunix's git repos are hosted, to include the system configuration definition files.
Ansible is the tool we use to configure the systems that comprise Thunix. Git and ansible are two tools your should familiarize yourself with.
Purpose The goal of Thunix is to be an open and collaborative
environment, conducive to learning the principles of \*Nix operating
systems, regarding how they work, how to administer them, how to use
them, and how to collaborate using them.
Thunix tries to adhere to the values and philosophy of the Hacker Ethic whenever possible. The hacker ethics and beliefs as described by Levy are:
* Access to computers - and anything which might teach you something about the way the world works - should be unlimited and total. Always yield to the
Hands-On Imperative!
* All information should be free
* Mistrust authority - promote decentralization
* Hackers should be judged by their hacking, not criteria such as degrees, age, race, sex, or position
* You can create art and beauty on a computer
* Computers can change your life for the better
Thunix will never use proprietary software but users can do that if they wish. This is something they should avoid however.
Terms of Service Nothing is without its rules and regulations; thunix is
no exception. Below are the site's service terms. Everything in this
page should be clear to everyone who wishes to use thunix's services;
failure to abide by these terms can result in penalties such as service
bans and may result in legal action against any offending users,
depending on the severity of each case and any other individuals who may
have been affected. Thunix may conduct investigations on any suspected
violations, and we will cooperate with law enforcement agencies with
their investigations. Be sure to read this page carefully and understand
it.
You are responsibe for checking your local mail account from time to time. This email address is the only one we retain, and as such, any warnings and notices
regarding your account, or service status will be sent to this account.
* Deliberately defacing the accounts of other users
* Deliberately trying to disrupt thunix's server
* Using thunix as a launch pad for disrupting other servers
* Using thunix to impersonate other websites and businesses for criminal purposes
* Storing/distributing pornography of any genre and medium (especially child pornography)
* Storing/distributing content that defames any individual
* Promoting racial, ethnic, religious, political and other forms of bigotry
* Storing/distributing, promoting, or encouraging use of pirated/cracked software, license keys, license/registration circumvention programs, or any ques
tionable programs/scripts that can risk causing unauthorized modifications, or disrupts network services for any programs or devices.
* Mining cryptocurrencies
* Spamming on any forums, mailing lists, irc channels, newsgroups, etc.
* Leaking or publishing any user's or individual's personal information without that person's consent.
Copyright infringement is not allowed on thunix, and we will not allow any illegal content to be distributed. It's also expected that all users respect the copy
rights of those who produce original content of any kind and only share if the author or license grants you permission. Content hosted on accounts used for exter
nal file storage must also follow copyright law.
If you want to request for content you own the copyright for to be removed from thunix, please refer to our abuse reporting page (https://www.thu
nix.net/contac). In the email, please identify who you are, if you are the copyright holder or legally representing them, the exact files you want removed with
links to the files and infringed content, and contact information such as phone numbers or a reply-to email address.
Users that repeatedly violate the Terms of Service will have their account removed. Depending on the degree of the offense, their account may be removed immedi
ately. These terms also apply to communication services such as forums, mailing lists, irc channels, newsgroups, and any other service either hosted on or used
for thunix. If you come across anything that violates the terms of service, please let us know with the abuse reporting page (https://www.thunix.net/contac).
Architecture The Thunix system consists of one server, running Debian 9,
which runs inside of an LXD container. This allows for an out-of-band
administration of the host, in case of configuration-gone-awry.
Hourly, thunix reaches out to tildegit, pull down the latest version of the configuration, and run the configuration tool, ensuring it is in a known, and easily
replicable state.
All repos for system configuration, Thunix-supplied/ran code is hosted on tildegit.org. Thunix users are recommended to create accounts on tildegit, and contrib
ute pull requests to make their desired changes to the system, or very minimally, submit issues for problems and/or requests.
SEE ALSO ssh(8), weechat(8), git(8), make(8), gcc(8), go(8), python(8),
perl(8), alpine(8), mutt(8), mailx(8), ansible-playbook(8),
tildegit.org(8)
AUTHOR Uber Geek (ubergeek@thunix.net) amcclure (amcclure@thunix.net)
1.5 24 May 2019 man(8)

View File

@ -0,0 +1,29 @@
man(8) tildegit.org" man(8)
NAME tildegit.org - a public web based source repository for the
tildeverse
SYNOPSIS https://tildegit.org
DESCRIPTION Tildegit is a web based source control system available for
the tildeverse, that runs gitea. Thunix uses tildegit.org for all source
control.
The following git repos are used:
* ansible (https://tildegit.org/thunix/ansible) This repo stores the configuration spec for all machines comprising Thunix. The repo consists of declarative YAML
files that describes the state the machines should be in.
* www (https://tildegit.org/thunix/www) This repo stores the source code that makes up the https:/thunix.net website. It's mostly php.
* documentation (https://tildegit.org/thunix/documentation) This repo stores the man pages, and accompanying documentation for the system.
* thunix_gopher (https://tildegit.org/thunix/thunix_gopher) This repo houses our gopher hole
SEE ALSO git(8), ansible(8)
BUGS No known bugs.
AUTHOR Uber Geek (ubergeek@thunix.net)
1.2 24 May 2019 man(8)

View File

@ -0,0 +1,18 @@
# What is Git?
### Definitions:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Git Definition, explained by git itself.](https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [In a broader sense:](https://aws.amazon.com/devops/source-control/)
### Definition in summary
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basically, the point of Git/SCM's is to keep track of changes to any file, project, or workspace in an enviroment offsite where you can view, manage, revert, and effectively maintain said items.
Example. Say you wanted to make a simple website from scratch. Git would allow you to take every change, or a group of changes, and make these into updates; called commits. These commits store data of everything inside the repository(a fancy word for workspace/project) from the start, allowing you to watch how a project grows. This record allows you to keep backups of your project, in case you lose it locally. It even allows you to undo changes in the event a new change causes issues.
Honestly, you could go on and **on** and ***on*** about how git can enhance the way you work on projects. Where it REALLY shines though is when you group together with other individuals and work together! Git allows MANY people to work on the same project. If a change is made, these users can store their earlier progress, and pull the new changes made!(more on this later.) This entire system builds an ecosystem; where work is done efficiently and effectively.
For example. THIS ENTIRE WIKI is a Git Repository! Every contributor works together to build this project! We all come together to build you a central place to find guides and things. How nice and handy, right? I mean having a *full guide* of things like contribing and git; all in one place, with nice and pretty text?!? Fucking awesome.
### A more in-depth look at Git and History of.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

View File

@ -0,0 +1 @@
# WIP

View File

@ -0,0 +1 @@
# WIP

View File

@ -0,0 +1 @@
# WIP

View File

@ -0,0 +1,43 @@
## getmail
---
getmail is a mail retriever designed to allow you to get your mail from one or more mail accounts on various mail servers to your local machine for reading with a minimum of fuss. getmail is designed to be secure, flexible, reliable, and easy-to-use.
### Configuration
- Create a file under .getmail in your home directory (Default: .getmail/getmailrc)
#### Retrieving email
Here is an example configuration file used with a thunix account:
```
[retriever]
type = SimplePOP3SSLRetriever
server = thunix.net
username = user
port = 995
password_command = ("/path/to/password-retriever", "-p", "myaccount@thunix.net")
[destination]
type = Maildir
path = ~/Maildir/inbox/
``
If the default filename (getmailrc) is not used then one can retrieve email by executing `$ getmail --rcfile thunix`, replace thunix with the filename used.
#### Password management
Passwords can be directly stored in the config file instead of using an external password retriever. To store password in config file use "password" parameter:
```
password = correct horse battery staple
```
This is not recommended, you should instead use an external retriever if possible. If "password" parameter is used then users should set right permission for ".getmail" directory, use `$ mkdir -m 0700 ~/.getmail` to create the directory.
### Related
- [getmail documentation](http://pyropus.ca/software/getmail/)
- [getmail - Arch Wiki](https://wiki.archlinux.org/index.php/Getmail)

View File

@ -0,0 +1,6 @@
# Unsorted Wiki Pages
* ubergeek
* [Don't Say Hello](/wiki/unsorted/ubergeek/nohello)
* [Don't Be Impatient](/wiki/unsorted/ubergeek/impatient)
* [Don't Ask to Ask](/wiki/unsorted/ubergeek/askingtoask)

View File

@ -0,0 +1,28 @@
# Don't Ask to Ask
Don't ask to ask a question in [chat](/wiki/system/chat), or on [iris](/wiki/iris). Just ask your question!
Asking to ask is pointless. Either someone will answer your question, or they wont. Corollary: [Don't be Impatient](/wiki/unsorted/ubergeek/impatient). Sometimes, people are busy, and might take more than 10 seconds to respond.
Bad Convo Example:
```
9:00 You: Can I get some help with something?
... waiting ...
9:10 You: can I get someone to help me?
9:15 ubergeek: My bad, I was busy... What do you need?
9:18 You: My foo isn't bar'ing! And I have no idea what to do.
9:19 ubergeek: Oh, you have to flim the flam, and then foo will bar.
```
Good Convo Example:
```
9:00 You: I need some help, my foo isn't bar'ing. Anyone to lend a hand?
9:15 ubergeek: Sorry, was busy. But you need to flim the flam, then your foo will bar.
9:16 You: Thanks! I owe you a beer!
```
In bad convo, your resolution took longer, and you likely irritated ubergeek by being impatient. In Good Convo, your problem was resolved a bit quicker, and ubergeek was happy to help!
PS [Ubergeek](https://thunix.net/~ubergeek) is happy to help, regardless.

View File

@ -0,0 +1,9 @@
# Don't Be Impatient
Being impatient in getting help on Thunix will score you no points at all in credibility... For a few reasons:
* Thunix is ran by an all-volunteer team. We don't get paid to do this. We get some donations, but usually, not even enough to break even.
* Thunix is self-documented, generally (If it's not, it's a bug, and an issue should be submitted [here](https://tildegit.org/thunix/documentation) or a new wiki page made [here](https://tildegit.org/thunix/wiki).
* Thunix is maintained by a set of automation scripts. If something isn't working, a PR [here](https://tildegit.org/thunix/ansible) can be done, to fix the problem.
So, if you ask a question in [#thunix](https://web.tilde.chat/?join=thunix), be patient. There's generally not a lot of chatter, and it just takes a bit to catch up. If it's been "too long", feel free to open an issue in [the pertinent repo](https://tildegit.org/thunix) or email the admin team at root at thunix.net.

View File

@ -0,0 +1,36 @@
# Don't Just Say 'Hello' In Chat
For another article about this, see [nohello.com](http://nohello.com).
Just saying "Hello", and nothing else in a chat room is just as bad as [asking to ask](askingtoask). Just saying "Hello" does two kinda bad things:
* Interrupts the person you're asking.
* The person you're interrupting is likely in the middle of something. A chat client "pings" them, and they go to check (Stopping what they are doing).
* If you just say,"Hello", you've given them no information, and thusly, interrupted them needlessly.
* It wastes time to resolution for your problem
* If you say,"Hello", you wait 30-60 seconds, for the other person to say "Hi back". Then they spend 30-60 seconds waiting for you to say what it is you need. That's 60 second to 120 seconds to even begin researching the answer.
* If instead, you say,"Hello, I have a problem with my key. Here is the pastebin for it, can you check, please?", instantly that person has all the info to begin answering your question. We saved 60-120 seconds of everyone's time!
Example of bad convo:
```
9:00 Person 1: Hi.
9:01 Person 2: Hai back!
9:02 Person 1: I have a problem with my key? Can you check on it?
9:03 Person 2: Sure!
9:04 Person 2: All fixed!
9:05 Person 1: Yep, looks good! Thanks a bunch!
```
Example of good convo:
```
9:00 Person 1: Hi, I have an issue with my key, can you check on it? Here is what I think it is: pastebinurls.com/XYZZY
9:01 Person 2: Sure, hang on a sec...
9:01 Person 2: All fixed! Give it a try!
9:02 Person 1 Yep, all good, thanks a bunch!
```
In Bad Convo, it took 5 minutes to resolution. In Good Convo, took 2 minutes. See why it's better?
It very well seems rude, because you don't just jam a person up with a question right when you see them face-to-face. But face-to-face convos have a lot of nuance to them, that is lacking in IRC. And, while maybe rude, it allows for asynchronous communication, whereas Bad Convo demands a serialized communication. Asynch is better :)

34
articles/wiki/vnc.md Normal file
View File

@ -0,0 +1,34 @@
# VNC
## Setup
If you came here, you are most likely wanting to gain access to vnc. The process
is not very difficult:
1. Open your shell and type `acquirevnc`. This will
automatically give you a port number. **Note this down.**
2. The script will also prompt you to give a password. Follow the on-screen
prompts, and note this password down, preferably in a password manager.
3. Install a VNC client on your local machine. The client for tigervnc is
recommended.
## Connection
1. Forward the port to your local machine. To do this, run
`ssh -L xxxx:localhost:xxxx -f -N -C username@thunix.net` on
your local machine **every time** before you connect to your vnc. Replace
username with your username and xxxx with your port nummber.
2. Connect to `localhost:xxxx` in your vnc client, where xxxx is your port number.
3. Type in your password you chose earlier when prompted.
## Starting VNC Server
You normally should not need to start your vnc server, as the `acquirevnc`
script starts your server for you. However, in the unlikely case of a server
reboot or a vnc crash, all you need to do is run `startvnc` and vnc will begin
in the background.
## Support
While the process is designed to be as easy as possible, it is easy to trip up.
For help, jump in our IRC channel on irc.tilde.chat/6697 in channel #thunix.

4
config.php Normal file
View File

@ -0,0 +1,4 @@
<?php
//Name of your site
$site_name="Thunix Wiki";
?>

3
includes/404.md Normal file
View File

@ -0,0 +1,3 @@
# 404
This page ("$page") does not exist.

1
includes/footer.md Normal file
View File

@ -0,0 +1 @@
All content in this wiki is under the CC-By-SA 4.0 or later license.

1
includes/header.md Normal file
View File

@ -0,0 +1 @@
☣ Thunix Wiki ☣

317
includes/old_site.css Normal file
View File

@ -0,0 +1,317 @@
body {
margin: 0;
padding: 0;
background: #222222;
font-family: Consolas, Arial, Helvetica, Sans-Serif;
font-size: 12px;
color: #00CD00;
}
h1, h2, h3 {
margin: 0;
padding: 0;
font-weight: normal;
color: #00CD00;
}
h1 {
font-size: 2em;
}
h2 {
font-size: 1.8em;
}
h3 {
font-size: 1.6em;
}
p, ul, ol {
margin-top: 0;
line-height: 180%;
}
ul, ol {
}
a {
color: #00CDCD;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
#top {
margin: 0 auto;
padding: 0;
}
/* Header */
#header {
background: linear-gradient(#666666,#222222);
margin: 0 auto;
padding: 0px 0px 0px 0px;
}
/* Logo */
#logo {
text-align: center;
margin: 0;
padding-top: 20px;
}
#logo h1, #logo p {
margin: 0;
padding: 0;
}
#logo h1 {
font-size: 3.8em;
color: #EEEEEE;
text-shadow: -1px 1px #000000;
}
#logo p {
margin: 0;
padding: 0px 0 0 2px;
font: normal 14px Georgia, "Times New Roman", Times, serif;
font-style: italic;
color: #00CD00;
}
#logo a {
text-decoration: none;
font-family: sans-serif;
color: #EEEEEE;
}
#logo a:hover {
text-decoration: underline;
font-family: sans-serif;
color: #EEEEEE;
}
/* Menu */
#menu {
height: 90px;
margin: 0 auto;
padding: 0;
}
#menu ul {
margin: 0;
padding: 50px 0px 0px 0px;
list-style: none;
line-height: normal;
}
#menu li {
float: left;
}
#menu a {
display: block;
width: 130px;
height: 30px;
margin-right: 1px;
padding: 9px 0px 0px 0px;
text-decoration: none;
text-align: center;
font-size: 13px;
font-weight: bold;
color: #00CDCD;
border: none;
}
#menu a:hover, #menu .current_page_item a {
text-decoration: none;
}
#menu .current_page_item a {
padding-left: 0;
}
/* Page */
#page {
margin: 0 auto;
padding: 0px 0px 0px 0px;
}
#page-bgtop {
padding: 20px 0px;
}
/* Content */
#content {
padding: 0px 20px 0px 20px;
}
@media only screen and (orientation: landscape) and (min-width: 1024px){
#content {
float: right;
width: 74%;
padding: 0px 20px 0px 0px;
}
}
.post {
background: #000000;
border: 2px solid #EEEEEE;
border-radius: 5px;
margin-bottom: 40px;
}
.post .title {
height: 33px;
padding: 7px 0px 0px 30px;
background: #EEEEEE;
letter-spacing: -.5px;
color: #000000;
}
.post .title a {
color: #000000;
border: none;
}
.post .meta {
margin-bottom: 30px;
padding: 20px 30px 0px 30px;
text-align: left;
font-family: Consolas, Arial, Helvetica, Sans-Serif;
font-size: 13px;
font-weight: bold;
font-style: italic;
}
.post .meta .date {
float: left;
}
.post .meta .posted {
float: right;
}
.post .meta a {
}
.post .entry {
font-size: 14px;
padding: 0px 30px 20px 30px;
padding-bottom: 20px;
text-align: justify;
}
.links {
padding-top: 20px;
font-size: 12px;
font-weight: bold;
}
/* Sidebar */
#sidebar {
margin: 0px;
padding: 0px 0px 0px 0px;
color: #00CD00;
}
@media only screen and (orientation: landscape) and (min-width: 1024px){
#sidebar {
float: left;
width: 22%;
margin: 0px;
padding: 0px 20px 0px 0px;
color: #00CD00;
}
}
#sidebar ul {
margin: 0;
padding: 0;
list-style: none;
}
#sidebar li {
margin: 0;
padding: 0;
}
#sidebar li ul {
margin: 0px 0px;
padding-bottom: 30px;
}
#sidebar li li {
padding-bottom: 5px;
line-height: 16px;
border-bottom: 1px solid #222222;
margin: 5px 30px 0px;
border-left: none;
}
#sidebar li li span {
display: block;
margin-top: -20px;
padding: 0;
font-size: 11px;
font-style: italic;
}
#sidebar h2 {
height: 38px;
padding-left: 30px;
letter-spacing: -.5px;
font-size: 1.5em;
}
#sidebar p {
margin: 0 0px;
padding: 0px 30px 20px 30px;
text-align: justify;
}
#sidebar a {
border: none;
color: #00CDCD;
}
#sidebar a:hover {
text-decoration: underline;
color: #00CDCD;
}
/* Footer */
#footer {
margin: 0 auto;
padding: 0px 0 15px 0;
background: linear-gradient(#222222,#000000);
font-family: Consolas, Arial, Helvetica, Sans-Serif;
}
#footer p {
margin: 0;
padding-top: 15px;
line-height: normal;
font-size: 9px;
text-align: center;
color: #00CD00;
}
#footer a {
color: #00CDCD;
}
#footer a:hover {
text-decoration: underline;
color: #00CDCD;
}

5
includes/older_site.css Normal file

File diff suppressed because one or more lines are too long

8
includes/sidebar.md Normal file
View File

@ -0,0 +1,8 @@
* [Home](/main)
* [Table of Contents](/tableofcontents)
* [User Contributed Pages](/wiki/main)
* [System Generated Pages](/wiki/system/main)
* [Sandbox](/sandbox)
* [Thunix.net](https://thunix.net)
* [Contact Thunix Staff](https://thunix.net/contact)

95
includes/site.css Normal file
View File

@ -0,0 +1,95 @@
body {
font-size: 10pt;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
color: #3EE77B;
line-height: 14pt;
padding-left: 5pt;
padding-right: 5pt;
padding-top: 5pt;
background-color: #040304;
width: 90%;
}
h1 {
font: 14pt Verdana, Geneva, Arial, Helvetica, sans-serif;
font-weight: bold;
line-height: 20pt;
}
p.subheader {
font-weight: bold;
color: #593d87;
}
img {
padding: 3pt;
float: right;
}
a {
text-decoration: none;
}
a:link, a:visited {
color: #8094d6;
}
a:hover, a:active {
color: #FF9933;
}
/*
This file is licensed under the GPL 3.0 or later.
*/
body {
font-family: Sans-serif;
}
#body {
width: 90%;
font-size: medium;
}
#header {
width: 90%;
text-align: center;
font-size: xx-large;
}
#content {
width: 78%;
float: right;
font-size: medium;
}
#content img {
max-height: 400px;
max-width: 98%;
}
#sidebar {
width: 18%;
float: left;
font-size: small;
}
#footer {
text-align: center;
clear: both;
font-size: smaller;
font-style: italic;
line-height: 12pt;
text-align: center;
padding-top: 30pt;
}
pre > code {
overflow-x: auto;
display: block;
}

76
includes/thunix.css Normal file
View File

@ -0,0 +1,76 @@
/*
This file is licensed under the GPL 3.0 or later.
*/
body {
font-family: "Courier New", Courier, monospace;
background: black;
color: lime;
}
#body {
width: 95%;
}
#body h1 {
background: white;
color: green;
}
#body h2 {
background: white;
color: green;
}
#body h3 {
background: white;
color: green;
}
#body a {
background: black;
color: lime;
}
#body a:visited {
color: green;
}
#header {
width: 90%;
text-align: center;
font-size: xx-large;
}
#content {
width: 78%;
float: left;
font-size: medium;
}
#content img {
max-height: 400px;
max-width: 98%;
}
#sidebar {
width: 18%;
float: right;
font-size: small;
}
#sidebar h1 {
color: lime;
background: black;
}
#sidebar h2 {
color: lime;
background: black;
}
#footer {
width: 95%;
text-align: center;
clear: both;
font-size: smaller;
}

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2013-2018 Emanuil Rusev, erusev.com
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

File diff suppressed because it is too large Load Diff

86
parsedown-1.7.3/README.md Normal file
View File

@ -0,0 +1,86 @@
> I also make [Caret](https://caret.io?ref=parsedown) - a Markdown editor for Mac and PC.
## Parsedown
[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown)
<!--[![Total Downloads](http://img.shields.io/packagist/dt/erusev/parsedown.svg?style=flat-square)](https://packagist.org/packages/erusev/parsedown)-->
Better Markdown Parser in PHP
[Demo](http://parsedown.org/demo) |
[Benchmarks](http://parsedown.org/speed) |
[Tests](http://parsedown.org/tests/) |
[Documentation](https://github.com/erusev/parsedown/wiki/)
### Features
* One File
* No Dependencies
* Super Fast
* Extensible
* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown)
* Tested in 5.3 to 7.1 and in HHVM
* [Markdown Extra extension](https://github.com/erusev/parsedown-extra)
### Installation
Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown).
### Example
``` php
$Parsedown = new Parsedown();
echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
```
More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).
### Security
Parsedown is capable of escaping user-input within the HTML that it generates. Additionally Parsedown will apply sanitisation to additional scripting vectors (such as scripting link destinations) that are introduced by the markdown syntax itself.
To tell Parsedown that it is processing untrusted user-input, use the following:
```php
$parsedown = new Parsedown;
$parsedown->setSafeMode(true);
```
If instead, you wish to allow HTML within untrusted user-input, but still want output to be free from XSS it is recommended that you make use of a HTML sanitiser that allows HTML tags to be whitelisted, like [HTML Purifier](http://htmlpurifier.org/).
In both cases you should strongly consider employing defence-in-depth measures, like [deploying a Content-Security-Policy](https://scotthelme.co.uk/content-security-policy-an-introduction/) (a browser security feature) so that your page is likely to be safe even if an attacker finds a vulnerability in one of the first lines of defence above.
#### Security of Parsedown Extensions
Safe mode does not necessarily yield safe results when using extensions to Parsedown. Extensions should be evaluated on their own to determine their specific safety against XSS.
### Escaping HTML
> ⚠️  **WARNING:** This method isn't safe from XSS!
If you wish to escape HTML **in trusted input**, you can use the following:
```php
$parsedown = new Parsedown;
$parsedown->setMarkupEscaped(true);
```
Beware that this still allows users to insert unsafe scripting vectors, such as links like `[xss](javascript:alert%281%29)`.
### Questions
**How does Parsedown work?**
It tries to read Markdown like a human. First, it looks at the lines. Its interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line starts with a `-` then perhaps it belongs to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines).
We call this approach "line based". We believe that Parsedown is the first Markdown parser to use it. Since the release of Parsedown, other developers have used the same approach to develop other Markdown parsers in PHP and in other languages.
**Is it compliant with CommonMark?**
It passes most of the CommonMark tests. Most of the tests that don't pass deal with cases that are quite uncommon. Still, as CommonMark matures, compliance should improve.
**Who uses it?**
[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents).
**How can I help?**
Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).

View File

@ -0,0 +1,33 @@
{
"name": "erusev/parsedown",
"description": "Parser for Markdown.",
"keywords": ["markdown", "parser"],
"homepage": "http://parsedown.org",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
}
],
"require": {
"php": ">=5.3.0",
"ext-mbstring": "*"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
},
"autoload": {
"psr-0": {"Parsedown": ""}
},
"autoload-dev": {
"psr-0": {
"TestParsedown": "test/",
"ParsedownTest": "test/",
"CommonMarkTest": "test/",
"CommonMarkTestWeak": "test/"
}
}
}

91
wiki.php Normal file
View File

@ -0,0 +1,91 @@
<?php
/*
This code is Copyright(c) 2019 by ubergeek under the GPL 3 or later.
Parsedown is licensed under the MIT license.
*/
include('config.php');
include('parsedown-1.7.3/Parsedown.php');
$page = isset($_GET['page']) ? $_GET['page'] : 'main';
// Sanitize page request so we don't allow to read EVERY markdown file
// for example ../../../home/foobar/mysecretdocument
if (strpos($page, "../") !== false) {
header('HTTP/1.0 403 Forbidden');
exit();
}
$content_file = "articles/$page.md";
// When you need some debugging
//echo "<br>page: $page";
//echo "<br>content file: $content_file";
$Parsedown = new Parsedown();
$Parsedown->setSafeMode(true);
if(isset($_GET['style']))
$site_style = $_GET['style'];
else
$site_style="site";
$header = file_get_contents("includes/header.md");
$sidebar = file_get_contents("includes/sidebar.md");
$content = file_exists($content_file) ? file_get_contents($content_file) : str_replace('$page', "$page", file_get_contents("includes/404.md"));
$footer = file_get_contents("includes/footer.md");
// TODO: Stylesheet URL assumes wiki is not operate in subfolder
print "<!DOCTYPE html>
<html lang='en'>
<head>
<title>$site_name - $page</title>
<link rel='stylesheet' type='text/css' href='/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 $Parsedown->text($content);
print " </div>
<!-- End Body -->
</div>
<!-- Begin Footer -->
<div id='footer'>
<hr>
";
echo $Parsedown->text($footer);
print " </div>
<!-- End Footer -->
</body>
</html>";
?>