• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Go
  • License
    Other
  • Created about 11 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simple and fast bulletin board written in Go.

GoBB

A simple forum platform written in Go.

Warning! Alpha quality software!

GoBB is currently in its early stages of development. While it is pretty usable at the moment (and actively being used in a trusted production environment), I'd recommend you hold off on using it for something big for the time being. There are still a lot of things that need to be patched up before it's ready for the big leagues. Having said that, if you're looking for a simple (and blazing fast) bulletin board for your friends who are willing to deal with some bugs, this might be the bb for you!

GoBB is getting better by the day, so hopefully it'll be ready to graduate from the alpha stage of development soon.

Screenshot

Installation

Get GoBB

$ go get github.com/stevenleeg/gobb/gobb

Create a config file

Create a directory where you'd like to house your GoBB installation's files. This can be anywhere on your filesystem. Then copy the contents of gobb.sample.conf into a file called gobb.conf.

The config should be self explanatory, so fill it with the appropriate information and save.

Set up the Postgres database:

We'll need to create a new database for GoBB's data to be stored:

$ psql
# CREATE DATABASE gobb;
CREATE DATABASE
# CREATE ROLE gobb WITH PASSWORD 'password';
CREATE ROLE
# GRANT ALL PRIVILEGES ON DATABASE gobb TO gobb;
GRANT
# ALTER ROLE gobb WITH LOGIN;
ALTER ROLE

Run it

Now that everything's ready to go we can start the server for the first time. You'll need to pass the --migrate flag on the initial start up. This will automatically create the database schema and make sure it's up to date.

$ gobb --config /path/to/gobb.conf --migrate

(Remember to add $GOPATH/bin to your $PATH! If you don't know what this means, start here)

The server should then be up and running on port 8080.

Your first account

Once the server is up, go ahead and browse to http://localhost:8080 and register. Once you've created the first account, it will be promoted to admin so you can create the first boards and begin moderating posts.

And that's it! You should have a functional copy of GoBB ready to use!

Deploy it!

If you understand what you're getting yourself into and willing to run GoBB in a prod environment, I reccommend setting up an nginx reverse-proxy to expose your installation to the public. Create a new nginx config that looks something like this:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Contributing

If you see something that could be better with GoBB, feel free to fork it and create a pull request. Just be sure to run go fmt before you submit the pull request so everything stays tidy!

More Repositories

1

geemusic

A bridge between Google Music and Amazon's Alexa
664
star
2

thegrid

A web based multiplayer RTS powered by python/tornado.
JavaScript
49
star
3

launchpadder

A library for making the Novation Launchpad incredibly easy to play with.
JavaScript
42
star
4

twproxy

An authenticated proxy for protecting your tiddlywiki.
Ruby
32
star
5

Minecraft-Log-Parser

Parses server logs from Minecraft and gives statistics about your server and its players
Python
25
star
6

harvest-touchbar

A Harvest timetracking widget for your touchbar
Ruby
20
star
7

boo

An implementation of Zach Holman's boom script in Python
Python
17
star
8

grooveboat

💃🛥️ Live DJing with your friends
JavaScript
13
star
9

campusdish_api

A RESTful representation of the University of Rochester's dining menus.
Python
11
star
10

thegrid2_client

A cleaner rework of thegrid (a web-based RTS game) in node.js.
JavaScript
10
star
11

Macgrab

A simple screenshot uploader using the Imgur API, programmed in Python.
Python
5
star
12

warnup

An easier way to deploy code when you can't do it the right way.
Python
4
star
13

lame_ios

Everyone's favorite anti-social network, on iOS!
Objective-C
3
star
14

nyiso-dirty-peaks

A data exploration in R of the increasingly dirty fuel mix used to serve NYISO during times of peak demand.
R
3
star
15

groovebuoy

📡 minimal knowledge signaling server for grooveboat
JavaScript
2
star
16

dropcloud

A simple iCloud <--> Dropbox syncing solution.
Python
2
star
17

node-midigrid

use midi-based grid controllers as serialosc devices
JavaScript
2
star
18

STONKS

Python
2
star
19

huginn_sqlite3_agent

A Huginn agent for writing arbitrary data to a SQLite3 database
Ruby
1
star
20

huginn_venmo_agents

A set of Huginn agents for interacting with the unofficial Venmo API
Ruby
1
star
21

supraspace

A playful javascript re-imagining of Subspace/Continuum
JavaScript
1
star
22

Euler

Project Euler problem solutions, written in C.
C
1
star
23

website

Yet another personal site on github.
CSS
1
star
24

I-Hate-Bb

Making Blackboard progressively less shitty!
Shell
1
star
25

huginn_ynab_agent

A Huginn agent to connect to YNAB
Ruby
1
star
26

Answering-Machine

A simple Ruby/Sinatra web app to leave messages on a server.
JavaScript
1
star
27

better-webwork

Making WeBWorK nicer!
JavaScript
1
star
28

dotjs-scripts

A repository holding my personal collection of scripts for the dotjs chrome extension.
JavaScript
1
star
29

lousyboard

A simple and anonymous messaging board written in Clojure
Clojure
1
star
30

rss-infra

A sample repository for how to set up a self-hosted RSS aggregator
Shell
1
star
31

Maze-Solver

A basic maze solver written in python!
Python
1
star
32

stevenleeg.github.com

Yet another personal homepage hosted on github
HTML
1
star