Configuring DayDream

Configuration of DayDream BBS is done via external configprogram, ddcfg. It compilies specified ascii file to the datafiles, that can be found in $DAYDREAM/data/-directory. Order of stuff inside "blocks" is not important, but all the fields MUST be present. Configprogram gently informs what field is missing, if it is missing.

The basic configfile is included in distribution archive, just look at the examples to get the idea.

1 Main Configuration

---------------------------------------- example
!DAYDREAM.DAT
BBSNAME...... Humanoid Invasion
SYSOP........ Hydra
CHATDLPATH... /home/bbs/hold
SYSTEM_PW.... -
NEWUSER_PW... -
USERED_PW.... FALLOS
NEW_PRESET... 1
IDLE......... 180
AUTOCONF..... 1
FREEFORUL.... 2000000
ASK_REASON... Y
NAMEMODE..... H
LOCATION..... O
ASKHANDLE1ST. N
SYSOP_COL.... 
USER_COL..... 
ALIENS....... /home/bbs/aliens/
LINE_EDCOM... $
FSED......... /home/bbs/doors/dded %N
SCREENLENGTH. 30
FREEDLLINE... [-] FREE DOWNLOAD -------- FREE DOWNLOAD [-]
COSYSOPACCESS 250
HOLDDIR...... /home/bbs/hold/
TELNETNODEPAT /dev/ttyp* /dev/ttys*
TELNETNODE1ST 10
TELNETNODEMAX 4
LOCALNODEPAT. /dev/tty* 
LOCALNODE1ST. 3
LOCALNODEMAX. 2
ASKDISPLAY... Y
ALLOW2LOGINS. N
ASKNEWUSER... Y
LOGINSTYLE... Y
DEF_EXPERT... N
DEF_MAILSCAN. Y
DEF_NEWFILESC N
DEF_ALLOWNODE Y
DEF_EDITOR... F
DEF_AUTOQUICK N
DEF_BGCHECKER Y
CATALOGDUPECK N
BGCHECKER.... Y
MAXFTPUSERS.. 3
PYTHON....... /usr/bin/python
FLOODKILLTRIG 10
DOORLIBPATH.. /home/bbs/lib
~
---------------------------------------- example

BBSNAME

Name of your system

SYSOP

Name of system operator.. (Your name :)

CHATDLPATH

Path of directory where the files downloaded during a chat will be placed.

SYSTEM_PW

System password (if any)

NEWUSER_PW

New user password (if any)

USERED_PW

User editor password (if any)

NEW_PRESET

Access preset for new users. See below for information about presets.

IDLE

Idle timeout..

AUTOCONF

Auto-join conference. If user is unable to join the conference he was on last time he called, he will join this.

FREEFORUL

Free HDD space required for uploads (bytes)

ASK_REASON

Ask chat reason (Y/N)

NAMEMODE

Default name mode (H=Handles, R=Real names)

LOCATION

Default location mode (O=Organization/Group, Z=Zip code)

ASKHANDLE1ST

Y/N switch. If this is Y, Handle will be asked before real name when a user is about to create account.

SYSOP_COL

SysOp color in chat.

USER_COL

User color in chat.

ALIENS

Path to place files that are found in Temporary directory when it needs to be cleaned. There can be files eg. if system has crashed during uploading. If this is -, files in temporary directory will be deleted.

LINE_EDCOM

Character that activates the command mode in line editor.

FSED

Command to be executed to start FullScreen Editor or - if you don't want to have FullScreen Editor.

SCREENLENGTH

Screen length of the local screen.

FREEDLLINE

Line to be added after free downloads or -. (In file listing)

COSYSOPACCESS

Security level of co-sysops.

HOLDDIR

Place private uploads in this dir

TELNETNODEPATH

Pattern for telnet nodes.. (ttys). If this pattern matches with the tty user is attached in, it's considered as a telnet call..

TELNETNODE1ST

DD allocates telnet nodes dynamically. This is number of first telnet node. If this is 10, then first telnet caller will be in node 10, next on 11.. etc :)

TELNETNODEMAX

Maximum number of telnet connections running at the same time.

LOCALNODEPAT

Same as TELNETNODEPATH, except for local connections.

LOCALNODE1ST

1st local node.

LOCALNODEMAX

Max number of local nodes.

ASKDISPLAY

This setting controls whether to ask the number of incoming/outgoing conversion tables on login. If this is set to N, the default is 1.

ALLOW2LOGINS

Y/N. Allow multiple logins at once.

ASKNEWUSER

Y/N/D. If user tries to login with non-existing account, ask if he/she wants to create a new one. Setting this to 'D' disables new account creation completely.

LOGINSTYLE

Y/N. If this is set to 'N', login password will not be asked if the user account does not exist. Setting this to 'Y' will make it a bit more difficult for an attacker to probe the valid accounts in the system. On other words, password will asked even if the account does not exist.

DEF_EXPERT

Y/N. Enable expert mode as default.

DEF_MAILSCAN

Y/N/A. Enable mail scan as default. A for ASK.

DEF_NEWFILESC

Y/N/A. Enable new file scan as default. A for ASK.

DEF_ALLOWNODE

Y/N. Allow node messages as default.

DEF_EDITOR

F/L/A. Default message editor. F=Full screen, L=line, A=Ask.

DEF_AUTOQUICK

Y/N. Enable auto quick-uploading as default.

DEF_BGCHECKER

Y/N. Enable background upload checker/poster as default.

CATALOGDUPECK

Y/N. Look for dupes in uploadlog.dat. If this is ON, DD will discard already uploaded files even if they are no longer online.

BGCHECKER

Y/N. Enable BGChecker. Because background upload checker is a bit experimental, you may want to turn it off. Also it eats a bit more CPU, so it might be a stupid idea to enable background checker on a slow 386.

MAXFTPUSERS

Amount of FTP users at once.

PYTHON

Path to python executable.

FLOODKILLTRIG

Number of bare linefeeds received before the user is kicked out. Maybe not that useful thing taken from PCB.

DOORLIBPATH

Some doors are dynamically linked but the runtime library path may be missing, for example, when the doors are invoked during archive checking after a FTP upload. You can use this to provide the correct path, usually /home/bbs/lib.

2 Conferences

-------------------------------- example
!CONFERENCES.DAT
CONF_NUMB..... 1
CONF_NAME..... RoøkIEs
CONF_PATH..... /home/bbs/confs/newusers
CONF_FILEAREAS 0
CONF_UPLOADSTO 0
CONF_MSGBASES. 1
CONF_COMMENTS. 1
CONF_ULPATH... -
CONF_NSAREAS.. -
CONF_DEFFSCAN. N
CONF_FREELEECH N
CONF_NOCREDS.. N
CONF_SENTBY... Y
CONF_LONGNAMES N
CONF_ASKDEST.. N
CONF_NOWILDS.. Y
CONF_NOWILDFLG N
CONF_NODUPECHK N
CONF_NOFILECHK N
CONF_GLOBALDCK Y
CONF_PASSWORD. -
+
-------------------------- example

CONF_NUMB

Conference number (1-64)

CONF_NAME

Conference name

CONF_PATH

Path to conferences datafiles. (data/, messages/ and display/ should be in there)

CONF_FILEAREAS

Number of fileareas in conference. (1-255)

CONF_UPLOADSTO

Number of upload area.

CONF_MSGBASES

Number of message bases. (1-255)

CONF_COMMENTS

Number of the message base to place comments in. If 0, no comments allowed in this conference.

CONF_ULPATH

Path of the directory where uploads are moved after transfer. End with /. If you want to specify multiple upload paths, do it like this:
	CONF_ULPATH.. @/space/bbs/conf2.dat
	
This makes DD to look upload paths with free space from paths listed in /space/bbs/conf2.dat. (Must be an ascii file, a path per line).

CONF_NSAREAS

Arealist for global new file scan. Area list uses the same routine as N S [....]-menu command. [....] will be placed with this.

CONF_DEFFSCAN

If you want this conference to be turned on as default for the global file scan, use Y. If not, then N.

CONF_FREELEECH

Y if the files in the conference are free downloads.

CONF_NOCREDS

Y if you don't want to credit users for uploading stuff.

CONF_SENTBY

Y if you want to add sent-by lines after file descriptions.

CONF_LONGNAMES

Y if you want to have 34 characters long filenames instead on 18.

CONF_ASKDEST

If you want that user will be asked for filearea for his/her upload instead of placing it in upload directory, set this as Y.

CONF_NOWILDS

Y if you don't want to allow wildcards in filenames.

CONF_NOWILDFLG

Y if you want to disable fileflagging with wildcards.

CONF_NODUPECHK

Y if you don't want to include the conference in global dupecheck.

CONF_NOFILECHK

Y if you don't want to check the files that are uploaded to this conference.

CONF_GLOBALDCK

Y if you want to have global dupechecking in the conference. You may want to turn this off in your request-conference. (Other conferences are ignored in dupechecking if this is N)

CONF_PASSWORD

Conference password (optional).

3 Message bases

BASE_NUMBER... 1
BASE_TYPE..... L
BASE_MAXMSGS.. 100
BASE_NAME..... Mail
BASE_FIDOTAG.. ROOKIES
BASE_ORIGIN... -
BASE_FIDOADD.. -
BASE_ALLOWPBLC Y
BASE_ALLOWPRIV Y
BASE_FILEATTAC Y
BASE_NAMES.... H
BASE_ALL=EALL. N
BASE_QUOTE.... L
BASE_DEFGRAB.. Y

BASE_NUMBER

Number of the message base.

BASE_TYPE

Message base type. (L=Local, E=Echomail, N=Netmail).

BASE_MAXMSGS

Max number of messages in message base.

BASE_NAME

Name of the message base. Currently, must not contain any spaces i.e. " " or things that wouldn't work as a valid filename in order to use echomail/netmail.

BASE_FIDOTAG

Fidonet tag for messagebase. Note that QWK-door (grab) requires this tag also for local area naming.

BASE_ORIGIN

Fidonet origin of the message base. No ansi or pipe colors.

BASE_FIDOADD

Fidonet address for the base.

BASE_ALLOWPBLC

Y to allow public messages in this base.

BASE_ALLOWPRIV

Y to allow private messages in this base.

BASE_FILEATTAC

Y to allow file attachs.

BASE_NAMES

Namemode. H=Handles, R=Real names.

BASE_ALL=EALL

Write ALL messages as EALL messages. BAH.

BASE_QUOTE

Quoting method. If L, /X-like quoteline will be inserted after quote. If this is >, plain > will be inserted before each line of the quote. If this is I, initials of the original message author and ">" will be inserted before quote. EG. "AH> DayDream KiX a$$!" For echomail / netmail, only > or I are allowed.

BASE_DEFGRAB

Y/N switch. Use Y, if you want this messagebase to be turned on as default for new mail scan and message grabbing.

4 External commands

DOOR_COMMAND.. WALL
DOOR_TYPE..... 1
DOOR_SECURITY. 5
DOOR_EXECUTE.. /home/bbs/doors/wall %N
DOOR_CONFS1... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DOOR_CONFS2... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DOOR_PASSWD... -

DOOR_COMMAND

Command at main prompt to start this door.

DOOR_TYPE

  • 1 = Normal DayDream door. See libdd.doc for info how to write DayDream doors.
  • 2 = stdio program. (eg. nethack :)
  • 3 = Text file
  • 4 = Bind to internal DD command
  • 5 = stdio program without user input
  • 6 = python script using dd-module

    DOOR_SECURITY

    Minimum security level to start this door.

    DOOR_EXECUTE

    Command or filename to run the door. %N required for all DayDream doors. - to disable command (if doortype = 4). Some tokens in this field are interpreted in a special way, see door parameters.

    DOOR_CONFS1

    Flags for conferences 1-32. If X, door is available in conf, if - then it's not.

    DOOR_CONFS2

    Flags for conferences 33-64. If X, door is available in conf, if - then it's not.

    DOOR_PASSWD

    The door's password, up to 15 characters, case insensitive. Can be set to '-' to disable password. The prompt for this password should be in a text file called 'doorpasswdXYZ.[gfx/txt]', where XYZ is the name of the door in lower case. The alternatives for user's security level and the current conference are checked before failing back to /home/bbs/display/iso. Look at 'display/iso/doorpasswdshell.[gfx/txt]' for an example.
  • 5 Security presets

    PRESET_SEC.... 5
    PRESET_NUMBER. 1
    PRESET_FFILES. 0
    PRESET_FBYTES. 0
    PRESET_DESC... New User
    PRESET_STATUS. 3
    

    PRESET_SEC

    Security level for the preset.

    PRESET_NUMBER

    Number of preset.

    PRESET_FFILES

    Free DL files.

    PRESET_FBYTES

    Free DL bytes.

    PRESET_DESC

    Preset description.

    PRESET_STATUS

    Status of the preset. 0 = Active, 1 = Deleted, 2 = Frozen, 3 = New

    6 Archivers

    ARC_PATTERN... *.LHA
    ARC_NAME...... LHA
    ARC_TEST...... lha t %A
    ARC_FAIL1..... Error: 
    ARC_FAIL2..... -
    ARC_FAIL3..... -
    ARC_FIDEXTRACT lha eqf %A
    ARC_FIDADD.... lha a %A file_id.diz
    ARC_VIEW...... lha v %A
    ARC_GETDATE... Y
    ARC_DELETECOR. Y
    ARC_DISPLAY... Y
    ARC_VIEWSEC... 200
    

    ARC_PATTERN

    Pattern for identifying file type.

    ARC_NAME

    Archiver name.

    ARC_TEST

    Command to test archive. %A == archive name.

    ARC_FAIL1

    Keyword if archive is corrupted (- for none). Case-sensitive.

    ARC_FAIL2

    Keyword if archive is corrupted (- for none). Case-sensitive.

    ARC_FAIL3

    Keyword if archive is corrupted (- for none). Case-sensitive.

    ARC_FIDEXTRACT

    File_id.diz extraction command. %A = archive name.

    ARC_FIDADD

    File_id.diz adding command. %A = archive name.

    ARC_VIEW

    Command to view archive contents.

    ARC_GETDATE

    Try to get date from file_id.diz.

    ARC_DELETECOR

    Delete archive if corrupt.

    ARC_DISPLAY

    Display output of testing to the user.

    ARC_VIEWSEC

    Minimum security level to view archive contents.

    7 Display modes

    DPL_ID........ 1
    DPL_PATH...... iso/
    DPL_ANSI...... Y
    DPL_INCONV.... N
    DPL_OUTCONV... N
    DPL_FILESCONV. N
    DPL_STRIPANSI. N
    DPL_TRYTXT.... N
    DPL_INTABLE... 0
    DPL_OUTTABLE.. 0
    DPL_STRINGS... 1
    

    DPL_ID

    Display mode number. (1-254)

    DPL_PATH

    Path used by display mode to find menus and text files. If this is "iso/", text stuff is searched from $DAYDREAM/display/iso/-directory.

    DPL_ANSI

    If this is Y, ansi colors are enabled. If this is N, only 2 colors are used.

    DPL_INCONV

    Activate incoming conversion. If this is Y, incoming characters will be converted.

    DPL_OUTCONV

    Activate outgoing conversion. If this is Y, outgoing characters will be converted.

    DPL_FILESCONV

    Activate textfile conversion. If this is Y, outgoing textfiles will be converted.

    DPL_STRIPANSI

    Strip ansicodes from textfiles.

    DPL_TRYTXT

    If GFX file doesn't exist, try TXT.

    DPL_INTABLE

    Incoming conversion table number or 0.

    DPL_OUTTABLE

    Outgoing conversion table number or 0.

    DPL_STRINGS

    Number of string file (strings.xxx) to use.

    8 Node configuration

    MNODE_NODE.... 1
    MNODE_MBAUD... 1200
    MNODE_MNBAUD.. 1200
    MNODE_OWNDIR.. N
    MNODE_NOTIFY.. Y
    MNODE_HIDEINAC Y
    MNODE_HIDEWAIT N
    MNODE_HIDECALL N
    MNODE_NOPASSWD N
    MNODE_TEMP.... /home/bbs/temp/node1/
    MNODE_TTYNAME. /dev/ttyS0
    MNODE_TTYTYPE. 0
    MNODE_TTYSPEED 0
    

    MNODE_NODE

    Node number (1-255). Telnet and local nodes need "general preset", so if this is for Telnet node, use T. For local node use L.

    MNODE_MBAUD

    Minimum baudrate to logon.

    MNODE_MNBAUD

    Minimum baudrate for new users.

    MNODE_OWNDIR

    Y to Get Display stuff from $DAYDREAM/node[number]/display/ instead of $DAYDREAM/display/.

    MNODE_NOTIFY

    Y to notify other users online when someone logs on to this node.

    MNODE_HIDEINAC

    Y to hide node when no one is online.

    MNODE_HIDEWAIT

    Obsolete.

    MNODE_HIDECALL

    Y to hide node when there's a caller online.

    MNODE_NOPASSWD

    Obsolete.

    MNODE_TEMP

    Path to temp dir. If this is a telnet or local node, use %d to insert node number. (eg. /home/bbs/temp/node%d/)

    MNODE_TTYNAME

    TTY-name for node or - if local/telnet node.

    MNODE_TTYTYPE

    TTY type. 0 = Dial-up, 1 = Telnet, 2 = Local, 3 = FTP

    MNODE_TTYSPEED

    Imaginary bps rate for local or telnet calls.

    9 Security levels

    SEC_LEVEL..... 1
    SEC_FRATIO.... 3
    SEC_BRATIO.... 3
    SEC_PAGES..... 3
    SEC_TIMELIMIT. 20
    SEC_CONFACC1.. XXXXXXXXXXXXXX------------------
    SEC_CONFACC2.. --------------------------------
    SECF_DOWNLOAD. N
    SECF_UPLOAD... N
    SECF_READMSGS. N
    SECF_ENTERMSG. N
    SECF_PAGE..... N
    SECF_COMMENT.. N
    SECF_BULLETINS N
    SECF_LISTFILES N
    SECF_NEWFILES. N
    SECF_ZIPPY.... N
    SECF_RUNDOOR.. N
    SECF_JOINCONF. N
    SECF_MSGAREAC. N
    SECF_CHANGEINF N
    SECF_RELOGIN.. N
    SECF_TAGED.... N
    SECF_VIEWSTATS N
    SECF_VIEWTIME. N
    SECF_HYDRA.... N
    SECF_EXPERT... N
    SECF_EALL..... N
    SECF_FIDOMSG.. N
    SECF_PRIVMSG.. N
    SECF_READALL.. N
    SECF_USERED... N
    SECF_VIEWLOG.. N
    SECF_SYSOPDL.. N
    SECF_USERLIST. N
    SECF_DELETEANY N
    SECF_SHELL.... N
    SECF_WHO...... N
    SECF_MOVE..... N
    SECF_SFCONFS.. N
    SECF_SMBASES.. N
    SECF_NETMAIL.. N
    SECF_OLM...... N
    SECF_PRVATTACH N
    SECF_PUBATTACH N
    SECF_VIEWFILE. N
    SECF_REALNAME. Y
    SECF_HANDLE... Y
    

    SEC_LEVEL

    Security level.

    SEC_FRATIO

    File ratio for this level. 0 for disabled.

    SEC_BRATIO

    Byte ratio for this level. 0 for disabled.

    SEC_PAGES

    Amount of sysop pages per call.

    SEC_TIMELIMIT

    Time limit / day in minutes.

    SEC_CONFACC1

    Access flags to conferences 1-32.

    SEC_CONFACC2

    Access flags to conferences 33-64.

    SECF_DOWNLOAD

    Y/N. Download files.

    SECF_UPLOAD

    Y/N. Upload files.

    SECF_READMSGS

    Y/N. Read messages.

    SECF_ENTERMSG

    Y/N. Write messages.

    SECF_PAGE

    Y/N. Page/yell sysop.

    SECF_COMMENT

    Y/N. Comment to sysop.

    SECF_BULLETINS

    Y/N. View bulletins.

    SECF_LISTFILES

    Y/N. List files.

    SECF_NEWFILES

    Y/N. View new files.

    SECF_ZIPPY

    Y/N. Zippy search.

    SECF_RUNDOOR

    Y/N. Run external programs.

    SECF_JOINCONF

    Y/N. Join conference.

    SECF_MSGAREAC

    Y/N. Change msg area.

    SECF_CHANGEINF

    Y/N. Change user information.

    SECF_RELOGIN

    Y/N. Relogin. (Not currently available).

    SECF_TAGED

    Y/N. Tag editor.

    SECF_VIEWSTATS

    Y/N. View user information.

    SECF_VIEWTIME

    Y/N. View local time.

    SECF_HYDRA

    Obsolete.

    SECF_EXPERT

    Y/N. Turn expert mode on/off.

    SECF_EALL

    Y/N. Write EALL messages.

    SECF_FIDOMSG

    Y/N. Write fidonet messages. (Not currently available).

    SECF_PRIVMSG

    Y/N. Write private messages.

    SECF_READALL

    Y/N. Read ANY message. (Private to someone else).

    SECF_USERED

    Y/N. User editor.

    SECF_VIEWLOG

    Y/N. View log files.

    SECF_SYSOPDL

    Y/N. SysOp download.

    SECF_USERLIST

    Y/N. List users.

    SECF_DELETEANY

    Y/N. Delete ANY message.

    SECF_SHELL

    Y/N. Remote shell. (Not currently available)

    SECF_WHO

    Y/N. View who is online.

    SECF_MOVE

    Y/N. Move files.

    SECF_SFCONFS

    Y/N. Select conferences to scan for new files.

    SECF_SMBASES

    Y/N. Select messagebases for mailscan.

    SECF_NETMAIL

    Y/N. Send netmail. (Not currently available)

    SECF_OLM

    Y/N. Send online message.

    SECF_PRVATTACH

    Y/N. Attach file to a private message.

    SECF_PUBATTACH

    Y/N. Attach file to a public message.

    SECF_VIEWFILE

    Y/N. View file.

    SECF_REALNAME

    Y/N. Change real name.

    SECF_HANDLE

    Y/N. Change handle.

    10 File Transfer protocols

    XPR_ID........ Z
    XPR_NAME...... Z-Modem
    XPR_EFFICIENCY 97
    XPR_TYPE...... 1
    

    XPR_ID

    Procotol ID.

    XPR_NAME

    Protocol name.

    XPR_EFFICIENCY

    Protocol efficiency. (In percents)

    XPR_TYPE

    Protocol type. 1 = ZModem, 2 = HydraCom, 3 = Smodem, 4 = FTP. For ftp see ddftp/README.