46 lines
1.3 KiB
Nix
46 lines
1.3 KiB
Nix
{
|
|
description = "FastAPI with Cloud Firestore development environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
# Python with required packages
|
|
pythonEnv = pkgs.python312.withPackages (ps: with ps; [
|
|
fastapi
|
|
uvicorn
|
|
google-cloud-firestore
|
|
pydantic
|
|
python-dotenv
|
|
]);
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
pythonEnv
|
|
git
|
|
curl
|
|
];
|
|
|
|
shellHook = ''
|
|
echo "FastAPI + Firestore development environment"
|
|
echo ""
|
|
echo "Python: $(python --version)"
|
|
echo "Packages: fastapi, uvicorn, google-cloud-firestore, pydantic"
|
|
echo ""
|
|
echo "Quick start:"
|
|
echo " 1. Place your serviceAccountKey.json in this directory"
|
|
echo " 2. Create main.py with your FastAPI app"
|
|
echo " 3. Run: uvicorn main:app --reload"
|
|
echo ""
|
|
'';
|
|
};
|
|
});
|
|
}
|