Service auto-hébergé
fastapi/full-stack-fastapi-template avatar
fastapi/full-stack-fastapi-template

Full Stack FastAPI Template : un projet de démarrage FastAPI et React à forker

Modèle d'application web full-stack prêt pour la production combinant un backend FastAPI, un frontend React et TypeScript, PostgreSQL, Docker, l'authentification JWT et HTTPS automatique.

45 572 étoiles9 062 forksTypeScriptMIT
GitHub

En bref

De quoi s’agit-il ?
Un modèle qui combine FastAPI, React, SQLModel, PostgreSQL, Docker Compose et GitHub Actions dans un seul dépôt.
À qui s’adresse-t-il ?
Le modèle est un point de départ pratique pour un projet FastAPI et React, avec Docker Compose et GitHub Actions déjà en place et deux méthodes documentées pour commencer : cloner ou Copier. Pour décider, vérifiez Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 12 jours.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un modèle conçu pour être forké

Le dépôt est un modèle d'application web full stack. Le README indique que vous pouvez simplement forker ou cloner ce dépôt et l'utiliser tel quel. Il combine un backend Python construit avec FastAPI, SQLModel, Pydantic et PostgreSQL avec un frontend React utilisant TypeScript, Vite, Tailwind CSS et shadcn/ui. Le frontend est intégré à l'image backend et servi par FastAPI sur le même domaine que l'API. Les métadonnées de langue du dépôt indiquent TypeScript, ce qui correspond à la pile frontend. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Cette distinction permet de relier la fonction annoncée à une décision technique précise, sans attribuer au projet des garanties absentes de sa documentation.

Composants backend et frontend

Le backend utilise FastAPI pour l'API, SQLModel pour les interactions avec la base de données SQL en Python, Pydantic pour la validation des données et la gestion des paramètres, et PostgreSQL comme base de données. Le frontend utilise React avec TypeScript, les hooks, Vite, Tailwind CSS et les composants shadcn/ui. Un client frontend généré automatiquement, Playwright pour les tests de bout en bout et la prise en charge du mode sombre sont inclus. Pour l'authentification, le modèle inclut un hachage de mot de passe sécurisé par défaut, l'authentification JWT et la récupération de mot de passe par e-mail. Mailcatcher est utilisé pour les tests de messagerie locaux pendant le développement. Les tests sont exécutés avec Pytest. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Le périmètre est donc clair: les éléments décrits sont vérifiables dans le dépôt, alors que les performances et la compatibilité non documentées restent à établir dans votre contexte.

Docker Compose et outils de déploiement

Docker Compose est utilisé pour le développement et la production. Traefik est inclus comme reverse proxy et équilibreur de charge, et les instructions de déploiement expliquent comment configurer Traefik pour gérer les certificats HTTPS automatiques. GitHub Actions fournit des pipelines CI/CD. Le README contient des badges pour Test Docker Compose, Test Backend et Coverage, mais le contenu des workflows n'est pas décrit dans le README principal. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Cette distinction permet de relier la fonction annoncée à une décision technique précise, sans attribuer au projet des garanties absentes de sa documentation.

Créer un projet privé à partir du modèle

GitHub ne permet pas de modifier la visibilité d'un fork, donc le README donne une procédure manuelle pour créer un projet privé. Vous clonez ce dépôt dans un nouveau répertoire avec un nouveau nom, changez le remote origin vers votre nouveau dépôt, ajoutez ce dépôt comme remote upstream, puis poussez vers origin. Ensuite, vous pouvez récupérer les mises à jour avec git pull --no-commit upstream master, résoudre les conflits dans votre éditeur et valider avec git merge --continue. Ces commandes figurent dans le README. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Le périmètre est donc clair: les éléments décrits sont vérifiables dans le dépôt, alors que les performances et la compatibilité non documentées restent à établir dans votre contexte.

Configuration et clés secrètes

Avant le déploiement, le README demande de modifier au moins SECRET_KEY, FIRST_SUPERUSER_PASSWORD et POSTGRES_PASSWORD dans les fichiers .env. La valeur par défaut de plusieurs variables est changethis. Le README recommande de transmettre ces valeurs comme variables d'environnement à partir de secrets. Pour générer des clés secrètes, il fournit cette commande : python -c "import secrets; print(secrets.token_urlsafe(32))". Vous l'exécutez à nouveau pour chaque clé. Le README ne mentionne aucun service de gestion de secrets spécifique. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Cette distinction permet de relier la fonction annoncée à une décision technique précise, sans attribuer au projet des garanties absentes de sa documentation.

Génération de projet avec Copier

Au lieu de cloner, vous pouvez générer un nouveau projet avec Copier. Le README montre l'installation de Copier avec pip install copier ou, si vous utilisez pipx, pipx install copier. Ensuite, exécutez copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust. L'option --trust est nécessaire car un script post-création met à jour vos fichiers .env. Copier demande des variables d'entrée telles que project_name, stack_name, secret_key, first_superuser, first_superuser_password, smtp_host, smtp_user, smtp_password, emails_from_email, postgres_password et sentry_dsn. Les valeurs par défaut incluent changethis pour secret_key et first_superuser_password, et des chaînes vides pour les paramètres SMTP et Sentry. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Le périmètre est donc clair: les éléments décrits sont vérifiables dans le dépôt, alors que les performances et la compatibilité non documentées restent à établir dans votre contexte.

Fichiers de documentation et licence MIT

Le README renvoie à une documentation séparée pour le backend, le frontend, le déploiement, le développement et les notes de version. Les détails de déploiement, y compris la configuration HTTPS automatique avec Traefik, se trouvent dans deployment.md. Le modèle est sous licence MIT, avec un copyright attribué à Sebastián Ramírez. Cette licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition que l'avis de droit d'auteur soit inclus. Le logiciel est fourni tel quel, sans garantie. Le texte de la licence ne traite pas du support, des garanties de sécurité ou de la préparation à la production. Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. Cette distinction permet de relier la fonction annoncée à une décision technique précise, sans attribuer au projet des garanties absentes de sa documentation.

Conclusion éditoriale

Le modèle est un point de départ pratique pour un projet FastAPI et React, avec Docker Compose et GitHub Actions déjà en place et deux méthodes documentées pour commencer : cloner ou Copier. Pour décider, vérifiez Le parcours Copier passe par `copier copy https://github.com/fastapi/full-stack-fastapi-template my-awesome-project --trust`; les clés `SECRET_KEY`, `FIRST_SUPERUSER_PASSWORD` et `POSTGRES_PASSWORD` doivent remplacer `changethis`. Le développement associe `docker compose`, Vite et FastAPI, tandis que Mailpit permet d observer les courriels sans les envoyer. dans un environnement de test avant de l intégrer à votre flux.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté