Update README

This commit is contained in:
3wc 2021-06-02 14:44:47 +02:00
parent 6976c15a4d
commit 4fee460ea5

189
README.md
View File

@ -6,42 +6,163 @@
2. Add your SSH key here: https://git.startinblox.com/profile/keys 2. Add your SSH key here: https://git.startinblox.com/profile/keys
3. Create a project folder, I'll use `export PROJECT_FOLDER=~/Projects/Autonomic/StartinBlox/` -- all subsequent steps are run from `$PROJECT_FOLDER` 3. Create a project folder, I'll use `export PROJECT_FOLDER=~/Projects/Autonomic/StartinBlox/` -- all subsequent steps are run from `$PROJECT_FOLDER`
4. (Optional) Create a Python virtual environment using your preferred method, 4. (Optional) Create a Python virtual environment using your preferred method,
or e.g. or e.g.
``` ```
$ python3 -m venv $PROJECT_FOLDER/venv $ python3 -m venv $PROJECT_FOLDER/venv
$ source $PROJECT_FOLDER/venv/bin/activate $ source $PROJECT_FOLDER/venv/bin/activate
``` ```
5. Check out the `djangoldp` code: 5. Check out the `djangoldp` code:
``` ```
$ git clone git@git.startinblox.com:djangoldp-packages/djangoldp.git $ git clone git@git.startinblox.com:djangoldp-packages/djangoldp.git
``` ```
and install it: and install it:
``` ```
$ cd $PROJECT_FOLDER/djangoldp $ cd $PROJECT_FOLDER/djangoldp
$ pip install -e . $ pip install -e .
$ pip install psycopg2 pycryptodomex # is this still needed? $ pip install psycopg2 pycryptodomex # is this still needed?
``` ```
6. Check out this very repository: 6. Check out this very repository:
``` ```
$ git clone https://git.autonomic.zone/decentral1se/startinblox-startinoff $ git clone https://git.autonomic.zone/decentral1se/startinblox-startinoff
``` ```
7. Install dependencies: 7. Install dependencies:
``` ```
$ djangoldp install $ djangoldp install
``` ```
8. Run database migrations: 8. Run database migrations:
``` ```
$ python manage.py migrate $ python manage.py migrate
``` ```
9. Create an RSA key for OAuth:
```
$ python manage.py creatersakey
```
9. Launch the development server: 9. Launch the development server:
``` ```
$ python manage.py runserver $ python manage.py runserver
$ # Or, alternatively: $ # Or, alternatively:
$ djangoldp runserver $ djangoldp runserver
``` ```
## Quick start 2: this time, it's Hubl! ## Quick start 2: this time, it's Hubl!
_(in another terminal, don't need to load virtualenv)_
```
git clone https://git.startinblox.com/applications/hubl
cd hubl
npm install
```
Then, add the following as `config.json` in your hubl folder.
```
{
"client": {
"name": "Sample of a functional Hubl",
"logo": "https://cdn.startinblox.com/logos/webp/hubl.webp"
},
"components": [{
"type": "registering",
"parameters": {
"authority": "http://localhost:8000/",
"authorityName": "dataserver"
},
"endpoints": {
"get": "http://localhost:8000/open-communities/"
},
"route": false
},
{
"type": "notification",
"route": false
},
{
"type": "admin",
"route": false
},
{
"type": "about"
},
{
"type": "communities",
"route": false
},
{
"type": "dashboard",
"endpoints": {
"get": "http://localhost:8000/dashboards/"
}
},
{
"type": "profileDirectory",
"endpoints": {
"get": "http://localhost:8000/users/",
"skills": "http://localhost:8000/skills/",
"uploads": "http://localhost:8000/upload/"
},
"route": "members"
},
{
"type": "jobBoard",
"endpoints": {
"get": "http://localhost:8000/job-offers/",
"post": "http://localhost:8000/job-offers/",
"skills": "http://localhost:8000/skills/"
},
"route": "job-offers"
},
{
"type": "projects",
"endpoints": {
"get": "http://localhost:8000/projects/",
"post": "http://localhost:8000/projects/",
"captains": "http://localhost:8000/users/",
"users": "http://localhost:8000/users/",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
}
},
{
"type": "circles",
"endpoints": {
"get": "http://localhost:8000/circles/",
"post": "http://localhost:8000/circles/",
"owners": "http://localhost:8000/users/",
"users": "http://localhost:8000/users/",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
}
},
{
"type": "chat",
"endpoints": {
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
},
"route": "messages"
},
{
"type": "analytics",
"parameters": {
"type": "matomo",
"url": "https://matomo.startinblox.com/",
"id": "2"
},
"route": false
}
]
}
```
Then install Node dependencies:
```
npm install
```
and launch the server with:
```
npm run watch
```
## Architecture 🏗 ## Architecture 🏗
@ -69,20 +190,28 @@ In the early days, we were using PostgreSQL, and we may yet need to return to
its warm embrace. To do so: its warm embrace. To do so:
1. Install and start Postgres 1. Install and start Postgres
- Mac OSX: https://www.postgresql.org/download/macosx/, or `brew install postgresql`, then `brew services start postgresql` - Mac OSX: https://www.postgresql.org/download/macosx/, or `brew install postgresql`, then `brew services start postgresql`
- Fedora: `dnf install postgresql-server && sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service` - Fedora: `dnf install postgresql-server && sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service`
2. Create a user and a database: 2. Create a user and a database:
``` ```
$ createuser djangoldp $ createuser djangoldp
$ createdb -O djangoldp djangoldp $ createdb -O djangoldp djangoldp
``` ```
(you may need `sudo -u postgres` or `-U postgres` on both of these commands, (you may need `sudo -u postgres` or `-U postgres` on both of these commands,
depending on your local security set-up) depending on your local security set-up)
3. Edit `settings.yml` if you need to remove the postgres user or change the 3. Edit `settings.yml` if you need to remove the postgres user or change the
password password
## Troubleshooting / top tips ## Troubleshooting / top tips
* Remember to activate your virtual environment, if you're using one, before * Remember to activate your virtual environment, if you're using one, before
running any Python / `manage.py` / `djangoldp` commands running any Python / `manage.py` / `djangoldp` commands
* `django.db.migrations.exceptions.InconsistentMigrationHistory: Migration guardian.0001_initial is applied before its dependency djangoldp_account.0001_initial on database 'default'.`
* try `rm db.sqlite3` in your hublserver folder.
* `ImportError: cannot import name 'base64url_decode' from 'jwt.utils'`
* try `pip uninstall jwt` and `pip install pyjwt`
* `No module named 'oidc_provider.lib.utils.dpop'`
* Make sure you're in the right virtualenv!