This is an Admin-first portfolio website built with Django + PostgreSQL + Nginx + Gunicorn.
Create .env at repo root:
DJANGO_SECRET_KEY=xxxx
DJANGO_ALLOWED_HOSTS=localhost
DJANGO_CSRF_TRUSTED_ORIGINS=http://localhost
POSTGRES_DB=xxxx
POSTGRES_USER=xxxx
POSTGRES_PASSWORD=xxxx
POSTGRES_HOST=xxxx
POSTGRES_PORT=xxxxStart:
docker compose up --buildOpen:
Create admin user:
docker compose exec web python manage.py createsuperuserAll content is managed in Django Admin:
- Site config (name, links, resume/CV, avatar)
- Projects + tags
- Highlights + KPIs (home page)
The UI is bundled with esbuild from backend/ui into:
backend/core/static/core/dist/main.js
The public entry point is nginx
docker compose up --build -dEnable HTTPS using Let’s Encrypt (recommended: certbot --webroot). Add a deploy hook to reload nginx after renewals.