Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fastapi-mvc/copier-project

Copier template for scaffolding new fastapi-mvc project
https://github.com/fastapi-mvc/copier-project

copier copier-template fastapi fastapi-template project-template python scaffolding

Last synced: about 2 months ago
JSON representation

Copier template for scaffolding new fastapi-mvc project

Awesome Lists containing this project

README

        

# Copier Project

[![CI](https://github.com/fastapi-mvc/copier-project/actions/workflows/main.yml/badge.svg)](https://github.com/fastapi-mvc/copier-project/actions/workflows/main.yml)

---

**Example generated project**: [fastapi-mvc/example](https://github.com/fastapi-mvc/example)

---

Copier template for scaffolding new [fastapi-mvc](https://github.com/fastapi-mvc/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:

* Python 3.8 or later [How to install python](https://docs.python-guide.org/starting/installation)
* Git 2.27 or newer
* copier 6.2.0 or later

```shell
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

```shell
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](https://github.com/fastapi-mvc/copier-generator) run:

```shell
./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:

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