Link to circles admin page See merge request startinblox/applications/sib-app!78
SiB App
SiB App is the magic tool that allows the Happy Dev network to thrive in a decentralized way.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prerequisites
To install SiB App, you'll need to have:
- Python3 & Pip
 - NodeJS & NPM
 - A Prosody Server
 - (Optional) A SMTP Server
 
Installing
At first, you'll need to deploy a sib-manager server, then configure it.
sib-manager installation or update
$ pip3 install -U sib-manager
sib-manager deploy
$ sib startproject newserver -m djangoldp_project -m oidc_provider@django-oidc-provider -m djangoldp_circle -m djangoldp_joboffer -m djangoldp_profile -m djangoldp_skill -m djangoldp_account -m djangoldp_notification -m djangoldp_conversation
$ sib initproject newserver
We're using
djangoldp_project,django-oidc-provider,djangoldp_circle,djangoldp_joboffer,djangoldp_profile,djangoldp_skill,djangoldp_account,djangoldp_notification,djangoldp_conversation
As dependencies, if you don't want them, just remove the -m packagename.
sibserver is the name of the folder that sib-manager will create, choose it wisely.
In addition to the startproject you can add :
--site-url "http://localhost:8000"--productionto use postgresql instead of sqlite--db-host,--db-name,--db-userand--db-passare used to configure the database (mandatory with--production)--smtp-host,--smtp-userand--smtp-passare used to configure the SMTP (optional)
sibserver configuration
You'll have to change some settings on the sibserver files.
- Add your server name to 
ALLOWED_HOSTS- In 
settings.py, add your hostname onALLOWED_HOSTS, eg:ALLOWED_HOSTS = ['api.myserver.com', 'localhost'] 
 - In 
 - Around line 
96-97ofsettings.pyset yourPROSODY_HTTP_URL,JABBER_DEFAULT_HOST, eg:PROSODY_HTTP_URL = 'https://jabber.happy-dev.fr' JABBER_DEFAULT_HOST = 'happy-dev.fr' 
sib-manager launching
On the first sibserver folder
$ ./manage.py runserver
Create a Client ID for Prosody & Client
- Go to 
localhost:8000/admin/ - Login with previously created account.
- If needed you can create another admin account with 
./manage.py createsuperadmin 
 - If needed you can create another admin account with 
 - Add a 
ClientsonOpenID Connect Providersection- Name it as you wish
 Client type:PublicResponse types:id_token token (Implicit Flow)Redirect URIs:http://localhost:3000 http://127.0.0.1:3000 http://0.0.0.0:3000 http://localhost:8000 https://myserver.com
 - Keep the 
6-digitsnewly createClient IDsomewhere 
Then, you'll have to install the client.
Clone this repository
# With SSH
$ git clone git@git.happy-dev.fr:startinblox/applications/sib-app.git
# Or with HTTPS
$ git clone https://git.happy-dev.fr/startinblox/applications/sib-app.git
Install dependencies
$ cd sib-app
$ npm install
Configure config.json
On the newly created ./src/config.json change the dev configuration like this:
  "dev": {
    "sdn": "http://api.myserver.com", # Or localhost:8000
    "cdn": "https://cdn.happy-dev.fr",
    "xmpp": "https://prosody.myserver.com/http-bind/",
    "client_id": "000000" # <- Here goes your previously created Client ID
  },
That's all! Now let's run it!
# For dev
$ make watch
$ npm run serve
# Or for prod
$ make build
# Then publish the www folder
Deployment
Deployment will need a registered RSA Key on production servers.
On Alpha
$ make syncprod
On Staging
$ make sync
Built With
- Sib-Core - An awesome new framework!
 
Architecture
Some general schema of the existing StartinBlox applications architecture can be found here.