About Abilian SBE
Introduction to Abilian SBE
Abilian SBE (Social Business Engine) is a versatile platform designed for social business applications, particularly in the realm of collaborative or enterprise 2.0 business applications. It is ideal for creating enterprise social networks (ESN) and similar applications.
Key Features
- Community-Centric: Focuses on 'communities' as collaborative spaces, offering services like document management, discussions, wikis, and user timelines.
- Robust Foundation: Built upon the
Abilian Core
project, which integrates Flask and SQLAlchemy, providing essential services. - Proven Track Record: Reliably used by several major customers in production environments since mid-2013.
Installation
Local (development)
You will need:
- Python 3.9 or more
- A running postgresql database (e.g.
createdb sbe-demo
) - A redis server
- ImageMagick (for image processing)
- Poppler (for PDF processing)
- LibreOffice (for document conversion)
- Java (what?!? - yes, for Closure)
- Node + npm
- Some libraries: libpq (for Postgres), libjpeg, libxslt, libxml2, libffi, libssl, libmagic, libsqlite3, libbz2...
On Debian/Ubuntu, the following packages is a good starting point (TODO: check what is missing, what is not really needed):
PACKAGES = [
"build-essential",
"python-dev",
"libpq-dev",
"libxslt1-dev",
"libjpeg-dev",
"libffi-dev",
"libsqlite3-dev",
"libbz2-dev",
"postgresql",
"redis",
"poppler-utils",
"imagemagick",
"libreoffice",
"default-jdk-headless",
"curl",
]
Now, create a virtualenv and install the app and its dependencies:
poetry shell
poetry install
npm install
Set up the following environment variables (you may put these in a .env
or .envs
file and use an environment variable manager like direnv.
An example of configured .env
is available: see example_config/dot_env
file.
export FLASK_SECRET_KEY=<your secret key>
export FLASK_SQLALCHEMY_DATABASE_URI=postgres://localhost/sbe-demo
export FLASK_SERVER_NAME=127.0.0.1:5000
export FLASK_DEBUG=true
export FLASK_MAIL_DEBUG=1
export FLASK_REDIS_URI=redis://localhost:6379/0
export FLASK_DRAMATIQ_BROKER_URL=redis://localhost:6379/0
Then run:
flask db initdb
flask createuser admin <some email address> <username>
flask run
Production
In production, you will need additionally:
- An email server (running locally on the server, e.g. like postfix, that's probably overridable)
export FLASK_PRODUCTION = True
export FLASK_SECRET_KEY=<your secret key>
export FLASK_SQLALCHEMY_DATABASE_URI=postgres://localhost/sbe-demo
export FLASK_SITE_NAME="<your site name>"
export FLASK_SERVER_NAME="<your server name>"
export FLASK_MAIL_SERVER=<your email server>
export FLASK_REDIS_URI=redis://localhost:6379/0
export FLASK_DRAMATIQ_BROKER_URL=redis://localhost:6379/0
You can start the server with:
gunicorn 'abilian.sbe.app.create_app()'
If you are using a web server as a reverse proxy, for instance nginx, you can use the proxy_pass
option to forward requests to the gunicorn server.
Configuration example
A step by step configuration example using honcho
, .env
and Python 3.12
is available in the example_config
folder.
On Heroku
Click on the button:
(Doesn't fully work - needs to be debugged).
License compliance
This project is compliant with the REUSE Specification version 3.2.
* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: 0
* Unused licenses: 0
* Used licenses: CC-BY-4.0, LGPL-3.0-only
* Read errors: 0
* Files with copyright information: 1692 / 1692
* Files with license information: 1692 / 1692
Congratulations! Your project is compliant with version 3.2 of the REUSE Specification :-)