about summary refs log tree commit diff stats
path: root/pages
diff options
context:
space:
mode:
authorahriman <ahriman@falte.red>2019-09-02 17:42:06 -0400
committerahriman <ahriman@falte.red>2019-09-02 17:42:06 -0400
commit0381bce35845cb387fcd7ce124da60b9c45c611a (patch)
treea28be6c57f92aa6b183f5ccc453cddfecea3c833 /pages
downloadwiki-0381bce35845cb387fcd7ce124da60b9c45c611a.tar.gz
tildewiki
Diffstat (limited to 'pages')
-rw-r--r--pages/bchs.md67
-rw-r--r--pages/dcss.md43
-rw-r--r--pages/finger.md63
-rw-r--r--pages/gopher.md81
-rw-r--r--pages/gpgssh.md76
-rw-r--r--pages/irc.md72
-rw-r--r--pages/pass.md112
-rw-r--r--pages/unixtips.md36
8 files changed, 550 insertions, 0 deletions
diff --git a/pages/bchs.md b/pages/bchs.md
new file mode 100644
index 0000000..4d68eac
--- /dev/null
+++ b/pages/bchs.md
@@ -0,0 +1,67 @@
+<!--
+author: ahriman
+title: BCHS Guide
+description: Introduction to the BCHS stack for web development
+date: 2019-04-24
+-->
+
+# BCHS Guide
+
+This will be a quick-and-dirty guide to getting started with the BCHS
+stack. More information can be found at:
+
+* [Learn BCHS](https://learnbchs.org)
+* [pledge(2)](http://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/pledge.2)
+* [unveil(2)](http://man.openbsd.org/unveil.2)
+* [kcgi](https://kristaps.bsd.lv/kcgi/)
+* [ksql](https://kristaps.bsd.lv/ksql/)
+* [kwebapp](https://kristaps.bsd.lv/kwebapp)
+
+tilde.institute is set up to process all files with the `.cgi` extension
+via `slowcgi(8)`. This allows for a multitude of possibilities -
+any compiled language can be used to develop web applications on an
+OpenBSD server. It's advised to use `C` because of the `pledge(2)` and
+`unveil(2)` system calls available, which allow for restricting privileges
+and restricted filesystem access, respectively.
+
+Keep in mind that if you don't use the previously listed
+`kcgi`/`ksql`/`kwebapp` libraries, you will need to work with HTTP's
+eccentricities manually. For an example, [here's the Hello World
+code](https://tilde.institute/helloworld.c) from the LearnBCHS
+site. And [here it is running](https://tilde.institute/helloworld.cgi)
+as compiled CGI here at tilde.institute.
+
+Once you've written your software to be served via CGI, be sure to
+statically link the executables. Sure, there's a larger file size, but
+the benefits outweigh that in this case - there's no relying on what
+I may or may not have installed on tilde.institute. For example:
+
+```
+$ cc -static -g -W -Wall -o app.cgi app.c
+```
+
+When you've completed compilation, make sure to set permissions properly
+(755) and move it to the public folder in your home directory. `httpd(8)`
+is set to use `index.html` as the index file, however this can be changed
+to `index.cgi` or what-have-you by contacting the admins.
+
+~institute user `xvetrd` has written a more detailed example on
+`kcgi` than is provided on the library's site. It includes an
+example `makefile` as well. The KCGI Starter archive is [available
+here](https://tilde.institute/kcgi-starter.tar.gz). Simply 
+```
+curl -O https://tilde.institute/kcgi-starter.tar.gz
+``` 
+it to your home directory here on ~institute, 
+```
+$ tar xzf kcgi-starter.tar.gz
+$ cd kcgi-starter
+$ make
+$ make install
+```
+to test the compilation. It installs to `~/public_html` with the proper
+ownership and permissions. View the `index.c` source and the `makefile`
+to see what goes on under the hood! Feel free to adapt it your own projects!
+
+[back](/)
+
diff --git a/pages/dcss.md b/pages/dcss.md
new file mode 100644
index 0000000..c740768
--- /dev/null
+++ b/pages/dcss.md
@@ -0,0 +1,43 @@
+<!--
+title: Dungeon Crawl Stone Soup
+author: ahriman
+description: Connecting to the Tildeverse DCSS instance
+-->
+
+# Dungeon Crawl Stone Soup
+
+`dcss` is a fun roguelike game that is now available on a tildeverse server
+for your enjoyment. There are two ways to play: via `WebTiles` for simple
+2d graphics and via `ssh` for a more traditional ascii interface.
+
+* CTVO: [https://crawl.tildeverse.org](https://crawl.tildeverse.org)
+
+If you already have an account on tilde.institute, you can play via the
+ascii interface by issuing the command `dcss`. This will automatically
+connect to the server and present the login/registration menu.
+
+Some users prefer graphics. For `WebTiles`, it will be necessary to go to
+[https://crawl.tildeverse.org](https://crawl.tildeverse.org). Click `PLAY`
+to open the `WebTiles` interface.
+
+## Recorded Games
+
+All games on CTVO (the tildeverse crawl server) are recorded for later
+playback. In order to review a previously recorded game, navigate to [the
+ttyrec directory](https://crawl.tildeverse.org/ttyrec), select a username,
+and download the `ttyrec` file. You'll need to have the `ttyrec` package
+installed in order to review them. Issue: `ttyplay file.ttyrec` and watch
+as your terminal automagically transforms into a recorded DCSS game.
+
+`ttyplay` is installed on tilde.institute, so feel free to download a
+game to your home directory and watch it from there.
+
+## Morgue Files
+
+Want to see the run-down of a game? Check out the `morgue`
+file for it. They're sorted into username directories at:
+[https://crawl.tildeverse.org/morgue](https://crawl.tildeverse.org/morgue).
+Each `morgue` file contains information such as how you died, your stats,
+an account of monsters vanquished, among other stuff.
+
+[back](/)
diff --git a/pages/finger.md b/pages/finger.md
new file mode 100644
index 0000000..e1251bb
--- /dev/null
+++ b/pages/finger.md
@@ -0,0 +1,63 @@
+<!--
+title: Finger
+author: ahriman
+description: Getting started with fingerd
+-->
+
+# Finger
+
+The finger protocol was created way back in 1977. its purpose was to
+display information about the queried user of a system, or all the users
+of a system.
+
+It fell out of use in the 1990s due to various security concerns. the
+old finger daemons were buggy and easily exploited, while the
+information garnered from a query could be used for social engineering
+attacks. nowadays, the finger daemons have been refined and are no longer
+so vulnerable.
+
+In the post-Facebook world, new types of social networks are
+popping up. the latest in this movement is a resurgence of the finger
+protocol. what follows is a rough guide for getting yourself up to speed
+with finger on tilde.institute.
+
+## Querying
+
+The standard query for finger is simply
+
+```
+finger user@host
+```
+
+which displays login name, home directory, shell, real name, current login
+time, idle time, whether or not the user has mail, and the contents of
+the user's `~/.plan` file. Here is an example of the output:
+
+```
+Login: username                          Name: Bob Bobson XXII
+Directory: /home/username                Shell: /bin/bash
+On since Wed Jan  2 04:04 (EST) on pts/94 from 168.297.83.21 via mosh [6420]
+    8 minutes 26 seconds idle
+Last login Wed Jan  2 04:33 (EST) on pts/91 from 168.297.83.21
+No mail.
+Plan: hey hey hey everybody!
+```
+
+## .plan
+
+The `~/.plan` file displayed at the end of the finger query response
+allows for some customization. You can put literally any text you want
+there. Status updates, summaries, etc. This little file allows us to use
+finger as a rudimentary social network.
+
+For example, say you want to use it as a personal summary, like having
+a blurb about what you're working on. Place the statement into `~/.plan`
+and you're ready to go!
+
+For a more traditional social network style format, put dated and timed
+status updates as if you're tooting on a mastodon instance. The sky's
+the limit! Well, actually, text is the limit. But you get the idea. Right?
+
+Hope to see you on finger soon!
+
+[back](/)
diff --git a/pages/gopher.md b/pages/gopher.md
new file mode 100644
index 0000000..3815505
--- /dev/null
+++ b/pages/gopher.md
@@ -0,0 +1,81 @@
+<!--
+title: Getting Started With Gopher
+description: Using burrow to manage your gopher presence
+author: tomasino
+-->
+
+# Getting Started With Gopher
+
+# Using `burrow`
+
+To create a gopher hole on tilde.institute, a user can easily get started
+by doing the following:
+
+### Create the gopher directory 
+``` 
+$ mkdir public_gopher 
+``` 
+### Create a root gophermap 
+``` 
+$ burrow gophermap 
+``` 
+Gophernicus will interpret any text you add here as information lines unless they begin with one
+of gophernicus' special characters or contains a tab. As a general rule,
+don't use tabs unless you're intentionally linking something.
+
+Add a cool header to the file (check out `figlet`!), then somewhere
+near the top, paste: 
+``` 
+==== Last Updated: February 19th, 2019 ====
+``` 
+The date doesn't matter, really. Whenever you "phlog" with `burrow`
+it will update the date for you. How sweet is that?
+
+Now lets add a link to your phlog that you're totally going to have:
+
+``` 
+1phlog[tab]phlog 
+```
+
+That `[tab]` should be a literal tab, though. Make sure your editor
+doesn't convert it to spaces. Now, save and quit the editor.
+
+### Create a phlog directory 
+``` 
+$ mkdir ~/public_gopher/phlog 
+``` 
+### Now create a new phlog with burrow 
+``` 
+$ burrow phlog 
+```
+
+You'll be prompted for a title. If you hit enter and give no title then
+burrow will abort.
+
+Once you hit enter after giving your title a temporary file will open in
+your default `$EDITOR`. Don't like that editor? Be sure to change your
+environment var!
+
+If you quit your phlog file without saving the post is aborted. If you save
+and quit, it will create a new phlog entry, add it to your phlog gophermap
+that now exists, and update the date on your root gophermap. That's it!
+
+You have an RSS file sitting in the root of your gopher hole at
+`rss.xml`. It will automatically generate when you phlog, like a
+winner. You can edit your root `gophermap` at any time by using burrow's
+`gophermap` action. If you create other folders and gophermaps in the
+future you can use burrow's gophermap function to target them. For
+instance, to open the phlog listings you would: 
+``` 
+$ burrow gophermap /phlog 
+``` 
+Editing gophermaps with `burrow` will ensure they're always
+saved and formatted properly! Any other files are just text, so open them
+directly with your editor of choice.
+
+That's it! Happy gophering.
+
+~tomasino
+
+[back](/)
+
diff --git a/pages/gpgssh.md b/pages/gpgssh.md
new file mode 100644
index 0000000..96ab7cb
--- /dev/null
+++ b/pages/gpgssh.md
@@ -0,0 +1,76 @@
+<!--
+title: GnuPG for SSH Authentication
+Description: Using gpg-agent as an alternative to ssh-agent
+author: ahriman
+-->
+
+# Using GPG for SSH Authentication
+
+It's a fairly simply process to have gpg-agent handle your SSH
+authentication. To start off, you'll need to have a private GnuPG key
+generated with an appropriate subkey for authentication. Once that's
+taken care of, open up `~/.gnupg/gpg-agent.conf`
+
+```
+$ cat ~/.gnupg/gpg-agent.conf
+    enable-ssh-support
+    default-cache-ttl 60
+    max-cache-ttl 120
+```
+
+Now you'll need to append the following to `~/.bashrc`, or the appropriate
+rc file for your shell
+
+```
+$ cat ~/.bashrc
+    export GPG_TTY="$(tty)"
+    export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+    gpg-connect-agent updatestartuptty /bye > /dev/null
+```
+
+Once that's done, you'll need to let `gpg-agent` know which GnuPG subkey
+to use for SSH authentication. Run the following and copy the keygrip
+associated with the subkey you've generated specifically for authentication.
+Don't use *my* keygrip, however. The output here is just for an example. `GnuPG`
+computes the keygrips from the public key, so nothing here is sensitive
+or private.
+
+```
+$ gpg --with-keygrip -k ben@gbmor.dev
+    pub   rsa4096/0xEAB272409CD12FF0 2018-11-25 [SC]
+        Key fingerprint = 291A AFF7 A291 7DAB 0E01  6B9C EAB2 7240 9CD1 2FF0
+        Keygrip = DE06FAA273017BBD8778F94639611CEF53AB9EBC
+    uid                   [ultimate] Ben Morrison <ben@gbmor.dev>
+    sub   rsa4096/0xF9C3B650612249D9 2018-11-25 [E]
+        Keygrip = 751ADAC109736316B6ABEBB3F2BDF4612F8A630C
+    sub   rsa4096/0x4969E5731CFEB507 2018-11-25 [A]
+        Keygrip = 44D1BDC0C1931E2E018E7CE49CDE14BFB4EA11E3
+    sub   rsa4096/0x8F192E4720BB0DAC 2018-11-25 [S]
+        Keygrip = 240966CBF2791D8C34D0DA646925435FED49F9BF
+```
+
+Now, open `~/.gnupg/sshcontrol` and paste the keygrip into that file.
+It's the keygrip just below the key marked `[A]` for authentication.
+Verify that the correct keygrip has been selected by running these two
+and comparing the output:
+```
+$ ssh-add -L
+    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCakJKfXUuX/ZDxJQySdxCeQfxTu0g
+    KPCESGDyadvFAPDxtcTfOrxfqJLZx8CodkC7hzHT/QEy/xMgN18Q== cardno:000609861127
+```
+```
+$ gpg --export-ssh-key <keyid>
+    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCakJKfXUuX/ZDxJQySdxCeQfxTu0g
+    KPCESGDyadvFAPDxtcTfOrxfqJLZx8CodkC7hzHT/QEy/xMgN18Q== openpgp:0x1CFEB507
+```
+The `ssh` output should match the `gpg` output (except maybe the little 
+trailing comment, like here). Also, I've removed most of the public key I'm using as
+an example for brevity's sake. It should be quite a bit longer than this.
+If `ssh` is correct, kill off `gpg-agent`
+```
+$ pkill gpg-agent
+```
+
+Then open up a new terminal and attempt to connect to a server!
+
+[back](/)
diff --git a/pages/irc.md b/pages/irc.md
new file mode 100644
index 0000000..1c45daf
--- /dev/null
+++ b/pages/irc.md
@@ -0,0 +1,72 @@
+<!--
+title: IRC
+description: Introduction to our IRC network
+author: ahriman
+-->
+
+# IRC
+
+To connect to the [tildeverse IRC network](https://tilde.chat) and begin
+chatting while logged on to tilde.institute, simply use the command
+`chat`! If you prefer to use a different IRC client than the default,
+such as `irssi`, the following server information will apply:
+
+* institute.tilde.chat
+* Port 6697
+* TLS / SSL
+
+Don't forget to `/join #institute` and `/join #meta`
+
+## Channels
+
+There are quite a few channels on tilde.chat, however some have more
+activity than others. Here's a few channels that you may be interested in.
+
+* `#meta` - the general chat channel for all of the [tildeverse](https://tildeverse.org)
+* `#institute`- for tilde.institute-related discussion
+* `#tilderadio` - the channel for the [tildeverse radio station](https://tilderadio.org)
+* `#cosmic` - discussions pertaining to [cosmic voyage](https://cosmic.voyage), a
+`tilde` focusing on collaborative science fiction writing
+* `#tildetel` - the channel for [tilde.tel](https://tilde.tel), the neighborhood SIP server
+* `#security` - computer, software, and network security discussions
+* `#uucp` - the [dataforge](https://uucp.dataforge.tk) UUCP-over-SSH project
+* `#hamradio` - the channel for hams!
+* `#cervezafria` - A place for our Spanish-speaking friends to relax
+
+You can check the currently available channels any time by issuing `/list`
+in your IRC client.
+
+## Connecting Externally
+
+Want to hang out on the tildeverse when you aren't connected to
+tilde.institute? No problem! Just use these settings in your favorite
+IRC client:
+
+* irc.tilde.chat
+* Port 6697
+* TLS/SSL is required
+
+The DNS round robin will connect you to one of the nodes in the network.
+
+If you're using `weechat` the following will connect you:
+
+```
+/server add tilde irc.tilde.chat/6697 -ssl -autoconnect
+/connect tilde
+```
+
+And if you're using `irssi`
+
+```
+/connect -tls -tls_verify irc.tilde.chat 6697
+```
+
+The tildeverse IRC network also runs an instance of `The Lounge`, a
+web-based IRC client that allows you to stay connected even when you're
+away. It's available at:
+
+* [https://web.tilde.chat](https://web.tilde.chat)
+
+Join us on the tildeverse IRC network and socialize with other tilde users!
+
+[back](/)
diff --git a/pages/pass.md b/pages/pass.md
new file mode 100644
index 0000000..2259f9e
--- /dev/null
+++ b/pages/pass.md
@@ -0,0 +1,112 @@
+<!--
+title: pass, the CLI Password Manager
+author: erxeto
+description: Usage guide for pass
+-->
+
+# pass, the CLI Password Manager
+
+`pass` is a command line utility to manage your passwords.
+
+It creates a simple file/folder structure under your `$PASSWORD_STORE_DIR`
+(by default `~/.password-store`) where every file is encrypted with your
+gpg key.
+
+You can organize that hierarchy as you see fit. For instance something like
+`sites/tilde.news/myusername` is a common way of doing it.
+
+Those files are not limited to contain simply a password, they can contain
+anything. But is recommended that the password goes alone in the first
+line, so you can benefit from the `-c` option which copies that to the
+clipboard directly.
+
+There is `bash`, `zsh` and `fish` command line completion available and
+all can be tracked using `git`. So it's really convenient.
+
+## Setup
+
+This is simple, just one command (assuming you have your GnuPG key
+ready). GPG-ID is the hex id of your key.
+
+```
+$ pass init GPG-ID
+    mkdir: created directory ‘/home/user/.password-store’
+    Password store initialized for GPG-ID
+```
+
+## Basic Usage
+
+List all passwords "tree" style
+
+```
+$ pass Password Store
+├── sites
+│   ├── tilde.zone
+│   │   ├── myUserName
+│   │   ├── secondAccount ...
+```
+
+Find a password
+
+```
+$ pass find tilde.zone
+Search Terms: tilde.zone
+└── sites
+    └── tilde.zone
+        └── myUserName@tilde.zone
+```
+
+See the content of a file
+
+```
+$ pass email/tilde.institute/myAccount
+    supersecret
+```
+
+Copy the first line to the clipboard. Clear time can be configured with
+`$PASSWORD_STORE_CLIP_TIME`
+
+```
+$ pass -c email/tilde.institute/myAccount
+    Copied email/tilde.institute/myAccount to clipboard.
+    Will clear in 45 seconds.
+```
+
+Insert a new password. It can be multiline with `-m`. Remember to put the
+password on the first line if you want to use the clipboard function 
+
+```
+$ pass insert sites/foo.com/blah
+    Enter password for sites/foo.com/blah:
+```
+
+Generate a 32 chars random password and store it. You can define the
+default length with `$PASSWORD_STORE_GENERATED_LENGTH`. With `-n` the
+password will not include symbols, but alphanumeric characters only. With
+`-c` it gets copied to the clipboard as usual.
+```
+$ pass generate sites/foo.com/abcd 32
+    The generated password to sites/foo.com/abcd is: 
+        $(-QF&Q=IN2nFBx)
+```
+
+take a look at the `--help` option or the complete documentation on
+their website.
+
+## Changing Keys
+
+If you need to change the key being used for your password files,
+simply navigate to the directory and re-issue `pass init`, but with
+the ID of the new key to be used. Pass will prompt for the old key's
+password, then automatically decrypt all keys and re-encrypt them
+with the new key.
+```
+$ cd ~/.password-store
+$ pass init NEWGPGKEYID
+```
+
+references:
+
+* [pass home page](https://passwordstore.org)
+
+[back](/)
diff --git a/pages/unixtips.md b/pages/unixtips.md
new file mode 100644
index 0000000..675d644
--- /dev/null
+++ b/pages/unixtips.md
@@ -0,0 +1,36 @@
+<!--
+title: UNIX ProTips
+description: Handy tips for budding power users
+author: xvetrd
+-->
+
+# UNIX ProTips
+
+I realized today I wasn't getting mail notifications, and I hadn't set
+them up on this shell. So here are some things I do on my local machine
+that work here:
+
+To get the shell to tell you when you have new mail, after command
+executions, add this to your `.profile` or your `.kshrc` files 
+(or other shell RC file) in your home directory.
+
+```
+export MAILCHECK=0
+```
+
+And, if you want, you can have a persistent notification when
+you have un-incorporated mail, or more specifically, when your
+`/var/mail/<username>` isn't empty.
+
+```
+PS1="\$([-s /var/mail/`whoami` ] && echo '* ')$PS1"
+```
+
+This works in `/bin/ksh`, I can't speak for other shells.
+
+If anybody else has some quick tips they would like to share, I encorage
+them to edit this page.
+
+Happy Unixing!
+
+[back](/)