Deploy from source
If you don't have access to Docker or don't want to use it, you can still run Grai using sqlite. This is not recommended for production use, but it's fine for development purposes.
Insure the machine you're attempting to run Grai on has access to all of the following
- Access to Grai's source code
- Python 3.8 or higher
This guide is not intended for production use. We primarily support containerized deployments using docker and kubernetes and we generally recommend you use one of those methods. If you're unable to use either this guide can be helpful for development purposes though it will not represent a fully functional Grai deployment as it does not include dependencies like celery and redis.
You'll first need to clone Grai's source code. You can do this with the following command:
git clone https://www.github.com/grai-io/grai-core cd grai-core
You'll need to install Grai's server dependencies.
If you have
pip installed, you can do this with the following command:
cd grai-server pip install .
The server dependencies are now ready.
It might be convenient to create a
.env file in the
grai-core/grai-server/app directory with the
variable set to
django.db.backends.sqlite3. That way you won't need to run export in every new shell you open.
We will be using sqlite for the database where by default Grai uses postgres so we will need to set the environment
We can now runt the development server.
cd app python manage.py runserver --settings the_guide.settings.dev --nostatic
At this point you should see a message indicating that the server is running on port 8000 and that you have unapplied migrations.
Our next step is to run the migrations.
To do that you'll need to open a new shell in the app directory and run the following command (don't forget to set the
DB_ENGINE env variable):
python manage.py migrate --settings the_guide.settings.dev
Finally, we need to create a superuser so we can log into the admin panel.
python manage.py createsuperuser --settings the_guide.settings.dev
You should now be able to load the admin panel at
http://localhost:8000/admin and log in with the credentials you just created.
It's unlikely the web app will function without redis, however, you should be able to see the login screen. The server on the other hand, ought to function just fine, allowing you to run integrations and retrieve results using the API, CLI, and integration libraries.
We will now move over to building and deploying the web app. Start by moving to the web app directory.
You can install the web apps dependencies with npm.
You are now ready to run web app with npm.
npm run start
The web app will now be available and running at http://localhost:3000 (opens in a new tab).
If you're a truly motivated person you can deploy redis to get the web app working. Redis provides canonical documentation for deployment from source on their website (opens in a new tab).
The server will look for an instance of redis running on port
6379 by default.