Documentation Index
Fetch the complete documentation index at: https://docs.valyent.cloud/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints.
Prerequisites
- a UNIX-like system (see WSL if you are using Windows), in order to use the Valyent CLI
- a Valyent account, with a registered payment method (you can sign up here)
- Python3 and installed on your machine
Installing the CLI
curl -L https://cli.valyent.cloud | sh
You can inspect the installation script here and the GitHub repository.
Authenticating
Initializing the project
In the first place, we are going to install FastAPI dependencies.
You can refer to the official documentation for more information.
pip install "fastapi[standard]"
Then, we can scaffold a new FastAPI project :
mkdir fastapi-app && cd fastapi-app && touch main.py
Make sure to create a requirements.txt file, in order to install the dependencies in the Docker image :
pip freeze > requirements.txt
In the main.py file, we can add the following code :
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
Now, we can initialize the valyent.toml configuration file, that allows to link the local codebase, to a Valyent application :
This command will ask you to select/create a project and an associated application.
Adding the Dockerfile
Let’s add a Dockerfile so that Valyent can build a Docker image for your application.
We can fill it with the following Dockerfile (coming from here) :
# Stage 1: Builder
FROM python:3.13 AS builder
WORKDIR /code
# Install dependencies
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# Stage 2: Runtime
FROM python:3.13-slim AS runtime
WORKDIR /code
# Copy only necessary files from the builder stage
COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
# Copy the application code
COPY ./ /code/
CMD ["fastapi", "run", "--host", "0.0.0.0", "--port", "80"]
Deploy the project
To expose the application’s port, we need to set up a gateway (in this case, the port 80):
Then, we can deploy the application :
Then, you can type the following:
to test your FastAPI application in your browser.