Personal website that includes a portfolio and a blog. Made with Django. Licensed under GPL-3.0 (see LICENSE file).
pyproject.tomlpackage.json.pre-commit-config.yaml(Git hooks)
uv sync [--group dev]npm installuvx pre-commit install(Git hooks)
DEBUG(True/False)SECRET_KEYALLOWED_HOSTS(comma-separated values)
DATABASE_PATH(e.g.path/to/portfolio/db/db.sqlite3)
OIDC_RP_CLIENT_IDOIDC_RP_CLIENT_SECRETOIDC_RP_SIGN_ALGOOIDC_OP_JWKS_ENDPOINTOIDC_OP_AUTHORIZATION_ENDPOINTOIDC_OP_TOKEN_ENDPOINTOIDC_OP_USER_ENDPOINT
TURNSTILE_SITE_KEYTURNSTILE_SECRET_KEY
KOFI_VERIFICATION_TOKEN
AXES_ENABLEDAXES_IPWARE_PROXY_COUNTAXES_FAILURE_LIMIT
- Python standard library
- Third-party libraries
- Local modules
See: PEP 8
api: REST API.home: index page, project portfolio, and blog features.users: authentication.
assets: Webpack source (pre-bundle).core: Django project utils.portfolio: Django project settings.static: Django static files (pre-collection).templates: Django project templates.
uv lock [--upgrade]npm update
- Make changes in
models.py - Register as needed in
admin.py - Make sure
DATABASE_PATHis set in.env(cross-referencedocker-compose*.yml) - In a venv, run
python manage.py makemigrations
ruff check
docker compose -f docker-compose.yml [-f docker-compose.override.yml] up -d --build
docker compose -f docker-compose.yml -f docker-compose.prod.yml [-f docker-compose.override.yml] up -d --build