Running Neo4j Desktop on Chrome OS

Has anyone tried using Neo4j Desktop on Chrome OS?

I have deployed on GCP and used Codesandbox, but am interested in working locally on Chrome OS, particularly when I do not have internet access. I have a Macbook Pro (older 15" that isn't easy to travel with) that is my main machine, but I also have a Samsung Chromebook Plus that I have on me frequently.

I know that Chrome OS is still being developed, but I thought it might be possible with running Linux apps.

I doubt that this will work. According to https://github.com/electron/electron/issues/12712 electron apps do not work on ChromeOS. Neo4j Desktop is basically an electron app.

However you might be able to run a virtual machine on your ChromeOS and install Neo4j Desktop inside. Maybe https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/running-virtual-machines-on-your-chromebook contains some pointers.

I will check that out. I figured it might not be quite possible yet, but I am hopeful this could change in the future.

@stefan.armbruster Just following up to see if there has been any changes? I know running Linux apps on ChromeOS devices has taken a few steps forward in the past few months.

If it can be loaded and running on ChromeOS that is a good first step. The real concern I would then have would be the limited RAM on most Chromebooks.

@mckenzma Unfortunately I haven't heard of anything regarding Chrome OS. Did you check if Electron is now supported?

Just to chime in, got it set up and working today on pixelbook. I guess it's easy now it ships with a linux VM, so you just run copy the linux distribution over to that and it boots up as expected and seems to be working just fine!

2 Likes

That's excellent! What are the specs on your pixelbook? Also, what is your dev environment on that like? I am curious about your workflow.

Actually turned into more of a challenge than I'd hoped.

Kinda curious what's most useful specs-wise, but what i see:

  • Chrome version 81.0.4044.94
  • Linux x86-64
  • Intel Core i5 @ 1.2GHz
  • 8 GB ram
    As far as dev environment. I have code-server running on my linux VM and work through a chrome shortcut (so it opens like an app) in essence it just feels like vscode. Took me a while to get it working satisfactorily, but got there in the end!

The desktop version would grind the computer to a halt when opening the app for the first time or starting up a graph, but once it settled seems workable. The only issue was that I was struggling to connect to the server via chrome which i thought might lead to a better experience using it (rather than through a linux window). Not an issue if i was just playing around, but if i wanted to start making requests from code i was going to run into issues if i can't connect to the db.

In the end i decided to try and get neo4j running without the desktop version, but honed in on the issues connecting across to the VM because of (as far as i can tell) how crostini exposes ports (??). It seems like a common issue in the chromeos community so i gave up after a couple hours of wrestling. The best i could get to was access to the portal, but the auth server (bolt?) seemed to just hang.

Finally, decided to explore just using heroku to run a remote server to handle things which I'd say gave me the best long-term workflow, but something like this would obviously involve costs and admin that i'd rather not deal with if i'm just playing around.

I've only just started exploring how i'd use neo4j and have concluded i'd be using it for bursts of manual exploration and building so will probably work with it through the sandbox and store versions of the graphs to re-initialise in each session. Once I'm wanting to work with something linked to an app, I guess I'll have to go the hosted route sooner than I'd otherwise like.

Hope that makes some sense. I'm rather wedded to my dev flow on my chromebook nowadays and am constantly amazed by the pain i'm willing to go through to keep working on it! I think i need a better understanding of how to bridge across from chromos to the linux vm. it's probably just my lack of network skills that is preventing it working, but i guess connecting to anything remotely comes with a whole set of challenges and it does seem like the chromeos at large is frustrated by these sort of issues.

On writing this I decided to test run the desktop client after being more familiar with neo4j in general, and it really does work great after the initial set up and only seems to suck up resources when starting up a new graph. With hindsight, the only issue is working out how to open the server for remote connections which is probably a more standard issue than I'm making it.

It's funny the amount of dust working on a different setup can through up. Makes it harder to pinpoint where the issue is!

I'm just having another crack at getting this hooked up properly.

Yep, so i can get to the browser no problem, but it's authenticating that causes the issue.

neo4j-driver.chunkhash.bundle.js:1 WebSocket connection to 'ws://penguin.linux.test:7687/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
r @ neo4j-driver.chunkhash.bundle.js:1

Think I'll tap out for the time being, and will have another crack when I need it!

You should write a blog post about how you get this working. I have been working primarily with a Macbook Pro, but have been interested in getting dev working on a Chromebook. I have a Samsung Chromebook Plus (only 4 GB) which might just choke up trying to get neo4j running.