- core utils
These are a set of utilities which 1436chan uses to create
dynamic menu content. They can be downloaded at:
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
1. Extract chan.tar.gz to the folder that will be the root of
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).
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:
This is the hostname of the Gopher server that the board is
This is the port of the Gopher server that the board is
This is the root selector of your board.
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).
The maximum characters allowed in a thread
title. Additional characters are truncated.
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.
The maximum characters allowed in a post. Additional
characters are truncated.
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.
The format for displaying the date on posts and 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.
Up to LAST_POSTS posts are shown under each thread on
the main menu.
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.
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!
Maximum dimensions of an uploaded image (WxH). Leave blank
Directory where extra data will be stored. Should be a
directory outside the gopher server root but with the same
permissions as CHAN_ROOT.
Number of seconds within which a user may delete their own
post. Set to 0 to disable this feature.
Maximum number of feed items in the RSS feed. Set to 0 to
disable the RSS feed entirely.
Number of seconds of cooldown time between posting/creating
new threads. Set to 0 to disable this feature.
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.
Either 'y' or 'n'. If 'y', posts are given a post ID based
on the IP address of the poster.
The Administrator utility provides a simple menu for performing
common tasks. To use it, run:
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:
Otherwise they are interpreted as Gopher links, e.g.:
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
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 <...>.
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.
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
After modifying permissions, run: