Márton Lente
f84bbd01a5
Implements Web Assets v2 nav-pills component as sidebar nav, as it was introduced in v2.0.0-alpha.40. Pull Request: #93592 |
||
---|---|---|
assets_shared@04359665df | ||
bid_addon_support | ||
bid_api | ||
bid_main | ||
blenderid | ||
docs | ||
integration_tests | ||
mfa | ||
playbooks | ||
templates | ||
.env.example | ||
.gitignore | ||
.gitmodules | ||
.pre-commit-config.yaml | ||
deploy.sh | ||
LICENSE.txt | ||
manage.py | ||
pyproject.toml | ||
README.md | ||
requirements_dev.txt | ||
requirements_prod.txt | ||
requirements.txt | ||
setup.cfg |
Table of Contents
Blender ID
Blender ID is the unified login system for all services around Blender. With just one account you can set up a Blender Studio subscription or a Blender Development Fund membership, sign up for Blender Conference talks, manage your extensions at Blender Extensions Platform.
Requirements
- Python 3.10
- virtualenv
Development
Setup
Create and activate a virtual environment using your favourite method, e.g.
python3.10 -m venv .venv
source .venv/bin/activate
From this point on we assume you run everything with the virtual environment active.
Install required packages:
pip install -r requirements_dev.txt
Make a copy of example .env
:
cp .env.example .env
Initialise submodules included into this repo:
git submodule update --init
Generate oidc.key:
openssl genrsa -out oidc.key 4096
Create the database tables and load some basic data to work with using the following commands:
./manage.py migrate
./manage.py loaddata **/fixtures/*.json
Create a superuser account to be able to login and access /admin/
:
./manage.py createsuperuser
Collect media from fixtures and place into the media directory:
./manage.py collectmedia
Update /etc/hosts
to point to id.local
, e.g.:
127.0.0.1 id.local
Run ./manage.py runserver
or ./manage.py runsslserver
if you need to test yubikeys.
Development server is now available at http://id.local:8000/ or https://id.local:8000/ for runsslserver
Deploy
See playbooks.
Project layout and modules
├── assets_shared # Blender Web Assets submodule: CSS, JS, etc. reused in Blender web-projects.
├── bid_addon_support # Django app for the Blender ID add-on API (see below).
├── bid_api # Django app for APIs that are neither OAuth2 nor Blender ID add-on support
├── bid_main # Main Django app, taking care of the web interface and OAuth2 authentication.
│ └── static # Blender ID-specific asset sources (CSS, JS, etc.).
├── blenderid # Django project, includes all the settings and top-level URL config.
│ └── .env.example # Example development settings
└── playbooks # Deployment playbooks and inventory
└── shared # Playbooks submodule reused in Blender web-projects.
OAuth
See OAuth.md.
Account deletion
See user_deletion.md.
Multi-factor authentication
See mfa.md.
Troubleshooting
"Site matching query does not exist."
Do this, activate Blender ID virtualenv environment and run:
./manage.py loaddata default_site
Then access your site at http://id.local:8000/. Add an entry to your hosts file if necessary.