A personal portfolio website built with Django, Tailwind CSS, PostgreSQL, and Docker.
git clone https://github.com/YOUR_USERNAME/portfolio.git
cd portfolio
cp .env.example .env
# Edit .env and set a strong SECRET_KEY
docker compose up --build
# In a new terminal:
docker compose exec web python manage.py migrate
docker compose exec web python manage.py tailwind install
docker compose exec web python manage.py createsuperuser
| URL | What |
|---|---|
| http://localhost:8000 | Portfolio site |
| http://localhost:8000/admin | Content admin |
# Start everything (web + db + tailwind watcher)
docker compose up
# Stop
docker compose down
# Run a management command
docker compose exec web python manage.py <command>
# Open a Django shell
docker compose exec web python manage.py shell
Everything is managed via the Django admin at /admin:
| Section | What you can do |
|---|---|
| Site Settings | Name, tagline, bio, social links, avatar |
| Projects | Add/edit portfolio projects with images, tags, links |
| Pages | Create custom pages that appear in the nav |
| Documents | Upload PDFs and files for download |
| Tags | Organise projects by tag |
portfolio/
├── apps/
│ ├── core/ # Home, about, site settings
│ ├── projects/ # Portfolio projects
│ ├── pages/ # CMS-style custom pages
│ ├── documents/ # Uploadable files
│ └── theme/ # Tailwind CSS theme app
├── config/
│ ├── settings/
│ │ ├── base.py
│ │ ├── local.py
│ │ └── production.py
│ └── urls.py
├── templates/ # All HTML templates
├── static/ # Static assets
├── media/ # Uploaded files (gitignored)
├── Dockerfile
└── docker-compose.yml