19bd61ae38
Esc key close rightmenu See merge request startinblox/applications/sib-app!82 |
||
---|---|---|
.gitlab | ||
src | ||
www | ||
.babelrc | ||
.gitignore | ||
lib_list.txt | ||
LICENSE | ||
Makefile | ||
package-lock.json | ||
package.json | ||
postinstall.js | ||
README.md | ||
server.js |
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 onALLOWED_HOSTS
, eg:ALLOWED_HOSTS = ['api.myserver.com', 'localhost']
- In
- Around line
96-97
ofsettings.py
set 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
Clients
onOpenID 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 createClient 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
- Sib-Core - An awesome new framework!
Architecture
Some general schema of the existing StartinBlox applications architecture can be found here.