/ .. / / -> download
DEPENDENCIES
_____________________________________________________________________
    
    - phtools
    - Bash
    - core utils


PHTOOLS
_____________________________________________________________________

    These are a set of utilities which 1436chan uses to create
    dynamic menu content. They can be downloaded at:

    http://github.com/kibook/phtools


NOTES ON GOPHER SERVER COMPATIBILITY
_____________________________________________________________________

    1436chan has so far been developed/tested exclusively on the
    Bucktooth gopher server. As long as a gopher server has support
    for the following features, it should work without issue:

    - Executable scripts ("moles")
    - "gophermap" files which are executable scripts

INSTALLING/UPGRADING
_____________________________________________________________________

    1. Extract chan.tar.gz to the folder that will be the root of
   your chan

    2. Run sh setup.sh

    You can use the -quick flag (sh setup.sh -quick) to skip the
    setup prompts and select all defaults. This is particularly
    useful when upgrading (setup.sh will use your existing
    configuration as the defaults).


SETUP OPTIONS
_____________________________________________________________________

    Running sh setup.sh will prompt you for several options,
    which are stored in params.sh. This section outlines what
    each of these options means:

    SERVER_HOST
    	This is the hostname of the Gopher server that the board is
	running on.

    SERVER_PORT
    	This is the port of the Gopher server that the board is
	running on.

    CHAN_ROOT
        This is the root selector of your board.

    MAX_THREADS
        The maximum number of threads allowed on the board. When
        MAX_THREADS threads already exist and a user creates a
        new thread, the oldest thread (in terms of last updated)
        is either archived or deleted (see ENABLE_ARCHIVE below).

    MAX_TITLELEN
        The maximum characters allowed in a thread
        title. Additional characters are truncated.

    MAX_POSTS
        The maximum number of posts allowed in a thread. When
	MAX_POSTS posts already exist, users will be unable to
	add more posts to a thread. If this is 0, there is no
	limit to the number of posts allowed.

    MAX_POSTLEN
        The maximum characters allowed in a post. Additional
        characters are truncated.

    ENABLE_ARCHIVE
        Either 'y' or 'n'. If 'y', then old threads are preserved
	instead of deleted when MAX_THREADS is reached. They will
	be listed in a special "Archive" section instead of the
	main menu. Otherwise, old threads are permanently deleted.

    DATE_FORMAT
        The format for displaying the date on posts and threads.

    SHOW_EMPTY_THREADS
        Either 'y' or 'n'. If 'y', then threads with 0 posts
        are shown on the main menu of the board. Otherwise, such
        empty threads are hidden until they have at least 1 post.

    LAST_POSTS
        Up to LAST_POSTS posts are shown under each thread on
        the main menu.

    MAX_UPLOAD
        Maximum size of an upload in bytes. If this is > 0 then users
        are allowed to reply with 'uploaded' files. The users must
        actually provide a URL to a file which the server downloads
        to the respective thread directory and then posts a link
        to it in said thread.

	If this is 0, then uploads are disabled.

	[WARNING]: This means your server may connect to and download
	from other arbitrary servers. If you are concerned about
	what connections you make or what kinds of files you are
	storing on your server, disable this!

    MAX_IMAGE
        Maximum dimensions of an uploaded image (WxH). Leave blank
	to disable.

    DATA_DIR
        Directory where extra data will be stored. Should be a
	directory outside the gopher server root but with the same
	permissions as CHAN_ROOT.

    DELETE_TIME
        Number of seconds within which a user may delete their own
	post. Set to 0 to disable this feature.

    MAX_RSS_ITEMS
        Maximum number of feed items in the RSS feed. Set to 0 to
	disable the RSS feed entirely.

    POST_LIMIT
        Number of seconds of cooldown time between posting/creating
        new threads. Set to 0 to disable this feature.


ADMINISTRATOR UTILITY
_____________________________________________________________________

    The Administrator utility provides a simple menu for performing
    common tasks. To use it, run:
    
        sh admin.sh

    and follow the prompts. The individual scripts this menu calls
    are described below as well.


DELETING A THREAD OR POST
_____________________________________________________________________

    To delete a thread (from the root folder):

        sh deletethread.sh <thread>

    where <thread> is the thread number (##) of the thread.

    To delete a post (from the root folder):

       sh deletepost.sh <post>

    where <post> is the post number (#) of the post.


MESSAGE OF THE DAY
_____________________________________________________________________

    Create or edit the 'motd' file to add a message of the day
    to the top of the board.

    Lines in the motd file without TAB characters are turned in
    to inline text (type i), e.g. the line:
        Hello world!
    will become:
        iHello world!<TAB>fake<TAB>(NULL)<TAB>0<CR><LF>
    
    Otherwise they are interpreted as Gopher links, e.g.:
        IA picture<TAB>/pic<TAB>host<TAB>port


STICKIES
_____________________________________________________________________

    Stickies appear at the top of the board (in order of last
    update) marked by the prefix [sticky]. Unlike threads stickies
    will never be deleted or archived unless done so manually by
    an administrator. The administrator can create new stickies or
    turn existing threads in to stickies using the scripts below:

  sh newsticky.sh <title>
      Creates a new open sticky titled <title>. Open stickies
      can still be replied to by anyone.

  sh newrosticky.sh <title>
      Creates a new read-only (closed) sticky titled
      <title>. Closed stickies can only be replied to by an
      administrator.

  sh makesticky.sh <directory>
      Turns an existing thread in to an open sticky.

  sh makerosticky.sh <directory>
      Turns an existing thread in to a closed sticky.

  rm -r sticky_<...>
      Deletes the sticky with id <...>. Alternatively use
      sh deletethread.sh <##> where ## is the thread number
      of the sticky.

  sh post.sh sticky_<...>
      Add a post to the sticky with id <...>.


MULTIPLE BOARDS
_____________________________________________________________________

  There is no built-in feature for this, but if you wish to have
  multiple boards (representing certain subjects for discussion
  perhaps) you may simply create a parent directory for the overall
  "chan" and then perform the INSTALLING/UPGRADING procedure in
  multiple subdirectories, one for each board. Finally, create
  your own gophermap in the parent directory to customise the
  list of boards.


PERMISSIONS
_____________________________________________________________________

  If you need multiple users to have write permissions to your chan
  (for example, when using Bucky running as a different user than the
  one running the Gopher server), it is recommended you create a
  group for these users and give group ownership to the chan
  directory. For example:

      chgrp -R 1436chan /var/gopher/chan

  will set group ownership of your chan folder to '1436chan'. Then:

      usermod -aG server 1436chan
      usermod -aG bucky 1436chan

  now both server (the user running the Gopher server) and bucky can
  write.

  After modifying permissions, run:
      sh setup.sh


/ gopher://khzae.net/0/chan/README