Does Tatis have an error today? You can check here
  • Python 73.5%
  • Just 8%
  • Dockerfile 7.1%
  • HTML 7%
  • Shell 4.4%
Find a file
dependabot[bot] 68a0959d83
👷 ci(deps): Bump astral-sh/setup-uv (#438)
Bumps the github-actions group with 1 update: [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv).


Updates `astral-sh/setup-uv` from 10.3.2 to 10.3.3
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](07a047e608...68559e99cc)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 10.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 09:06:51 +00:00
.github 👷 ci(deps): Bump astral-sh/setup-uv (#438) 2026-11-02 09:06:51 +00:00
content ✨ add automerge workflow (#432) 2026-09-19 09:27:32 -07:00
tatisjr 📦 updated libraries (#410) 2026-03-29 09:07:04 -07:00
templates ⚡ Implement native connection pooling for PostgreSQL (#359) 2025-12-06 15:11:01 -08:00
.coveragerc skip failing tests 2023-01-24 20:59:04 -08:00
.dockerignore 🐳 Add Docker support for development and Coolify deployment (#371) 2025-12-07 15:38:04 -08:00
.env.example 🔧 Align tatis with canonical project configuration (#388) (#391) 2026-01-04 13:08:26 -08:00
.gitignore 🔧 Migrate to pyproject.toml and ruff (#357) 2025-12-06 14:54:07 -08:00
.isort.cfg implementing pre-commit 2021-12-12 08:06:29 -08:00
.pre-commit-config.yaml 🔧 add zizmor (#365) 2025-12-07 06:47:56 -08:00
conftest.py ✨ Add Django Constance for runtime-editable configuration (#361) 2025-12-06 15:32:47 -08:00
docker-compose.host-db.yml 🐳 Add Docker support for development and Coolify deployment (#371) 2025-12-07 15:38:04 -08:00
docker-compose.yaml 🔧 Align tatis with canonical project configuration (#388) (#391) 2026-01-04 13:08:26 -08:00
docker-compose.yml 🐳 Add Docker support for development and Coolify deployment (#371) 2025-12-07 15:38:04 -08:00
docker-entrypoint.sh 🐳 Add Docker support for development and Coolify deployment (#371) 2025-12-07 15:38:04 -08:00
Dockerfile 🔧 Upgrade to Python 3.15 and refresh dependencies (#436) 2026-10-20 18:22:44 -07:00
generate_diagram.py implementing pre-commit 2021-12-12 08:06:29 -08:00
justfile 🔧 Align tatis with canonical project configuration (#388) (#391) 2026-01-04 13:08:26 -08:00
LICENSE Initial commit 2021-05-05 18:48:36 -07:00
manage.py implementing pre-commit 2021-12-12 08:06:29 -08:00
pyproject.toml 🔧 Upgrade to Python 3.15 and refresh dependencies (#436) 2026-10-20 18:22:44 -07:00
pytest.ini implementing pre-commit 2021-12-12 08:06:29 -08:00
README.md 🔼 upgrade to Python 3.14 (#375) 2025-12-07 15:46:01 -08:00
requirements.txt ⬆️ deps(deps): Bump the python-packages group with 15 updates (#434) 2026-10-01 09:17:39 +00:00
setup.cfg implementing pre-commit 2021-12-12 08:06:29 -08:00
uv.lock 🔧 Upgrade to Python 3.15 and refresh dependencies (#436) 2026-10-20 18:22:44 -07:00
zizmor.yml 🔧 add zizmor (#365) 2025-12-07 06:47:56 -08:00

Tatis

justforfunnoreally.dev badge

This is a project I created to troll my friend Barry. He's a huge Padres fan, and I'm a huge Dodgers fan.

The site can be found here

It answers one simple question:

Does Fernando Tatis Jr have an error today?

It will return either Yes or No

And it has a silly image of a throw that Tatis is making.

If you're a Padre fan you look at it and believe he's making an unbelievable throw to get someone out

If you're not, you know that Tatis is forking up the throw :)

Development Setup

The easiest way to get started is using Docker Compose:

  1. Clone the repository

  2. Copy the example environment file:

    cp .env.example .env
    

    Note: The .env.example file is configured for docker-compose with DATABASE_URL pointing to the db service. If you're running the app without Docker, change the host from db to localhost in your .env file.

  3. Start the services:

    docker-compose up
    
  4. The application will be available at http://localhost:8000

The Docker setup includes:

  • Django development server with live code reloading
  • PostgreSQL 16 database
  • Automatic database migrations on startup
  • Volume mounts for persistent data
  • Environment variables loaded from .env file

To stop the services:

docker-compose down

To rebuild after dependency changes:

docker-compose up --build

Traditional Setup (Without Docker)

If you prefer not to use Docker:

  1. Install Python 3.14+
  2. Install dependencies:
    uv pip install -e .
    
  3. Set up environment variables (create a .env file or export them)
  4. Run migrations:
    python manage.py migrate
    
  5. Start the development server:
    python manage.py runserver
    

Production Deployment

Deploying to Coolify

This application is ready for deployment to Coolify:

  1. In Coolify, create a new application from this Git repository
  2. Coolify will automatically detect and use the Dockerfile
  3. In Coolify's environment variables section, configure the following:
    • DATABASE_URL: Your production PostgreSQL connection string (Coolify can provision this)
      • Example: postgres://user:password@your-db-host:5432/tatis_prod
      • If using Coolify's managed PostgreSQL, it will inject this automatically
    • SECRET_KEY: Django secret key (generate a secure one)
    • DEBUG=False
    • ALLOWED_HOSTS: Your domain name(s) (e.g., yourdomain.com,www.yourdomain.com)
    • SECURE_SSL_REDIRECT=True
    • SESSION_COOKIE_SECURE=True
    • CSRF_COOKIE_SECURE=True
    • SECURE_HSTS_SECONDS=31536000
    • SECURE_HSTS_INCLUDE_SUBDOMAINS=True
    • SECURE_HSTS_PRELOAD=True
    • SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,https

Important: Coolify injects environment variables directly into the container at runtime. Do NOT create a .env file in production - Coolify handles all environment configuration through its web interface. The .env.example file is only for local development reference.

The application includes:

  • Health check endpoint at /health/ for Coolify monitoring
  • Automatic database migrations on container startup
  • Static file collection during build
  • Gunicorn as the production WSGI server

Database Connection

  • Coolify can provision a PostgreSQL database and automatically inject the DATABASE_URL
  • Or you can connect to an external database by setting DATABASE_URL manually
  • The app uses django-environ to read the database connection from DATABASE_URL

Development Commands

Testing

pytest                    # Run all tests
pytest --cov              # Run with coverage
pytest --last-failed      # Run only failed tests

Code Quality

prek run --all-files     # Run pre-commit hooks
ruff format .            # Format code
ruff check --fix .       # Lint and fix
djhtml .                 # Format Django templates
ty                       # Type checking

Database

python manage.py migrate              # Run migrations
python manage.py makemigrations       # Create migrations
python manage.py loaddata fixture/*.json  # Load fixtures (if exist)