update: README.md - waiting review
This commit is contained in:
parent
8bee7b8aa5
commit
0f5b0ed8e5
217
README.md
217
README.md
@ -1,74 +1,209 @@
|
||||
# HD app
|
||||
# SiB App
|
||||
|
||||
HD app is the magic tool that allows the Happy Dev network to thrive in a decentralized way.
|
||||
SiB App is the magic tool that allows the Happy Dev network to thrive in a decentralized way.
|
||||
|
||||
## Use cases
|
||||
## Getting Started
|
||||
|
||||
Identified and scheduled use cases of the application includes (but are not limited to):
|
||||
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.
|
||||
|
||||
- Listing of projects
|
||||
- Listing of members
|
||||
- Search of members by skills
|
||||
- Invoicing and billing
|
||||
- Project-scoped chat
|
||||
- Personal messaging
|
||||
### Prerequisites
|
||||
|
||||
### Chat
|
||||
To install SiB App, you'll need to have:
|
||||
|
||||
The repository of the SIB Chat component can be found here:
|
||||
- Python3 & Pip
|
||||
- NodeJS & NPM
|
||||
- A Prosody Server
|
||||
- (Optional) A SMTP Server
|
||||
|
||||
- https://git.happy-dev.fr/startinblox/sib-chat
|
||||
### Installing
|
||||
|
||||
It is based on XMPP as messaging protocol, Prosody as the server and ConverseJS as the client.
|
||||
#### At first, you'll need to deploy a `sib-manager` server, then configure it.
|
||||
|
||||
### Project
|
||||
#### `sib-manager` installation or update
|
||||
|
||||
The repository of the project listing components is the core and can be found here:
|
||||
```
|
||||
$ pip3 install -U sib-manager
|
||||
```
|
||||
|
||||
- https://git.happy-dev.fr/startinblox/sib-core
|
||||
#### `sib-manager` deploy
|
||||
|
||||
### Invoicing
|
||||
```
|
||||
$ 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
|
||||
```
|
||||
|
||||
The invoicing component is still at an early stage. Its repository is here:
|
||||
We're using
|
||||
- `djangoldp_project`,
|
||||
- `django-oidc-provider`,
|
||||
- `djangoldp_circle`,
|
||||
- `djangoldp_joboffer`,
|
||||
- `djangoldp_profile`,
|
||||
- `djangoldp_skill`,
|
||||
- `djangoldp_account`,
|
||||
- `djangoldp_notification`,
|
||||
- `djangoldp_conversation`
|
||||
|
||||
- https://git.happy-dev.fr/startinblox/sib-invoicing
|
||||
As dependencies, if you don't want them, just remove the `-m packagename`.
|
||||
|
||||
## Architecture
|
||||
The `--venv` mean that `sib-manager` will create and use a virtual env, if you want to use your system env remove it.
|
||||
|
||||
Some general schema of the existing StartinBlox applications architecture can be found here:
|
||||
`sibserver` is the name of the folder that `sib-manager` will create, choose it wisely.
|
||||
|
||||
https://docs.google.com/presentation/d/1iCRGaJpFvZjhjIUnpsn6lRTJJ31ES6n94BNkJygzUwM/edit?usp=sharing
|
||||
#### `sibserver` configuration
|
||||
|
||||
## Installation
|
||||
You'll have to change some settings on the `sibserver` files.
|
||||
|
||||
If you want to contribute or test the app, please follow those steps.
|
||||
- Change `oidc_provider` from `packages.py` to `settings.py`:
|
||||
- Remove `oidc_provider` line in `./sibserver/packages.py`
|
||||
- Add `oidc_provider` on `INSTALLED_APPS` in `./sibserver/settings.py`
|
||||
- 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 `75-79` of `settings.py` set your `PROSODY_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'
|
||||
```
|
||||
|
||||
### Requirements
|
||||
- If you wish use another database than `sqlite`, you can also configure it on `DATABASES` in `settings.py`
|
||||
|
||||
You need to have both NodeJS and NPM installed and working.
|
||||
- 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
|
||||
```
|
||||
|
||||
### Installation process
|
||||
#### `sibserver` migrate
|
||||
|
||||
clone then:
|
||||
On the first `sibserver` folder:
|
||||
|
||||
* `make install`
|
||||
```
|
||||
$ ./manage.py migrate
|
||||
```
|
||||
|
||||
Edit the created `./src/config.pug` file to :
|
||||
- update the `client_id` [you generated on the server](https://git.happy-dev.fr/startinblox/applications/sib-app-data-server/blob/master/README.md#openidconnect-configuration) / OIDC provider
|
||||
- update the `sdn` / Server Domain Name to match yours
|
||||
#### Add an RSA Key for `oidc`
|
||||
|
||||
## Build
|
||||
On the first `sibserver` folder:
|
||||
|
||||
A first build is mandatory for compiling the static assets.
|
||||
```
|
||||
$ ./manage.py creatersakey
|
||||
```
|
||||
|
||||
* `make build`
|
||||
#### `sib-manager` launching
|
||||
|
||||
or
|
||||
On the first `sibserver` folder
|
||||
|
||||
* `make watch`
|
||||
```
|
||||
$ sib runserver
|
||||
```
|
||||
|
||||
if you are working on something and want to benefit of the hot reload feature.
|
||||
You can also launch it directly from `manage.py`. Don't forget to activate the `venv` if so.
|
||||
|
||||
## Run server
|
||||
#### Create a Client ID for Prosody & Client
|
||||
|
||||
* `make serve`
|
||||
- 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
|
||||
$ 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](https://git.happy-dev.fr/startinblox/framework/sib-core/) - An awesome new framework!
|
||||
|
||||
### Architecture
|
||||
|
||||
Some general schema of the existing StartinBlox applications architecture can be found [here](https://docs.google.com/presentation/d/1iCRGaJpFvZjhjIUnpsn6lRTJJ31ES6n94BNkJygzUwM/edit?usp=sharing).
|
||||
|
||||
<!---
|
||||
## Contributing
|
||||
|
||||
We may add a `CONTRIBUTING.md`
|
||||
|
||||
## License
|
||||
|
||||
We may add a `LICENSE.md`
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* Maybe some thanks too
|
||||
* Inspiration
|
||||
* etc
|
||||
--->
|
Loading…
Reference in New Issue
Block a user