Embedded ES, web ui not working

I searched through the group here and tried various steps, but to no avail.

From a console app, starting ES embedded. Also starting OWIN/Nancy. Running as admin. Firewall off. Using NuGet packages, v3.0.2.

ES web ui answers every HTTP request with 404. (e.g. GET http://192.168.0.120:7763/)

I was able to get it to redirect and ask me for a password when I sent a request to:

GET http://192.168.0.120:7763/streams/$all

It asks me to authenticate, and then redirects me to:

http://192.168.0.120:7763/web/index.html#/streams/undefined

which responds with 404

I tried both in-memory and using local disk.

I also tried using default endpoints, same effect.

What am I doing wrong?

Nancy is hosted on a different port obviously, and it does answer requests.

See clusternode and how it sets it up.

Running as single node.

you may have to deploy the static files found in the official server downloads relative to where your web site is. I’m thinking that the GES build should embed these files as part of the build and use them if it can’t find anything on disk. @greg @jen20 any thoughts?

Let me rephrase. See clusternode source

https://github.com/EventStore/EventStore/blob/dev/src/EventStore.ClusterNode/Program.cs#L152

Better?

Greg

Not sure what I’m looking at/for in your link. I’m building with this code:

EmbeddedVNodeBuilder.AsSingleNode()
.RunOnDisk(config.EventStore.LocalDataPath)
.WithExternalTcpOn(new IPEndPoint(ipAddress, config.EventStore.ExtTcpPort))
.WithInternalTcpOn(new IPEndPoint(ipAddress, config.EventStore.IntTcpPort))
.WithExternalHttpOn(new IPEndPoint(ipAddress, config.EventStore.ExtHttpPort))
.WithInternalHttpOn(new IPEndPoint(ipAddress, config.EventStore.IntHttpPort))
//.AddHttpPrefix(sprintf “%s/” esUrl)
//.AddHttpPrefix(sprintf “http://%s:%i/” Environment.MachineName config.EventStore.ExtHttpPort)
.Build()

``

I’m not specifically disabling the admin ui, and I don’t see an overload to specifically enable it.

Ok, so João’s comment was on the right track. From Greg’s very helpful “go find it yourself in the code” answer, I found the following:

Can’t find the file in the local path.

https://github.com/EventStore/EventStore/blob/master/src/EventStore.Core/Util/MiniWeb.cs#L76

Where’s the local path? AppDomain.CurrentDomain.BaseDirectory + @“clusternode-web”

https://github.com/EventStore/EventStore/blob/master/src/EventStore.Core/Services/Transport/Http/Controllers/ClusterWebUIController.cs#L28

So I have to copy the static files to the folder “clusternode-web” in my project.

For static files yes.

As to my “very helpful answer” I pointed you to pretty much the e act line of code that sets up the http ui. As of a few months ago it wasn’t done by embedded you had to register the ui controller yourself whichever is what I figure you needed to do. Still not sure where that is happening in embedded if at all https://github.com/EventStore/EventStore/blob/dev/src/EventStore.ClientAPI.Embedded/EmbeddedVNodeBuilder.cs#L676 embeddedvnodebuilder doesn’t seem to include the ui

As I said my guess is you need to register the controller.

Sorry about that. It’s been one of those mornings.

Anyway, thanks for the info. Yes, I included the static files and it still isn’t working. I figured it was wiring up the admin UI since it was doing the redirect, but I guess that’s built into the stream api, nothing to actually do with the admin UI.

I’ll explore more with getting the admin UI going. I suppose it’s not strictly necessary ultimately, but would be nice.

Well, using that exact code you first linked Greg, and with the static files, it worked.

I wasn’t able to wire up the Users controller. It looks like I will have to bring in the EventStore.Web.dll manually, as it does not appear to be merged into EventStore.ClientAPI.Embedded.dll.

I am just passing in an empty array for the subsystems, since I’m not using projections. Cued in on that from this code:

https://github.com/EventStore/EventStore/blob/dev/src/EventStore.ClusterNode/Program.cs#L143