src | ||
www | ||
.babelrc | ||
.gitignore | ||
copy_lib.js | ||
lib_list.txt | ||
LICENSE | ||
Makefile | ||
package-lock.json | ||
package.json | ||
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 sibserver -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 --venv
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
.
The --venv
mean that sib-manager
will create and use a virtual env, if you want to use your system env remove it.
sibserver
is the name of the folder that sib-manager
will create, choose it wisely.
sibserver
configuration
You'll have to change some settings on the sibserver
files.
-
Change
oidc_provider
frompackages.py
tosettings.py
:- Remove
oidc_provider
line in./sibserver/packages.py
- Add
oidc_provider
onINSTALLED_APPS
in./sibserver/settings.py
- Remove
-
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
75-79
ofsettings.py
set yourPROSODY_HTTP_URL
,JABBER_DEFAULT_HOST
&BASE_URL
, eg:PROSODY_HTTP_URL = 'https://jabber.happy-dev.fr' JABBER_DEFAULT_HOST = 'happy-dev.fr' BASE_URL = 'https://localhost:8000'
-
If you wish use another database than
sqlite
, you can also configure it onDATABASES
insettings.py
-
If you want to receive mails from notifications, you need to add these lines & configure them at the end of
settings.py
EMAIL_HOST = "your.smtp.srv" EMAIL_HOST_USER = "user@email.com" EMAIL_HOST_PASSWORD = "password" EMAIL_USE_TLS = True #Or False
sibserver
migrate
On the first sibserver
folder:
$ ./manage.py migrate
Add an RSA Key for oidc
On the first sibserver
folder:
$ ./manage.py creatersakey
sib-manager
launching
On the first sibserver
folder
$ sib runserver
You can also launch it directly from manage.py
. Don't forget to activate the venv
if so.
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
$ node copy_lib.js
$ cp -n src/config.sample.json src/config.json
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
# Or for prod
$ make build
# Then on another terminal
$ make serve
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.