/copier-project

Copier template for scaffolding new fastapi-mvc project

Primary LanguageJinjaMIT LicenseMIT

Copier Project

CI


Example generated project: fastapi-mvc/example


Copier template for scaffolding new fastapi-mvc project.

Template features

  • Generated project based on MVC architectural pattern
  • WSGI + ASGI production server
  • Generated project comes with Sphinx documentation and 100% unit tests coverage
  • Kubernetes deployment with Redis HA cluster
  • Makefile, GitHub actions and utilities
  • Helm chart for Kubernetes deployment
  • Dockerfile with K8s and cloud in mind
  • Uses Poetry dependency management
  • Includes set of Nix expressions
  • Virtualized reproducible development environment using Vagrant

Quickstart

To use this template outside fastapi-mvc:

Prerequisites:

copier copy "https://github.com/fastapi-mvc/copier-projecty.git" /path/to/your/new/project
# Or even shorter
copier copy "gh:fastapi-mvc/copier-projecty" /path/to/your/new/project

Using Nix

nix develop
copier copy "gh:fastapi-mvc/copier-project" /path/to/your/new/project

Updating

To update your generator with the changes from the upstream run:

./update.sh -x README.md

This action will not update/override your template and its configuration, but rather generators common files:

  • Nix expression files
  • README.md
  • dotfiles
  • LICENSE

List of excluded files/paths:

  • template/**
  • copier.yml
  • *.py
  • CHANGELOG.md

Lastly, you can pass extra copier CLI options should you choose:

./update.sh -x README.md --vcs-ref=custom_branch
# Or
nix run .#update -- -x README.md --vcs-ref=custom_branch