Skip to content

Repository files navigation

evilyach

Personal website — blog platform and resume. Built with FastAPI, Jinja2, PostgreSQL.

Prerequisites

  • Python 3.14+
  • uv
  • Docker (for PostgreSQL)

Setup

1. Install dependencies

Development (includes linting tools):

uv sync

Production (runtime dependencies only):

uv sync --no-dev

2. Configure

cp config.yaml.example config.yaml

Edit config.yaml and fill in the required values. Generate secrets with:

# secret_key and ip_salt
python -c "import secrets; print(secrets.token_hex(32))"

# admin_password_hash
python -c "import bcrypt; print(bcrypt.hashpw(b'yourpassword', bcrypt.gensalt()).decode())"

3. Start the database

docker compose up -d

4. Run migrations

uv run alembic upgrade head

5. Start the server

uv run uvicorn app.main:app --reload

The site will be available at http://localhost:8000. Admin panel: http://localhost:8000/admin.

Scripts

Seed the database with a test post:

uv run python scripts/insert.py

Development

Lint and format:

uv run ruff check
uv run ruff format

About

Personal Website

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors