# INTRODUCTION

[FlaskBB](http://flaskbb.org) is a forum software written in python
using the micro framework Flask.


## FEATURES

* A Bulletin Board like FluxBB, DjangoBB in Flask
* Private Messages
* Admin Interface
* Group based permissions
* BBCode support
* Topic Tracker
* Unread Topics/Forums


## TODO

* Searching for members, posts,...
* ~~"Link to"-Forum type~~
* ~~Move a topic in a other forum~~
* Merging 2 topics together
* ~~Reporting posts~~
* Userstyles (e.q.: colored username)
* ~~Database migrations~~
* A own theme ~~and make FlaskBB themable with Flask-Themes2~~
* Localization (Babel)
* Polls


## DEPENDENCIES

* [Flask](http://flask.pocoo.org)
    * [Werkzeug](http://werkzeug.pocoo.org)
    * [Jinja2](http://jinja.pocoo.org)
* [Flask-SQLAlchemy](http://pythonhosted.org/Flask-SQLAlchemy/)
    * [SQLAlchemy](http://www.sqlalchemy.org/)
* [Flask-WTF](http://pythonhosted.org/Flask-WTF/)
    * [WTForms](http://wtforms.simplecodes.com/docs/1.0.4/)
* [Flask-Login](http://flask-login.readthedocs.org/en/latest/)
* [Flask-Mail](http://pythonhosted.org/flask-mail/)
* [Flask-Script](http://flask-script.readthedocs.org/en/latest/)
* [Flask-Themes2](http://flask-themes2.rtfd.org/)
* [Flask-Migrate](http://flask-migrate.readthedocs.org/en/latest/)


### OPTIONAL DEPENDENCIES

* [Pygmens](http://pygments.org/) - For code highlighting
* [Redis](http://redis.io/) - For counting the online guests


## INSTALLATION

* Create a virtualenv
    * Install virtualenvwrapper with your package manager or via
        * `sudo pip install virtualenvwrapper`
    * Add these lines to your `.bashrc`

            export WORKON_HOME=$HOME/.virtualenvs  # Location for your virtualenvs
            source /usr/local/bin/virtualenvwrapper.sh

    * Create a new virtualenv
        * `mkvirtualenv -a /path/to/flaskbb -p $(which python2) flaskbb`
    * and finally activate it
        * `workon flaskbb`
    * For more options visit the documentation [here](http://virtualenvwrapper.readthedocs.org/en/latest/index.html).


* Install the dependencies
    * `pip install -r requirements.txt`
    * **NOTE**: If you are using pip 1.5 you need to add these parameters: ``--allow-external postmarkup --allow-unverified postmarkup``
* Configuration (_adjust them accordingly to your needs_)
    * For development copy `flaskbb/configs/development.py.example` to `flaskbb/configs/development.py`
    * For production copy `flaskbb/configs/production.py.example` to `flaskbb/configs/production.py`
* Database creation
    * **Development:** Create the database with some example content
        * `python manage.py createall`
    * **Production:** Create the database and the admin user
        * `python manage.py initflaskbb`
* Run the development server
    * `python manage.py runserver`
* Visit [localhost:8080](http://localhost:8080)


## Upgrading

* Upgrading from a previous installation
    * Pull the latest changes from the repository
    * `git pull`
* See if the example config has changed and adjust the settings to your needs
    * `diff flaskbb/configs/production.py flaskbb/configs/production.py.example`
    * `$EDITOR flaskbb/configs/production.py`
* Upgrade the database to the latest revision
    * `python manage.py db upgrade head`


## LICENSE

[BSD LICENSE](http://flask.pocoo.org/docs/license/#flask-license)


## ACKNOWLEDGEMENTS

[/r/flask](http://reddit.com/r/flask), [Flask](http://flask.pocoo.org) and it's [extensions](http://flask.pocoo.org/extensions/).
