Mirror of l'Hubl
Go to file
Jean-Baptiste Pasquier d9e4cd845e Merge branch 'gm-update' into 'staging'
Gm update

See merge request startinblox/applications/sib-app!36
2019-05-22 12:52:19 +00:00
.gitlab issue and merge request templates 2019-05-03 11:27:32 +02:00
src Merge branch 'gm-update' into 'staging' 2019-05-22 12:52:19 +00:00
www ui: Makefile for test-paris & test-nantes 2019-05-21 19:53:44 +02:00
.babelrc fix: ES6 modules dependencies 2019-01-07 16:39:06 +01:00
.gitignore less javascript for user img 2019-04-16 14:56:25 +02:00
index.prod.html ui: Makefile for test-paris & test-nantes 2019-05-21 19:53:44 +02:00
lib_list.txt ui: remove browserify 2019-05-14 14:03:11 +02:00
LICENSE Add LICENSE 2018-11-01 20:29:31 +00:00
Makefile ui: Makefile for test-paris & test-nantes 2019-05-21 19:53:44 +02:00
package-lock.json update: package-lock.json 2019-05-14 19:10:43 +02:00
package.json css: refactoring & fixing - day 2 2019-05-14 17:32:42 +02:00
postinstall.js css: refactoring & fixing - day 2 2019-05-14 17:32:42 +02:00
README.md ui: update for jbpasquier/css 2019-05-14 18:24:23 +02:00
server.js ui: remove browserify 2019-05-14 14:03:11 +02:00

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"
  • --production to use postgresql instead of sqlite
  • --db-host, --db-name, --db-user and --db-pass are used to configure the database (mandatory with --production)
  • --smtp-host, --smtp-user and --smtp-pass are 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 on ALLOWED_HOSTS, eg:
      ALLOWED_HOSTS = ['api.myserver.com', 'localhost']
      
  • Around line 96-97 of settings.py set your PROSODY_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
  • Add a Clients on OpenID Connect Provider section
    • Name it as you wish
    • Client type: Public
    • Response 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-digits newly create Client ID somewhere

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

Architecture

Some general schema of the existing StartinBlox applications architecture can be found here.