ENTERPRISE QUALITY BBS
Notable features:
- Posting messages
- Reading messages
Make sure you have Ruby 1.9.3 at least. 2.0.0+ is recommended.
Download and extract a release tarball or clone the git repository:
git clone https://github.com/desuwa/hivebbs.git
gem install rake bcrypt erubis escape_utils sequel sinatra hive_markup
For a MySQL database:
Install the MySQL client dev package if you don't already have it:
sudo apt-get install libmysqlclient-dev
Then install the gem:
gem install mysql2
For PostgreSQL:
Install the PostgreSQL client dev package if you don't already have it:
sudo apt-get install libpq-dev
Then install the gem:
gem install pg
For SQLite:
Install the SQLite dev package if you don't already have it:
sudo apt-get install libsqlite3-dev
Then install the gem:
gem install sqlite3
Just get Puma:
gem install puma
or don't, and use some other Rack-compatible server, like Unicorn or thin.
Assuming your database server is up and running and you have created a database for your HiveBBS installation (unless you are using SQLite).
Get into the directory where you extracted or cloned the sources.
Configure the database
Copy config/db.sample.rb
to config/db.rb
and edit it.
Set the adapter
to mysql2
for MySQL, postgres
for PostgreSQL, sqlite
for SQLite
database
is the name of the database you created or the path to the SQLite database file.
Migrate the database
rake db:migrate
This will create the necessary tables. You can run it every time you need to upgrade the schema.
Create the admin account
rake db:init
or
rake db:init[volunteer]
if you want to use volunteer as username instead of the default admin.
Generate the tripcode key file
This will create a config/trip.key
file containing a random key which will be used to generate tripcodes.
rake gentripkey
or
rake gentripkey[512]
if you want to change the size of the key in bytes. It's 256 by default.
Copy the default configration
Copy config/config.sample.rb
to config/config.rb
and edit it if needed.
At this point you should be able to start HiveBBS in development mode:
./hive.rb
It will be available at http://localhost:4567
The manager (admin) route is /manage
Configure Puma
You picked Puma, right?
rake puma:init
This will create a puma-hive.rb
file
You might want to adjust the threads
and workers
parameters. Check the Puma documentation for that.
rake puma:start
starts Puma.
rake puma:reload
does a phased-restart.
rake puma:restart
restarts Puma.
rake puma:stop
stops Puma.
Configure what's in front of Puma
For nginx, you can add something like this to your site's .conf file:
upstream puma_hive {
server unix:///var/www/hivebbs/tmp/puma.sock;
}
Replace /var/www/hivebbs/tmp/puma.sock
with the path to the puma socket file.
By default it's {your_hivebbs_folder}/tmp/puma.sock
.
Then, inside the server
block:
try_files $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma_hive;
}
File uploads are disabled by default. You need ImageMagick to handle image files and FFmpeg for webm.
Gems:
uglifier
to minify JavaScript (see ExecJS for a JavaScript runtime)
sass
to minify CSS
jshintrb
for JShint
If your server isn't accessible through HTTPS, you'll need to set the secure_cookies
option to false
inside config/config.rb
, otherwise you won't be able to log in.
You really should use HTTPS, though.
gem install rack-test minitest
Get the sample data if you want to test ImageMagick and FFmpeg. Put it inside the spec
directory so to have the sample files inside spec/data
.
Create config/db_test.rb
and a new database.
rake -T
to see all test tasks.