Instructions unclear. 20.11 Not working

Steps I have tried:
First Sourceforge had me download the source files with 0 instructions on how to compile them for windows or even being labeled as the source in the file name so I could save myself the 120mb DL.

Then I found the actual windows files but still NO INSTRUCTIONS. Until someone goes to the Dgraph official website there are no setup instructions available but at that point already having downloaded Dgraph (twice now) I went to the Documentation and NOT the Download page which is the ONLY place where you list any kind of “instructions” for setting up anything except docker.

However The Documentation is still extremely unclear on what you are supposed to do once you run dgraph alpha. What is this ACL that I am being asked for? Is that the reason my connection isn’t working? Must be since DBs usually require logins. So hours wasted and now I find out on the enterprise page ACL only works in enterprise mode. So obviously not.

There is also no information on what configurations I should be making to get a connection working. Only instructions are to run those 3 commands but alpha seems to throw an error and Ratel can’t connect to the server.

Sadly I can not give more information because that is as far as I have gotten and can still be certain I have followed the steps I am supposed to be following.

Your Documentation is extremely lacking in details. You are missing the what, when, where, why and how for everything related to setting up Dgraph but also Graphql.

dgraph-v20.11.0 currently has a critical bug on Windows, as pointed out here:

Hopefully the team is working on the fix. For now, you can use either Docker (which is complicated to set up, in my opinion) or previous releases of Dgraph (v20.03.x/v20.07.x). You can find those releases on their GitHub page:

Lastly, I agree that their docs needs some polishing. Sometimes, I have to go back and forth unnecessarily to get the information I really need. It is not something to get followed and understood by newcomers easily. For starter, here is the particular page you need to check out:

In a nutshell, these are the commands you need to run:

Dgraph Zero

dgraph zero

Dgraph Alpha

dgraph alpha --lru_mb 1024

Note: --lru_mb is deprecated on v20.11.x.

Dgraph Ratel


Note: This one is optional; it serves as a UI in which you can open in the browser with the address:

Do you mean We don’t use this service ever. Not sure why you have found there if so.

We really don’t compile in windows. We use a Linux machine to compile for all targets. Also, there are some steps that don’t exist in the Windows environment.

You can’t install Dgraph in Windows. You can run the binary. But if you go to GitHub - dgraph-io/Install-Dgraph: Dgraph installation scripts and run the script. You will have a similar env as Unix systems. The windows script still experimental tho.

You can also download via this link Downloads | Dgraph - there is a link there “Download” on the right top of the body of the page. Just click there and you shall have the binary.

You have to run a Zero instance and an Alpha. After that, you can run Ratel to have access to some basic stuff like queries, mutations, alter schema, and so on. If you need an intro on how to use it see

You don’t need to add anything related to ACL. See the video above and you gonna understand.

Pinging @docs guys - we have a feedback here. Please take a look.

Thanks for the great responses. A lot of these things should be clearly marked and included in all downloads. You can never assume that someone will even see your website download page when you have things like npm.

Also why is alpha at the top of the cmd and zero at the bottom? That is also confusing for someone with no documentation or experience.

How Ironic that the Dgraph talk starts by dumping on other DB systems and then does the same things even worse.

The lack of ACL in the free version really makes Dgraph useless though. I would have to be crazy to expose full access to a DB without any kind of access limitations. I was looking for something in the ways of phpmyadmin to offer to hosting customers (who often have less experience than us) for Graphql. So I guess I will be rolling my own system using GraphiQL and G2 for visualizations.

The order doesn’t really matter. They will retry until having a successful connection.

Well, the free version you have Auth in GraphQL layer, and I think that is even better for modern applications. Also, there are A LOT of things coming there that makes life really easier for newbies in GraphQL. BTW, I think that it is bad in some way cuz makes the dev dependent and too lazy. In my opinion, users should develop their own approaches. But, there it is for free.

Well, you don’t need to expose Dgraph direct to the end-user. Our main recommendations out there in tutorials is to create your own API on top of Dgraph or use GraphQL. And then isolate Dgraph behind those layers. I never saw an Android application have access to MariaDB in a remote server. It could be done, but is a crazy approach.

Also, you have Poor’s man auth which can secure the DB.

What do you mean exact? Not sure what phpmyadmin offers, as it for me is like “Ratel for MySQL”.

As I said, there are a lot of features for free in the GraphQL part. Take your time to explore it and wait for 2021 that will come more.

What is G2?

Dgraph is a database that unlike traditional DBs that communicate through proprietary TCP protocol, communicates through L7 HTTP/S or HTTP/2 (GRPC). Given that scope, even though Dgraph uses L7, one would never park a DB on the public Internet, and should always be in a private subnet.

Enterprises will often have a backend client application that communicates to a Dgraph endpoint, where both client and the Dgraph server(s) are on private subnets. A frontend or another middle-tier service or microservice could then communicate to the client.

For further security, an enterprise may optionally also use ACLs (X-Dgraph-AccessToken), possibly in conjunction with client auth using Mutual TLS. For open-source, there is also a simple auth token (sometimes called Poor Man’s auth) method (X-Dgraph-AuthToken) that can restrict alter operations (ref Securing Alter Operations). Client auth with Mutual TLS is a good combination for this later method.

If there is a need to have Dgraph accessible from the public Internet, then the recommended way is to have a reverse-proxy to do the authentication to authorize access. Dgraph would still be in a private backend network, accessible from a public frontend network explicitly from the reverse proxy server(s).

In either use case, public access or private access, Dgraph (as with other databases) should never be directly accessible to the public Internet.

Thanks to everyone for sharing your feedback on Dgraph docs overall. I also really appreciate the specific comments on how much we need to improve our docs for Dgraph users who are running Windows. I plan to circle back with an update soon, after I take a closer look at this issue.

G2 is a graph visualization language in the style of D3.js

1 Like