Hasura GraphQL Installation
How to Install Hasura GraphQL Engine
Hasura is an open-source GraphQL engine for PostgreSQL-based applications. It can connect to PostgreSQL, manage database access, configure event triggers, and expose GraphQL APIs. This guide covers both automatic deployment with a local PostgreSQL database and manual deployment with an external PostgreSQL database.
Automatic Deployment with Local PostgreSQL Database
Open Marketplace
Log in to the platform dashboard and click Marketplace at the top-left corner.

Install Docker Engine CE
Search for Docker Engine CE and start its installation.

Deploy Hasura and PostgreSQL from compose.yml
Select Deploy containers from compose.yml to create Hasura and PostgreSQL in the same container setup. Use the default Hasura Docker Compose configuration from the Hasura Docker repository.
https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/docker-compose/docker-compose.yaml

Public IP is required
The documented automatic installation requires a public IP. The source documentation notes that this is a paid option available to billing users.
Configure the remaining Environment, Display Name, and Region fields as required, then click Install.
Open the Hasura console
After installation completes, open the Hasura console at:
http://{envDomain}:8080/console

Use the Data tab to add or manage PostgreSQL data and then test GraphQL queries through the Hasura interface.
Manual Deployment with External PostgreSQL Database
If a PostgreSQL database already exists, Hasura can be deployed separately and connected to that external database.
Create a standalone Docker Engine CE
Install a clean standalone Docker Engine CE container from Marketplace.

Create the Hasura start script
Connect to the Docker container through Web SSH and create a file such as docker-run.sh.
docker run -d --restart=always -p 80:8080 \
-e HASURA_GRAPHQL_DATABASE_URL=postgres://{username}:{password}@{host}/{dbname} \
-e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
-e HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey \
hasura/graphql-engine:v1.0.0

Docker Command Parameters
myadminsecretkey.Run the script
Make the script executable and execute it:
chmod +x docker-run.sh ./docker-run.sh

You can also run the following command to verify that the Hasura service is running:
docker ps
Access and Use the Hasura Console
In the source manual example, Hasura is exposed through port 80, so Open in Browser can redirect directly to the application. If another port is used, add the required port to the environment URL.
When prompted, enter the configured admin secret. In the source example:
myadminsecretkey

You can now work with the connected PostgreSQL database through the GraphQL API, for example from the GraphiQL tab.
Existing PostgreSQL tables
If the database already contains tables, open the Data tab and enable tracking for the tables that Hasura should expose.


Alternatively, use the GraphQL Endpoint shown at the top of the Hasura page to send POST requests from another application, tool, or script.
Expected Result
Hasura GraphQL Engine is running either together with a local PostgreSQL database through Docker Compose or as a separate Docker container connected to an existing PostgreSQL database. The Hasura console is accessible, protected by an admin secret when configured, and can expose tracked PostgreSQL tables through GraphQL.
Important Notes
- The source guide documents two deployment methods: automatic deployment with local PostgreSQL and manual deployment with external PostgreSQL.
- The automatic Docker Compose deployment requires a public IP.
- The documented automatic console URL uses port
8080. - Special characters in
HASURA_GRAPHQL_DATABASE_URLmust be URL-encoded. - The source manual example maps Docker port
80to Hasura port8080. - The source tutorial uses
myadminsecretkeyonly as an example admin secret. - Existing PostgreSQL tables must be tracked from the Hasura Data tab before they are exposed through Hasura.
- The source tutorial uses the Docker image
hasura/graphql-engine:v1.0.0.
