How hamedsafikhani/taskapi-devops works
TaskAPI is presented as a containerisation and deployment pipeline for a FastAPI task service. The main workflow is a GitLab push through secret detection, image build and vulnerability scanning, then commit-pinned deployment; at runtime nginx proxies requests to FastAPI, which persists tasks in Postgres and uses Redis for caching and readiness checks. Pipeline details beyond the README’s documented stages are represented at that level because the CI file was not sampled.
Main entry points: .gitlab-ci.yml Pipeline stages · compose.yaml Service topology · main.py FastAPI service · nginx.conf Reverse proxy
Components 18
CI pipeline
- Pipeline stages
.gitlab-ci.yml - Secret detection
.gitlab-ci.yml - Image build
Dockerfile - Vulnerability scan
.gitlab-ci.yml
Deployment
- GitLab runner
.gitlab-ci.yml - Deploy host
- Deployer
.gitlab-ci.yml - Production overlay
compose.prod.yaml
Runtime stack
- Service topology
compose.yaml - Reverse proxy
nginx/nginx.conf - Postgres
compose.yaml - Redis
compose.yaml
Task API
- FastAPI service
app/main.py - Settings
app/config.py
Other components
- Developer
- GitLab
- Image registry
- API client
Connections 22
- Developer → GitLab: pushes code
- GitLab → Pipeline stages: starts pipeline
- Pipeline stages → Secret detection: runs checks
- Pipeline stages → Image build: builds image
- Pipeline stages → Vulnerability scan: scans image
- Pipeline stages → Image registry: publishes image
- Pipeline stages → GitLab runner: deploys via
- GitLab runner → Deploy host: connects SSH
- Deploy host → Deployer: runs as
- Deployer → Production overlay: fetches config
- Deployer → Image registry: pulls pinned image
- Deployer → Service topology: starts services
- Service topology → Production overlay: overlays settings
- Service topology → Reverse proxy: runs service
- Service topology → FastAPI service: runs service
- Service topology → Postgres: runs service
- Service topology → Redis: runs service
- API client → Reverse proxy: sends HTTP
- Reverse proxy → FastAPI service: proxies requests
- FastAPI service → Settings: loads settings
- FastAPI service → Postgres: reads and writes
- FastAPI service → Redis: caches and checks