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. If this is 0, then uploads are disabled. REMOTE_FILE_UPLOAD Allow users to 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. [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. SALT_DIR Directory where salts used to generate tripcodes/post IDs will be stored. Should be a directory outside the gopher server root but with the same permissions as CHAN_ROOT. Multiple boards may point to the same SALT_DIR to synchronize tripcodes/post IDs across boards. ENABLE_POST_IDS Either 'y' or 'n'. If 'y', posts are given a post ID based on the IP address of the poster. 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 where is the thread number (##) of the thread. To delete a post (from the root folder): sh deletepost.sh where 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!fake(NULL)0 Otherwise they are interpreted as Gopher links, e.g.: IA picture/pichostport 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 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