Compare commits
2 Commits
6976c15a4d
...
6937dd6ba0
Author | SHA1 | Date | |
---|---|---|---|
|
6937dd6ba0 | ||
|
4fee460ea5 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
settings.yml
|
||||
static/
|
||||
**/__pycache__
|
||||
/db.sqlite3
|
||||
|
189
README.md
189
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!
|
||||
|
Loading…
Reference in New Issue
Block a user