Spaces:
No application file
No application file
| --- | |
| title: 'Fly.io' | |
| description: 'Deploy your RAG application to fly.io platform' | |
| --- | |
| Embedchain has a nice and simple abstraction on top of the [Fly.io](https://fly.io/) tools to let developers deploy RAG application to fly.io platform seamlessly. | |
| Follow the instructions given below to deploy your first application quickly: | |
| ## Step-1: Install flyctl command line | |
| <CodeGroup> | |
| ```bash OSX | |
| brew install flyctl | |
| ``` | |
| ```bash Linux | |
| curl -L https://fly.io/install.sh | sh | |
| ``` | |
| ```bash Windows | |
| pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex" | |
| ``` | |
| </CodeGroup> | |
| Once you have installed the fly.io cli tool, signup/login to their platform using the following command: | |
| <CodeGroup> | |
| ```bash Sign up | |
| fly auth signup | |
| ``` | |
| ```bash Sign in | |
| fly auth login | |
| ``` | |
| </CodeGroup> | |
| In case you run into issues, refer to official [fly.io docs](https://fly.io/docs/hands-on/install-flyctl/). | |
| ## Step-2: Create RAG app | |
| We provide a command line utility called `ec` in embedchain that inherits the template for `fly.io` platform and help you deploy the app. Follow the instructions to create a fly.io app using the template provided: | |
| ```bash Install embedchain | |
| pip install embedchain | |
| ``` | |
| ```bash Create application | |
| mkdir my-rag-app | |
| ec create --template=fly.io | |
| ``` | |
| This will generate a directory structure like this: | |
| ```bash | |
| βββ Dockerfile | |
| βββ app.py | |
| βββ fly.toml | |
| βββ .env | |
| βββ .env.example | |
| βββ embedchain.json | |
| βββ requirements.txt | |
| ``` | |
| Feel free to edit the files as required. | |
| - `Dockerfile`: Defines the steps to setup the application | |
| - `app.py`: Contains API app code | |
| - `fly.toml`: fly.io config file | |
| - `.env`: Contains environment variables for production | |
| - `.env.example`: Contains dummy environment variables (can ignore this file) | |
| - `embedchain.json`: Contains embedchain specific configuration for deployment (you don't need to configure this) | |
| - `requirements.txt`: Contains python dependencies for your application | |
| ## Step-3: Test app locally | |
| You can run the app locally by simply doing: | |
| ```bash Run locally | |
| pip install -r requirements.txt | |
| ec dev | |
| ``` | |
| ## Step-4: Deploy to fly.io | |
| You can deploy to fly.io using the following command: | |
| ```bash Deploy app | |
| ec deploy | |
| ``` | |
| Once this step finished, it will provide you with the deployment endpoint where you can access the app live. It will look something like this (Swagger docs): | |
| You can also check the logs, monitor app status etc on their dashboard by running command `fly dashboard`. | |
| <img src="/images/fly_io.png" /> | |
| ## Seeking help? | |
| If you run into issues with deployment, please feel free to reach out to us via any of the following methods: | |
| <Snippet file="get-help.mdx" /> | |