* General Note on Software If you don't see something mentioned here or on the system itself that you would find useful, make a request in the REQUESTS board (run 'bbs' and type '?' or 'h' for help) if you would like some software installed, ideally available as a binary FreeBSD package, but we can install any useful software that you would like, as long as it is not too resource-intensive. * Disk Usage There is a soft-quota of 500MB, we trust you to not go over that, but if you think you might have to, contact slugmax and give him the details. * Shells Here is the current list taken from /etc/shells, there are man pages for all of these: /bin/sh /bin/csh /bin/tcsh /usr/local/bin/ksh /usr/local/bin/osh /usr/local/bin/sh6 /usr/local/bin/zsh /usr/local/bin/ksh93 /usr/local/bin/oksh /usr/local/bin/mksh /usr/local/bin/fish /usr/local/bin/bash * Unused Accounts and Account Deletion You may, at any time, request that your Republic user account and all files stored in your home directory, including your gopherhole, be permanently deleted. Such requests will be granted without question. This promise is not a gimmick to tie into the Schismatrix theme. It is a recognition that the ability to delete your accounts from online services is an important part of self-ownership of your digital identity. This is genuinely an important freedom and one which many modern online services do not offer, or deliberately make very difficult to access. To claim your right, create a file with the filename i-claim-my-civil-right in the top level of your home directory, with the content "I claim my civil right.", and email root@republic.circumlunar.space or slugmax@tilde.team. If you claim your civil right, your account will not be "deactivated" with a two week cool-down period during which you can change your mind. It will be totally and permanently removed as soon as possible. Do not claim your civil right lightly. Your account will also be deleted if one calendar month passes after the creation of your account and your gopherspace is either still empty, or contains only an absolute minimum of content, e.g. a "hello world" note saying that the space is under construction. As soon as one item of genuine content is uploaded, your account is safe from this consideration and can be updated very infrequently or abandoned without risk of deletion. * Lost SSH Keys If you lose or otherwise dispose of your private SSH key used for access to republic, and are unable to login as a result, you can request access under a new public key. Note, however, that the request must come from the same email you sent your new user request from. That is the only way to identify you under a pseudonymous service such as ours. For security reasons, any request for account access from an unrecognized email will be ignored. * Networking The SSH daemon runs on ports 22 and 993, the latter for convenience for users on restrictive networks. Port, X11 and agent forwarding, along with password authentication, are disabled. Outbound network traffic is limited to what would be useful for a unix shell user - ssh, http, https, gopher, finger, and domain services. If you want access to another service, make a request on the REQUESTS board in bbs. * IRC IRC is allowed to the localhost only - you can connect to an IRC daemon there that is a part of the circulunar universe, and chat with users on other servers. 'irssi' is available and can be started like this: irssi -c localhost -h republic.circumlunar.space You can then '/join #zaibatsu'. '/part' leaves a channel, and '/quit' quits the app itself. Odlli is a minimal IRC client that will auto-join you with the #sundogs channel on the circumlunar IRC network. It is designed for simplicity, type !help for in-program help. * Shell-Based BBS The circumlunar colonies share a BBS database, accessible via the command 'bbs' at the shell. Type 'h' to see a help screen. The bbs client honors your EDITOR environment variable when you reply to or create a post, but defaults to nvi if that is not set. The bbs data is synced with the Zaibatsu's every 15 minutes. Introduce yourself in the INTRODUCTIONS board! * Shell-Based Group Chat - schat As an alternative to IRC, there is a simple shell script available under the name 'schat'. All text entered is appended to a common file, which is displayed again to all participants whenever they enter a new line themselves or a command. Commands are of the structure '.X' i.e a dot and a letter. The command '.h' (as well as any unknown command) will display a short help. Please note: You will not see new entries from other participants before entering a line (or simply hitting RETURN) by yourself, except if you issue the '.f' command. (This helps keeping resource consumption small.) And because of the login/out messages and entered lines being stored in two independent files, there might be at times slight errors in the chronology. However, this does not affect the correct order of entered lines. Remember that the common schat file is world readable, so anybody can read it, grep it, whatever at any time, without ever even running 'schat' itself. It is a very public venue, so act accordingly. If you want to communicate more privately with somebody, use email or start a new IRC channel. * Linkulator * Run 'linkulator' to particpate (post, search, browse) in the repbublic's commandline link aggregator, written by zaibatsu user cmccabe. * Email SMTP is allowed to this server and out to the Zaibatsu presently, as well as some of the other pubnix systems' domain names (presently sdf.org, tx0.org, freeshell.org, grex.org, tilde.team, rawtext.club, typed-hole.org, and cosmic.voyage), allowing each user to send and receive email to and from users on those systems. The email domain locally is 'hostname.circumlunar.space', where hostname is typically 'republic' for this server or 'zaibatsu', although for local-only mail you can use a username with no domain specified, and it will deliver (if possible) to the specified user on this server. Note email is configured with a strict whitelist, so you won't be able to send or receive email to or from any internet domains not on the list above. If you would like a pubnix domain added to the whitelist, you can make a request on the bbs in the REQUESTS board. There are several email clients available, including mutt, alpine, and mail. * Encryption Openssl, gpg and gpg2 are installed for use in email clients or for standalone file encryption. Vim and GNU/Emacs provide transparent interfaces to encrypt/decrypt files on the fly. Communication with the Zaibatsu over SMTP and IRC is encrypted via TLS. * Languages Available are Perl 5.32, sbcl, Lua 5.2.4, Python 2.7 and 3.6, Go 1.15.5, gcc 9.4, and clang 3.5. * Databases Sqlite v3 * Editors GNU Emacs, vim, nano, ed, joe, vi (nvi), kak * Version Control Git, rcs * Games Classic BSD console games and also Infocom games (look in /usr/local/share/infocom/) are available. Huntd is configured in inetd.conf. adventure arithmetic atc backgammon battlestar bs-game canfield cfscores colorbars cribbage fish-game hack hals_end hangman hunt huntd larn mille phantasia pig quiz rain robots rogue sail snake snscore teachgammon trek wargames worm worms wump The frotz interpreter can run the infocom games: frotz -w 80 /usr/local/share/infocom/SORCERER.DAT * Gemini Gemini hosting is available; the Republic runs Solderpunk's molly server. Gemini content can be placed in ~/gemini, for now contact slugmax via email or in the REQUESTS bbs board to finish the setup and make your content visible. * Gopher All users are assigned publically accessible gopherspace on the Republic. The gopher server used is Gophernicus, by Kim Holviala (https://github.com/kimholviala/gophernicus). Documentation can be read at /usr/share/doc/gophernicus, or point your gopher client to gopher://republic.circumlunar.space/1/docs to read the Gophernicus documents via gopher. Your personal gopher content should exist in a directory with the name "gopher" in your home directory. Gophernicus is very strict about permissions and all your gopher content must be world readable for it to show up. Your personal gopher URL is gopher://republic.circumlunar.space/1/~username, and you can also shorten the hostname to 'r.circumlunar.space'. Gophernicus supports CGI applications. Files to be executed as CGI must be placed in a "cgi-bin" subdirectory of your main gopher directory. In order to view your own gopherspace and confirm that things look the way you would like, you will need a gopher client. Modern web browsers no longer support gopher natively, but you may be able to find an extension/plugin/add-on for your browser of choice (e.g. OverbiteWX for Firefox). Otherwise, some dedicated gopher clients you may like to try are: Text-based clients ==================== + cgo (https://github.com/kieselsteini/cgo) + bombadillo (by republic user sloum) + gopher (the original University of Minnesota gopher client) + elinks + lynx (a very popular choice) + sacc (gopher://bitreich.org:70/1/scm/sacc, from the Bitreich project) + VF-1 (https://github.com/solderpunk/VF-1/, by circumlunar admin Solderpunk) + nago (git://zaibatsu.circumlunar.space/nago, by circumlunar user yargo) Smartphone clients ==================== + Pocket Gopher (Android, available from F-Droid) + Overbite (Android, available from gopher://gopher.floodgap.com/1/overbite/install/android or https://gopher.floodgap.com/overbite/ ) + iGopher (for iPhone) + DiggieDog (for Android) * Gopher Troubleshooting The number one cause of problems when setting up a gopherspace hosted by the Gophernicus software is file permissions. All files and directories in your gopherspace must be world readable, and directories must be world executable ("executability" for directories actually means "listability"). You should also not set your files to be world writable. If you upload your files via sftp with plain "put" commands, the uploaded files with have permissions set by your umask, and you will need to use the "chmod" command to change them. The chmod command built into sftp does not understand symbolic notation like "o+r", so you will need to use the octal notation. A value of 704 for files and 705 for directories is appropriate. You may find it more convenient to use "put -p", which will give the uploaded files the same permissions as the corresponding local files on your machine. * Gopher File Structure The simplest possible structure your gopherspace can have is as a raw pile of directories and files. If you upload your content in this way, Gophernicus will automatically generate gopher menus for you, which will show the file sizes and timestamps and your content. This will provide a user experience pretty similar to browsing a public FTP server. If you want to use your gopherspace to share a large collection of files (e.g. old zines, source code files, photographs you've taken, etc.) then this is probably an ideal approach. Note that if you use this approach, Gophernicus will list your files in alphabetical order when it generates the menu for you. Sometimes this might be just fine, but if you are using a raw file structure for a phlog (the gopher equivalent of a blog), you might prefer that they are listed in chronological order so that your latest content is always at the top. You might like to change to using gophermaps (see below) to exercise more control over your menus. If you would like to stick to a raw file approach, one common solution is to prefix your filenames with a three character code which encodes the date and month of publication in such a way that alphabetical sorting corresponds to chronological sorting. For more details, see: gopher://circumlunar.space:70/0/~tfurrows/phlog/stasis/0_filenames.txt * Gophermaps If you want more control over the appearance of your gopherspace than the automatically generated menus provide, you can achieve this using special files called "gophermaps". Basically, before automatically generating a menu for any directory in your gopherspace, Gophernicus will check for a file named "gophermap". If one exists, the contents of that file will be used to generate the menu instead. You can think of this very roughly as like the gopher equivalent of an index.html file for a website. If it is there, it will be displayed, and if not, the web server will generate its own directory listing. Gophermap files are line-based. Each line corresponds to one item in the gopher menu which will be generated. The format of a menu line is: If you want to link to content on another server other than the Republic, you must use the HOSTNAME and PORT fields to specify the destination (the standard gopher port is 70), but if you are linking to content stored at the Republic (such as somewhere else in your own gopherhole), you can end the line after the ITEM SELECTOR and Gophernicus will automatically set the hostname and port for you. This will make it easier to move your gophermap files to a different server in the future if you choose to do so. The ITEM NAME is what will actually be visible to the user in the generated menu, while the ITEM SELECTOR is the path to the content. To make another web analogy, think of it like this: ITEM NAME Finally, the ITEM TYPE is a single character which tells the client what kind of content this menu item contains. Common item types are: 0 - A plain text file 1 - Another menu h - A HTML file g - A GIF image file I - Some other image file If you would like to intersperse some text in your menu, e.g. to put ASCII art at the top of the page or to break up your menu with section headers, you can begin a line of the gophermap with "i" for "info". Info lines will not be parsed like menu lines, they will just be displayed as-is. Technically, the "i" is not always necessary as Gophernicus will treat any line of a Gophermap which doesn't begin with a valid item type or some other special character as an info line. However, it's not easy to remember all the characters which will trigger parsing as a menu item, so it is a good habit to begin your info lines with "i". Gophernicus supports many special characters in gophermaps for advanced features. Refer to the Gophernicus documentation for details. Below is a basic example of a valid gophermap to get you started, with TABs between selector line elements. Also note the leading 'i' on text lines is not required when using gophernicus, but is with some other gopher servers. i Welcome to my totally awesome i circumlunar.space gopherhole!! i ------------------------------------ i 0All about me about_me.txt IA photo of me my_photo.jpg 1My phlog about gardening phlog 1Some poems I have written poems 1SDF user phlogs phlogs gopher.club 70 This assumes that your ~/gopher directory has files named "about_me.txt" and "my_photo.jpg" and directories named "phlog" and "poems" in it. The final menu item links to a different server. The gophermap should be stored as "~/gopher/gophermap". * Outside Documentation + https://en.wikipedia.org/wiki/Gopher_%28protocol%29 + gopher://sdf.org/1/users/slugmax/gopher_blogging_utilities + gopher://sdf.org/1/users/slugmax/using_and_searching_gopher + gopher://sdf.org:70/0/users/dbucklin/posts/how_gopher.txt + gopher://grex.org:70/0/~papa/README.1st + gopher://grex.org:70/0/~papa/README.2nd + gopher://grex.org:70/0/~papa/gmap.txt + gopher://bitreich.org:70/1/tutorials + gopher://zaibatsu.circumlunar.space:70/0/~visiblink/misc/phlogguide * Webspace Static webspace is now available to all users, to set it up do the following: mkdir ~/html && chmod 701 ~/html Then you can edit ~/html/index.html and it will be displayed at: https://republic.circumlunar.space/~username Where 'username' is, of course, your username. Just make sure index.html is world-readable. See the 'bbs' ANNOUNCE board or the following for more info: gopher://republic.circumlunar.space/0/~slugmax/phlog/2019-06-02-republic-updates-web-space gopher://zaibatsu.circumlunar.space/0/~solderpunk/phlog/circumlunar-updates-ii.txt https://tildegit.org/solderpunk/shizaru/ $Id: orientation.txt,v 1.9 2020/12/04 15:34:40 slugmax Exp $