Custom API written in Python using FastAPI
  • Python 85.9%
  • HTML 5.3%
  • Shell 4.8%
  • Dockerfile 4%
Find a file
Jack Stockley 1fd874e7ad
Some checks are pending
Lint, Test, and Deploy / Lint (push) Waiting to run
Lint, Test, and Deploy / Test (push) Waiting to run
Lint, Test, and Deploy / Publish to PyPI (push) Blocked by required conditions
Lint, Test, and Deploy / Deploy Docker Image (push) Blocked by required conditions
Trivy Security Scan / Scan (push) Waiting to run
Merge pull request #550 from jnstockley/dev
Sync from python-starter
2026-06-04 13:06:50 -05:00
.github/workflows Pull changes from python-starter 2026-06-04 02:38:33 +00:00
scripts Fix linting to fail 2025-12-26 23:01:33 -06:00
src Update IP route to support IPv4 and IPv6 addresses 2026-03-05 18:57:09 -06:00
templates Add valentines day api 2026-01-27 19:02:12 -06:00
tests Fix tests 2026-03-05 19:18:55 -06:00
.dockerignore Update with python-starter 2025-10-07 14:34:48 -05:00
.gitignore Update with python-starter 2025-10-07 14:34:48 -05:00
.python-version Update to python 3.14 2026-03-02 18:20:59 -06:00
.yamllint Update linters 2025-03-10 19:21:31 -05:00
compose-dev.yml Add valentines day api 2026-01-27 19:02:12 -06:00
compose.yml Update compose.yml 2025-12-30 18:38:25 -06:00
Dockerfile Pull changes from python-starter 2026-05-12 01:19:29 +00:00
LICENSE Create LICENSE 2025-03-09 17:02:15 -05:00
Main Branch Protection.json Add branch protection json 2025-09-30 08:19:02 -05:00
pyproject.toml Update dependency sqlalchemy to v2.0.50 2026-05-24 20:08:18 +00:00
README.md WIP Migrate to uv from poetry 2025-03-14 12:41:16 -05:00
renovate.json Migrate config renovate.json 2025-08-05 23:59:46 +00:00
sample.env Allow customizable LOG_DIR 2026-01-25 12:46:52 -06:00
template.env Update template.env 2025-01-06 13:15:23 -06:00
TODO.md Adding TODO 2024-05-04 16:22:54 -05:00
uv.lock Update dependency sqlalchemy to v2.0.50 2026-05-24 20:08:18 +00:00

API

This is a custom API, written in Python using FastAPI, to help me accomplish tasks the can be improved through a RESTful API

Setup

Simplest setup is to start from compose.yml and template.env, which should be renamed to .env

Environment Vairables

  • API_KEY - Any long, random string. Keep this secret as this is the only form of authentication for the API. All routes require it, except /health-check/
  • DATABASE_URL - The URL to connect to postgres DB. Must start with postgresql+psycopg://. Should be in the format specifiec in template.env
  • TZ - Timezone of the container
  • PGTZ - Timezone the Postgres container should use

How to Access

Using the compose.yml file, you can access the API at http://<IP>:5000/health-check. If everything is setup correctly, you should see {"status":"ok"}