diff --git a/README.md b/README.md index 9148d4f..d912c7a 100644 --- a/README.md +++ b/README.md @@ -6,42 +6,163 @@ 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` 4. (Optional) Create a Python virtual environment using your preferred method, - or e.g. - ``` - $ python3 -m venv $PROJECT_FOLDER/venv - $ source $PROJECT_FOLDER/venv/bin/activate - ``` + or e.g. + ``` + $ python3 -m venv $PROJECT_FOLDER/venv + $ source $PROJECT_FOLDER/venv/bin/activate + ``` 5. Check out the `djangoldp` code: ``` $ git clone git@git.startinblox.com:djangoldp-packages/djangoldp.git ``` - and install it: - ``` - $ cd $PROJECT_FOLDER/djangoldp - $ pip install -e . + and install it: + ``` + $ cd $PROJECT_FOLDER/djangoldp + $ pip install -e . $ pip install psycopg2 pycryptodomex # is this still needed? - ``` + ``` 6. Check out this very repository: ``` $ git clone https://git.autonomic.zone/decentral1se/startinblox-startinoff ``` 7. Install dependencies: - ``` - $ djangoldp install - ``` + ``` + $ djangoldp install + ``` 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: - ``` - $ python manage.py runserver - $ # Or, alternatively: - $ djangoldp runserver - ``` + ``` + $ python manage.py runserver + $ # Or, alternatively: + $ djangoldp runserver + ``` ## 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 🏗 @@ -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: 1. Install and start Postgres - - 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` + - 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` 2. Create a user and a database: - ``` - $ createuser djangoldp - $ createdb -O djangoldp djangoldp - ``` - (you may need `sudo -u postgres` or `-U postgres` on both of these commands, - depending on your local security set-up) + ``` + $ createuser djangoldp + $ createdb -O djangoldp djangoldp + ``` + (you may need `sudo -u postgres` or `-U postgres` on both of these commands, + depending on your local security set-up) 3. Edit `settings.yml` if you need to remove the postgres user or change the - password + password ## Troubleshooting / top tips * Remember to activate your virtual environment, if you're using one, before 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!