@@ -2,14 +2,14 @@ import NextImage from 'next/image'
2
2
import { Callout , Cards , Tabs } from ' @theguild/components'
3
3
import diagram from ' ../../../public/docs/pages/self-hosting/diagram.png'
4
4
5
- # Self-Hosting Hive
5
+ # Self-Hosting Hive Console
6
6
7
- If you are not able to use Hive Cloud service, you can self-host it. The self-hosted version is free
8
- and open-source. You can find the full
7
+ If you are not able to use the cloud provided Hive Console service, you can self-host it. The
8
+ self-hosted version is free and open-source. You can find the full
9
9
[ source code on GitHub] ( https://github.com/graphql-hive/console ) .
10
10
11
11
<Callout >
12
- ** Self-hosting Hive** does currently not support all of the features as the Cloud version.
12
+ ** Self-hosting Hive Console ** does currently not support all of the features as the Cloud version.
13
13
14
14
The following features are currently unavailable when self-hosting:
15
15
@@ -18,20 +18,24 @@ The following features are currently unavailable when self-hosting:
18
18
19
19
</Callout >
20
20
21
+ If you're interested in hosting one of our gateway solutions, see the documentation for
22
+ [ Hive Router] ( https://github.com/graphql-hive/router?tab=readme-ov-file#hive-router-rust ) or
23
+ [ Hive Gateway] ( https://the-guild.dev/graphql/hive/docs/gateway ) .
24
+
21
25
## Pre-Requisites
22
26
23
- The easiest way of running GraphQL Hive is using [ Docker] ( https://www.docker.com/ ) and
27
+ The easiest way of running Hive Console is using [ Docker] ( https://www.docker.com/ ) and
24
28
[ docker-compose] ( https://docs.docker.com/compose/ ) .
25
29
26
- All the services required for running GraphQL Hive are published to the GitHub container registry
30
+ All the services required for running Hive Console are published to the GitHub container registry
27
31
([ GraphQL Hive Docker Images] ( https://github.com/orgs/graphql-hive/packages ) ).
28
32
29
33
Please make sure to install the Docker daemon as well as ` docker-compose ` on your machine before
30
34
proceeding.
31
35
32
36
## Self-Hosting Architecture
33
37
34
- When self-hosting GraphQL Hive, you are responsible for running and maintaining the following
38
+ When self-hosting Hive Console , you are responsible for running and maintaining the following
35
39
components:
36
40
37
41
- [ PostgreSQL database] ( https://www.postgresql.org/ )
@@ -56,7 +60,7 @@ ClickHouse) and storage (S3) with managed database/storage (Cloud-based or in-ho
56
60
57
61
### Architecture Diagram
58
62
59
- The following diagram shows the architecture of a self-hosted GraphQL Hive instance:
63
+ The following diagram shows the architecture of a self-hosted Hive Console instance:
60
64
61
65
<NextImage
62
66
alt = " Self-hosting diagram"
@@ -90,22 +94,22 @@ The following diagram shows the architecture of a self-hosted GraphQL Hive insta
90
94
#### Microservices
91
95
92
96
- ** SuperTokens** : an open-source project used for authentication and authorization.
93
- - ` webapp ` : the main GraphQL Hive web application.
94
- - ` server ` : the main GraphQL Hive server, responsible for serving the GraphQL API and orchestrating
97
+ - ` webapp ` : the main Hive Console web application.
98
+ - ` server ` : the main Hive Console server, responsible for serving the GraphQL API and orchestrating
95
99
calls to other services.
96
100
- ** CDN** : a custom CDN service, responsible for serving the GraphQL schema artifacts. In
97
101
self-hosted architecture, the CDN is provided as part of the ` server ` .
98
- - ` schema ` : the GraphQL Hive schema service, responsible for validating, composing and building
102
+ - ` schema ` : the Hive Console schema service, responsible for validating, composing and building
99
103
GraphQL schemas.
100
- - ` tokens ` : the GraphQL Hive tokens service, responsible for generating and validating tokens.
101
- - ` usage ` : the GraphQL Hive usage service, responsible for receiving usage data from a running
104
+ - ` tokens ` : the Hive Console tokens service, responsible for generating and validating tokens.
105
+ - ` usage ` : the Hive Console usage service, responsible for receiving usage data from a running
102
106
GraphQL server, and prepare them for processing.
103
- - ` usage-ingestor ` : the GraphQL Hive usage-ingestor service, responsible for processing usage data
107
+ - ` usage-ingestor ` : the Hive Console usage-ingestor service, responsible for processing usage data
104
108
and storing them in ClickHouse.
105
- - ` emails ` : the GraphQL Hive emails service, responsible for sending emails.
106
- - ` webhooks ` : the GraphQL Hive webhooks service, responsible for sending webhooks to external
109
+ - ` emails ` : the Hive Console emails service, responsible for sending emails.
110
+ - ` webhooks ` : the Hive Console webhooks service, responsible for sending webhooks to external
107
111
services.
108
- - ` policy ` : the GraphQL Hive policy service, responsible for validating and enforcing schema
112
+ - ` policy ` : the Hive Console policy service, responsible for validating and enforcing schema
109
113
policies.
110
114
111
115
#### Utility services
@@ -122,15 +126,15 @@ following utility services:
122
126
123
127
## Quick Start Video
124
128
125
- In this video you will learn how to run GraphQL Hive and publish your first schema on your machine
129
+ In this video you will learn how to run Hive Console and publish your first schema on your machine
126
130
in less than 15 minutes.
127
131
128
132
<iframe
129
133
src = " https://www.youtube.com/embed/H57aej4cW2I"
130
134
title = " GraphQL Hive Self-Hosted Quick Start"
131
135
/>
132
136
133
- ## Running GraphQL Hive
137
+ ## Running Hive Console
134
138
135
139
First download the ` docker-compose.community.yml ` file from the
136
140
[ GitHub repository] ( https://github.com/graphql-hive/console/blob/main/docker/docker-compose.community.yml )
@@ -168,7 +172,7 @@ for running Hive locally in a self hosted environment. But before we can spin it
168
172
to set some environment variables.
169
173
170
174
<Callout >
171
- ** Docker images** are built and published for each version of GraphQL Hive and tagged accordingly.
175
+ ** Docker images** are built and published for each version of Hive Console and tagged accordingly.
172
176
You can find all the available versions on the [ GitHub Releases page prefixed with ` hive@ ` ] ( https://github.com/graphql-hive/console/releases ) .
173
177
174
178
We recommend sticking to a specific version to avoid breaking changes. The ` latest ` version
@@ -213,7 +217,7 @@ docker compose -f docker-compose.community.yml config > docker-compose.with-env.
213
217
214
218
</Callout >
215
219
216
- After setting the environment variables, pull the required images for GraphQL Hive services. This's
220
+ After setting the environment variables, pull the required images for Hive Console services. This's
217
221
going to take some time if you're doing it for the first time.
218
222
219
223
``` bash
@@ -222,7 +226,7 @@ docker compose -f docker-compose.community.yml pull
222
226
docker compose -f docker-compose.with-env.yml pull
223
227
```
224
228
225
- After it's done, you can start the GraphQL Hive services using ` docker compose ` .
229
+ After it's done, you can start the Hive Console services using ` docker compose ` .
226
230
227
231
``` bash
228
232
docker compose -f docker-compose.community.yml up
@@ -232,7 +236,7 @@ docker compose -f docker-compose.with-env.yml up
232
236
233
237
Wait until all the services are up and running.
234
238
235
- Congratulations 🥳, you just started your own GraphQL Hive instance.
239
+ Congratulations 🥳, you just started your own Hive Console instance.
236
240
237
241
You'll notice the folder named ` .hive ` at your root directory that has been mounted from docker
238
242
representing the volumes for the different storages used by Hive services like ` postgres ` and
@@ -242,19 +246,19 @@ representing the volumes for the different storages used by Hive services like `
242
246
> Note: deleting this directory will end up with a loss of data, as this directory is acting as a
243
247
> volume for storing the data from Hive dependencies: database and storage
244
248
245
- ## Testing GraphQL Hive
249
+ ## Testing Hive Console
246
250
247
- Visit ` http://localhost:8080 ` in your browser and start using GraphQL Hive! The usage reporting
251
+ Visit ` http://localhost:8080 ` in your browser and start using Hive Console ! The usage reporting
248
252
endpoint is bound to ` http://localhost:8081 ` . The GraphQL API is bound to ` http://localhost:8082 ` .
249
253
The artifacts bucket is bound to ` http://localhost:8083 ` .
250
254
251
- Firstly, you can head to ` http://localhost:8080 ` in your browser and start using GraphQL Hive!
255
+ Firstly, you can head to ` http://localhost:8080 ` in your browser and start using Hive Console !
252
256
You'll need to Sign Up for an account by inputting your email and password. And once you do you'll
253
257
see your personal organization that has been automatically created for you by default.
254
258
255
259
### Creating first project and target
256
260
257
- Now that we have GraphQL Hive setup locally, signed up and logged into our dashboard. We can start
261
+ Now that we have Hive Console setup locally, signed up and logged into our dashboard. We can start
258
262
creating our first project which we're going to push graphql schemas to.
259
263
260
264
So you're going to click on the ` Create a Project ` button on the top right, give it a name and
@@ -351,7 +355,7 @@ the `hive.json` config file then add the following contents, while replacing the
351
355
}
352
356
```
353
357
354
- Now we're all setup to use the GraphQL Hive CLI against our Setup!
358
+ Now we're all setup to use the Hive CLI against our Setup!
355
359
356
360
We can publish our first schema by using:
357
361
@@ -372,19 +376,19 @@ Go to the `Schema` tab in your project target and you're going to see your lates
372
376
373
377
## Next Steps
374
378
375
- After doing your first testing with GraphQL Hive you should consider the following steps:
379
+ After doing your first testing with Hive Console you should consider the following steps:
376
380
377
381
- Evaluate whether you want to run Databases yourself within Docker or instead use a managed
378
382
database service.
379
383
- Set up backups for your data.
380
- - Set up a CD pipeline for deploying GraphQL Hive to your Cloud Provider or bare-metal server of
384
+ - Set up a CD pipeline for deploying Hive Console to your Cloud Provider or bare-metal server of
381
385
choice (e.g. a Kubernetes cluster or Docker Swarm)
382
- - Set up a monitoring solution for your GraphQL Hive instance (leverage healthchecks, sentry error
386
+ - Set up a monitoring solution for your Hive Console instance (leverage healthchecks, sentry error
383
387
reporting, prometheus metrics, etc.).
384
388
- Configure the ` emails ` service to use a real email provider (by default it uses ` sendmail ` ).
385
- - Watch and follow the [ GraphQL Hive GitHub repository] ( https://github.com/graphql-hive/console ) for
389
+ - Watch and follow the [ Hive Console GitHub repository] ( https://github.com/graphql-hive/console ) for
386
390
new releases and updates.
387
- - Set up a weekly reminder for updating your GraphQL Hive instance to the latest version and
391
+ - Set up a weekly reminder for updating your Hive Console instance to the latest version and
388
392
applying maintenance.
389
393
- Get yourself familiar with SuperTokens and follow their changelogs in order to keep your
390
394
SuperTokens instance up-to-date.
0 commit comments