* 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
[email protected] or [email protected].

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:

<ITEM TYPE><ITEM NAME><TAB><ITEM SELECTOR><TAB><HOSTNAME><TAB><PORT>

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:

<a href="ITEM SELECTOR">ITEM NAME</a>

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 $