/etc/pygopherd/pygopherd.conf is in pygopherd 2.0.18.3+nmu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 | ######################################################################
# OVERALL SETTINGS FOR PYGOPHERD
######################################################################
[pygopherd]
##################################################
# Operating System / Overall Behavior
##################################################
# Set this to true if you want the server to "detach" itself; that is,
# to go into the background after it starts.
detach = yes
# If you want gopherd to write a PID file, set this to the location
# where you want it. Otherwise, comment out this line.
pidfile = /var/run/pygopherd.pid
##################################################
# Network
##################################################
# The server name to present to the world. If you do not specify it
# here, Pygopherd will attempt to figure it out automatically.
# This is used only to present to clients. It does not control
# where the server listens.
#
# servername = gopher.example.com
# The interface on which to listen. It should be an IP address or
# a domain name. If specified, pygopherd will attempt to listen to
# the specified port on only this interface -- useful if you are doing
# virtual hosting. If not specified, pygopherd will listen on all
# interfaces the OS provides. If in doubt, do not specify this.
#
# interface = gopher.example.com
# What port to listen on. If not running as root, this must be
# greater than 1024.
port = 70
# Type of server to run. Valid options are ForkingTCPServer
# and ThreadingTCPServer. ForkingTCPServer is highly recommended
# for now.
servertype = ForkingTCPServer
# What port to *say* we're listening on. Most people should NOT
# specify this. You might want to if you are using firewalling or
# port forwarding and the port number is different to the world than
# it is locally.
# advertisedport = 70
# Do we timeout on client conections? HIGHLY RECOMMENDED!
# Value is given in seconds. If given, any read or write that makes
# no progress in this number of seconds will time out.
timeout = 60
##################################################
# Data Handling
##################################################
# You can add a header to every directory by creating a
# .abstract file in that directory and filling it with the
# information you like. This will then be rendered as a header
# for the directory. This option controls this feature. Note:
# for this to work, you must define a mapping to ABSTRACT in eaexts
# below.
abstract_headers = on
# Individual files and folders can also have abstracts. You can
# choose to have pygopherd render these abstracts in the directory
# listing itself -- they'll appear beneath the menu name for the file.
# You can set this option to any of three values:
#
# always -- always render these abstracts.
# unsupported -- render them only for protocols that do not natively
# support abstracts. Gopher+ is the only protocol that natively
# supports them currently.
# never -- never render these abstracts.
abstract_entries = always
##################################################
# Error handling
##################################################
# If there is an error, you can decide whether or not to log a full
# backtrace. A full backtrace will usually be needed to find the
# problem.
tracebacks = yes
##################################################
# Security
##################################################
## Whether or not to use chroot.
# This option is only valid if you are running pygopherd as root!
usechroot = yes
## Username and groupname to setreuid/setregid to. Valid only if
## starting pygopherd as root. Comment out if you don't want this
## functionality. NOTE: DO NOT RUN AS ROOT UNLESS YOU USE THESE! BAD BAD BAD!
setuid = gopher
setgid = gopher
##################################################
# Filesystem and MIME
##################################################
# Where the documents are stored.
root = /var/gopher
# Location of a file to use to figure out MIME types. You can
# specify multiple files here -- just separate them with a colon.
# ALL of them that are found will be read.
mimetypes = ./conf/mime.types:/etc/pygopherd/mime.types:/etc/mime.types
# Encodings. You can use the default with the following syntax. The
# mimetypex.encodings_map is {'.Z': 'compress', '.gz': 'gzip'}.
#
# For ease of use in the config file, we specify this as a list of
# tuples. You can convert any hash to a list of tuples by using .items()
# encoding = mimetypes.encodings_map.items()
# You can override the default entirely (ie, to remove those) like this:
# encoding = {'.bz2' : 'bzip2', '.gz' : 'gzip'}.items()
# Or the same thing:
# encoding = [('.bz2', 'bzip2'), ('.gz', 'gzip')]
# Or, you can extend the default like so:
encoding = mimetypes.encodings_map.items() + \
{'.bz2' : 'bzip2',
'.tal': 'tal.TALFileHandler'
}.items()
######################################################################
# Logging
######################################################################
[logger]
# Log method to use. One of:
# syslog -- use Unix syslog facility
# file -- log to standard output (future capability for logging to other
# files)
# none -- no logging
logmethod = syslog
# If you enable syslog, you will need to define these as well:
# priority -- one of the following (listed in order of high to low):
# LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE,
# LOG_INFO, LOG_DEBUG
priority = LOG_INFO
# Facility -- one of the following:
# LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH, LOG_LPR, LOG_NEWS,
# LOG_UUCP, LOG_CRON, LOG_LOCAL0 - LOG_LOCAL7
facility = LOG_LOCAL3
######################################################################
# GOPHER OBJECTS
######################################################################
# Settings for gopher objects
[GopherEntry]
# Use this MIME type if no other type is found.
defaultmimetype = text/plain
# Mapping from MIME types to gopher0 single-character types.
# This is a list of lists. The first entry in each list is a
# regexp to match and the second is the result.
#
# Please have a .* at the end to map all unknown types to a certain
# character. For best results, that character should be nicely
# corresponding to the defaultmimetype.
mapping = [['text/html', 'h'],
['text/.+', '0'],
['application/mac-binhex40', '4'],
['audio/.+', 's'],
['image/gif', 'g'],
['image/.+', 'I'],
['application/gopher-menu', '1'],
['application/gopher\+-menu', '1'],
['multipart/mixed', 'M'],
['application/.+', '9'],
['.*', '0']
]
# This is used by the system to generate Extended Attribute (EA), aka
# Gopher+ blocks for a file. Basically, with the setup shown below,
# you can create "filename.txt.abstract" to define the abstract
# property for filename.txt. If you do that, you will probably want
# to add these properties to ignorepatt below. The list is a mapping
# from an extension to a block name.
#
# Sample for UMN compatibility:
#
eaexts = {'.abstract' : 'ABSTRACT',
'.keywords' : 'KEYWORDS',
'.ask' : 'ASK',
'.3d' : '3D'}
#
# If you want to disable this capability, use this:
#
# eaexts = {}
######################################################################
# HANDLERS
######################################################################
##################################################
# Handler multiplexer
##################################################
[handlers.HandlerMultiplexer]
# A list of the handlers to consider. The handlers
# are tried in the order listed.
#
#
### Suggested settings:
# Note: the UMNDirHandler will handle all directories, even if they
# do not have UMN-specific files, so you do not need to list the
# dirhandler in this case.
#
# Warning: scriptexec and pyg can execute arbitrary code stored in
# your path. Don't enable unless you know what you're doing!
#
# For UMN emulation: (full UMN featureset excluding scriptexec, no others)
#
# handlers = [url.HTMLURLHandler, UMN.UMNDirHandler,
# html.HTMLFileTitleHandler,
# mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
# file.CompressedFileHandler, file.FileHandler]
#
# For Bucktooth emulation: (full Buck featureset excluding scriptexec)
#
#handlers = [gophermap.BuckGophermapHandler, url.HTMLURLHandler,
# file.FileHandler, dir.DirHandler]
#
# For full Pygopherd featureset excluding scripts, compression, and PYG.
# Supports both UMN and Bucktooth featuresets. This is the default
# configuration for Pygopherd because it is secure yet versatile.
#
handlers = [url.HTMLURLHandler, gophermap.BuckGophermapHandler,
mbox.MaildirFolderHandler, mbox.MaildirMessageHandler,
UMN.UMNDirHandler, html.HTMLFileTitleHandler,
mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
file.FileHandler]
# For full Pygopherd featureset including scripts and PYG. Same as
# above but adds scripts, decompression, and PYG execution.
#handlers = [url.HTMLURLHandler, gophermap.BuckGophermapHandler,
# mbox.MaildirFolderHandler, mbox.MaildirMessageHandler,
# UMN.UMNDirHandler,
# tal.TALFileHandler,
# html.HTMLFileTitleHandler,
# mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
# pyg.PYGHandler, scriptexec.ExecHandler,
# file.CompressedFileHandler, file.FileHandler,
# url.URLTypeRewriter]
##################################################
# Decompressing file handler
##################################################
[handlers.file.CompressedFileHandler]
# Decompressors is a map from an encoding (as specified in the
# pygopherd section above) to a decompression program.
# The decompression program must
# accept the input in its stdin and write the decompressed output
# to stdout.
#
# If you do not want to decompress things automatically for your
# clients, you might wish to NOT use this handler.
#
# Note: this feature is probably NOT compatible with chroot unless
# you take extra precautions.
# We enable no decompressors by default... you'll need to do that.
decompressors = {}
#decompressors = {'bzip2': 'bzcat',
# 'gzip' : 'zcat',
# 'compress' : 'zcat'}
# Regexp to match against filenames pending decompression.
# The default will let ALL files be decompressed.
decompresspatt = .*
# You can be more restrictive:
# decompresspatt = \.txt\.(bz2|gz|Z)$
##################################################
# Directory handler
##################################################
[handlers.dir.DirHandler]
# A regular expression of files to ignore. These files
# will not be presented in lists of files to clients,
# but if clients know the exact path to the files, they can
# still be requested.
#
# This pattern is matched against the requested selector.
# Selectors are guaranteed to begin with a slash by this point.
# and never end with a slash unless they consist solely of a slash.
#
# By default, we ignore files starting with a period, gophermap
# files, and files ending with a tilde.
#
# The default emulates UMN's default plus buck. Please note:
# UMNDirHandler implicitly will keep all files starting with a dot out of
# directory listings. If you exclude these files explicitly in ignorepatt,
# then not only will they not show up, but the handler will also not scan
# them for links and the like.
#
# A buck-only server might like:
#
# ignorepatt = ~$|/\.|/gophermap$
ignorepatt = /.cap$|/lost\+found$|/lib$|/bin$|/etc$|/dev$|~$|/\.cache|/\.forward$|/\.message$|/\.hushlogin$|/\.kermrc$|/\.notar$|/\.where$|/veronica.ctl$|/robots.txt$|/nohup.out$|/gophermap$|\.abstract$|\.keyboards$|\.ask|\.3d$|~$
# Expiration time, in seconds, for the cache.
# Set to 0 to disable caching entirely.
cachetime = 180
# Name of the cahe file. Must be set to something even if the cachetime
# is zero. In that case, this filename will not be used but for the conf
# file to parse, it must still be set.
cachefile = .cache.pygopherd.dir
##################################################
# UMN Directory Handler
##################################################
[handlers.UMN.UMNDirHandler]
# Extension stripping behavior. When a file from a directory
# is presented in a menu, and no name is given, what to do?
# For instance, given a file Welcome.txt and pygopherd.tar.gz:
#
# If extstrip is none, present Welcome.txt and pygopherd.tar.gz in the
# menu.
#
# If extstrip is nonencoded, modify only those files that do not
# have encodings. (If CompressedFileHandler is used, modify only
# those files that to not have *HANDLED* encodings.)
# If gzip is NOT a handled encoding, you'd get names Welcome and
# pygopherd.tar.gz. If gzip IS a handled encoding, you'd get
# Welcome and pygopherd.
#
# If extstrip is full, modify all modifyable names. Welcome.txt ->
# Welcome and pygopherd.tar.gz -> pygopherd.
# extstrip = none
extstrip = nonencoded
# extstrip = full
[handlers.ZIP.ZIPHandler]
##################################################
# ZIP file handler
##################################################
# Even if it's listed in the available handlers, it's disabled here by
# default.
enabled = false
pattern = \.zip$
######################################################################
# PROTOCOLS
######################################################################
##################################################
# Protocol Multiplexer
##################################################
[protocols.ProtocolMultiplexer]
# A list of the protocols to consider for each request.
# The protocols are tried in the order listed.
protocols = [wap.WAPProtocol, http.HTTPProtocol,
gopherp.GopherPlusProtocol, rfc1436.GopherProtocol]
##################################################
# Gopher+ Protocol
##################################################
[protocols.gopherp.GopherPlusProtocol]
# The name and e-mail of the administrator
admin = Unconfigured Pygopherd Admin <pygopherd@nowhere.nowhere>
##################################################
# HTTP Protocol
##################################################
[protocols.http.HTTPProtocol]
iconmapping = {'h' : 'text.gif',
'0' : 'text.gif',
'4' : 'binhex.gif',
's' : 'sound1.gif',
'g' : 'image3.gif',
'I' : 'image3.gif',
'M' : 'text.gif',
'9' : 'binary.gif',
'1' : 'folder.gif',
'7' : 'folder.gif',
'i' : 'blank.gif'}
# You can use this option to put something at the top of each HTML
# page generated.
#
# The following tokens will be interpolated:
#
# GOPHERURL -- the Gopher URL for this page.
#
pagetopper = Welcome to Gopherspace! You are browsing Gopher through
a Web interface right now. You can use most browsers or Gopher
clients to browse Gopher natively. If your browser supports it,
<A HREF="GOPHERURL">try clicking here</A> to see this page
in Gopher directly. To find Gopher browsers,
<A HREF="http://quux.org:70/Software/Gopher/Downloads/Clients">click
here</A>.<HR>
##################################################
# WAP Protocol
##################################################
[protocols.wap.WAPProtocol]
# waptop is the URL to access with WAP devices. The default, /wap, means
# that accessing http://sitename.com/wap will bring up your site in WAP
# mode.
#
# PyGopherd can autodetect WAP from some phones, so this is not always
# necessary.
waptop = /wap
|