--- title: "Python Project Template" description: "Opinionated Python project template with modern tooling: uv, ruff, mypy, pytest, Docker, and CI/CD ready" url: "https://gitlab.impresion3d.pro/root/python-project-template" status: "active" tags: ["Python", "Docker", "CI/CD", "DevOps"] startDate: 2026-05-01 featured: true --- # Python Project Template An opinionated Python project template designed for rapid development with modern tooling and infrastructure-as-code practices. ## Features - **Modern Python tooling**: uv for fast dependency management, ruff for linting, mypy for type checking - **Testing**: pytest with coverage reports - **Docker ready**: Multi-stage Dockerfile optimized for Python projects - **CI/CD pipeline**: Gitea Actions workflows for automated testing and deployment - **Portainer integration**: Deploy to self-hosted infrastructure with one push - **Development environment**: nox for task automation ## Why I Built This After setting up multiple Python projects from scratch, I noticed I was repeating the same patterns: uv for dependencies, ruff for code quality, Docker for deployment, Gitea Actions for CI/CD. Each time I'd spend hours configuring these tools. This template captures those decisions so new projects start with production-ready infrastructure on day one. ## Stack - **Python 3.12+** with uv package manager - **Quality tools**: ruff (linting), mypy (type checking), pytest (testing) - **Containerization**: Docker with multi-stage builds - **CI/CD**: Gitea Actions with automated testing and deployment - **Orchestration**: Portainer stack deployment ## Use Cases Perfect for: - Web APIs (FastAPI, Flask) - CLI tools - Background workers - Self-hosted applications ## Status Active and maintained. I use this template for all new Python projects.