This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Andrew Pamment 3237c6de14 Update LUA
2016-12-10 07:31:44 +10:00
ansis_default Another bulletin tweak 2016-12-07 16:32:47 +10:00
config_default Fix broadcast i think 2016-12-08 22:27:06 +10:00
inih Initial Commit 2016-03-22 11:48:59 +10:00
jamlib Ported to Minix 3.3.0 2016-08-01 10:36:53 +00:00
lua Update LUA 2016-12-10 07:31:44 +10:00
scripts_examples Fix lua logout script example 2016-12-05 13:58:18 +10:00
utils Updated users_sql_update.pl to include bwavepktno 2016-12-09 18:41:42 +10:00
www widen the last 10 callers a bit :) 2016-08-21 15:19:52 +10:00
Xmodem Added Experimental File areas 2016-04-03 09:26:17 +10:00
.gitignore New message id generation.. fixed bug in magiedit aborting empty message 2016-12-04 16:37:23 +10:00
bbs_list.c Swallow Escaped Input on menus... like arrow keys. 2016-12-02 15:31:29 +10:00
bbs.c Broadcast port and address are now checked if valid before broadcasting 2016-12-09 13:57:17 +10:00
bbs.h Added Newsgroup area type, same as echomail just changes 'to' to all 2016-12-09 19:47:33 +10:00
bluewave.c Added Newsgroup area type, same as echomail just changes 'to' to all 2016-12-09 19:47:33 +10:00
bluewave.h Added EXPERIMENTAL bluewave support 2016-12-06 17:06:28 +10:00
chat_system.c Move Strings into a String file so they can be customized 2016-08-14 19:56:15 +10:00
doors.c Add Lua scripting to log out stanza 2016-09-05 14:05:17 +10:00
email.c Fix a bunch of quoteing bugs 2016-12-07 18:30:47 +10:00
file_id.diz Made some improvements to fileapprove utility 2016-12-07 12:46:55 +10:00
files.c Added multiple archivers 2016-12-08 14:08:04 +10:00
LICENSE.txt Added License & FILE_ID.DIZ 2016-04-09 18:22:55 +10:00
lua_glue.c Attempt to make doors, chat and files work with ssh 2016-08-07 13:45:52 +10:00
magicka.strings Added abiltiy to change default archiver 2016-12-08 16:32:05 +10:00
mail_menu.c Added Newsgroup area type, same as echomail just changes 'to' to all 2016-12-09 19:47:33 +10:00
main_menu.c Swallow Escaped Input on menus... like arrow keys. 2016-12-02 15:31:29 +10:00
main.c Added Newsgroup area type, same as echomail just changes 'to' to all 2016-12-09 19:47:33 +10:00
Makefile.freebsd Update freebsd makefiles 2016-12-07 21:58:58 +10:00
Makefile.freebsd.WWW Update freebsd makefiles 2016-12-07 21:58:58 +10:00
Makefile.linux Added EXPERIMENTAL bluewave support 2016-12-06 17:06:28 +10:00
Makefile.linux.WWW Added EXPERIMENTAL bluewave support 2016-12-06 17:06:28 +10:00
Makefile.minix Move Strings into a String file so they can be customized 2016-08-14 19:56:15 +10:00
Makefile.osx Move Strings into a String file so they can be customized 2016-08-14 19:56:15 +10:00
README.md Bump version to 0.4 ready for next release 2016-08-22 15:12:42 +10:00
settings.c Added abiltiy to change default archiver 2016-12-08 16:32:05 +10:00
strings.c Move Strings into a String file so they can be customized 2016-08-14 19:56:15 +10:00
users.c Updated users_sql_update.pl to include bwavepktno 2016-12-09 18:41:42 +10:00
www_email.c fix bug 2016-08-21 19:33:17 +10:00
www_last10.c add css for last 10 2016-08-21 15:06:59 +10:00
www_msgs.c Updated the rest of the message generating utils to use new msgid generation 2016-12-04 17:51:29 +10:00
www.c Hopefully finally fixed cut off messages 2016-08-21 21:58:35 +10:00

MagickaBBS

Linux/FreeBSD bulletin board system (Should also work on NetBSD and OpenBSD, if it doesn't it's a bug)

As I lost the code to my initial BBS flea, I've decided to start over from scratch and this time I'm using git hub so I dont lose it again!

Magicka is meant to be a modern (haha) BBS system, using modern technologies, like Sqlite3, IRC, long filenames (gasp!) etc while still retaining the classic BBS feel. ANSI & Telnet, and good old ZModem.

If you want to install Magicka BBS, follow these steps.

  1. Ensure you have git, c compiler, libsqlite3-dev, libreadline-dev, libssl-dev, libssh-dev and gnu make

    sudo apt-get install build-essential libsqlite3-dev libreadline-dev git libssl-dev libssh-dev

    should work on debian and debian derivatives.

  2. Clone the repo git clone https://github.com/apamment/MagickaBBS

  3. Build JamLib

cd MagickaBBS/jamlib

make -f Makefile.linux (Linux) gmake -f Makefile.linux (*BSD)

  1. Build libzmodem

cd MagickaBBS/Xmodem

make (Linux) gmake (*BSD)

  1. Build LUA

    cd MagickaBBS/lua

    make linux (Linux) gmake freebsd (FreeBSD)

  2. Build the BBS (You may have to adjust the Makefile for your system)

make -f Makefile.linux (Linux) gmake -f Makefile.freebsd (FreeBSD)

  1. Make a directory for logs.

    mkdir logs

  2. Copy the config-default directory to a config directory.

cp -r config_default config

  1. Edit the config files and update essential information, like system paths and BBS name etc
  2. Copy the ansi-default directory to the one specified in your system path

eg.

cp -r ansi_default ansis

  1. If you are going to run SSH, you will need to create keys. To do this

mkdir keys

`ssh-keygen -f keys/ssh_host_rsa_key -N '' -t rsa`

`ssh-keygen -f keys/ssh_host_dsa_key -N '' -t dsa`
  1. Run Magicka BBS on a port over 1024 (Below require root, and we're not ready for that).

./magicka config/bbs.ini

  1. Your BBS is now running on the port you specified in the config.ini, log in and create yourself an account! (By default there is only one security level, you can add more, but you will need to use an SQLite Manager to modify users.sq3 and set security levels, as there is no user editor yet.

For information on how to configure your BBS, check the wiki https://github.com/apamment/MagickaBBS/wiki

About the webserver

Magicka now includes a built in webserver based on libmicrohttpd. It is not built by default, if you'd like to build it you will need a recent version of libmicrohttpd (raspbian doesn't have a recent enough version, and you will need to build it from source). You will also need libb64-dev. Once you have these prerequisites, you can build magicka with make -f Makefile.linux.WWW or make -f Makefile.freebsd.WWW be sure to do this from a clean source tree.

The webserver will use templates in the www/ folder to create internal webpages on the fly, anything in www/static/ is served up as is.

README!!

If you are upgrading from a version prior to 73aa146b84 You will need to make and run the update_pass utility on your user database. This will convert all plain text passwords to sha256 hashed and salted passwords.

eg.

	cd utils/update_pass
	make
	./update_pass ../../users.sq3

Although you probably should make a backup of your database first in case things go wrong...