[HN Gopher] Show HN: Neko - Self hosted virtual browser that run...
___________________________________________________________________
Show HN: Neko - Self hosted virtual browser that runs in Docker and
uses WebRTC
Author : m1k1o
Score : 135 points
Date : 2021-12-01 17:04 UTC (5 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| kitd wrote:
| Just FYI, Neko is also the name of the VM for the Haxe language:
|
| https://haxe.org/manual/target-neko.html
| SavantIdiot wrote:
| It's also a 30-year-old X app that draws a cat which chases
| your cursor.
|
| https://en.wikipedia.org/wiki/Neko_(software)
| throwaway413 wrote:
| Great project, thanks for sharing. Also in this space is Mighty
| (https://mightyapp.com). I believe streaming GUIs is the future
| of the web. We are already seeing this take off with cloud gaming
| like Stadia. Imagine a truly unified auth identity or in memory
| db that can communicate and share info across unrelated webapps,
| or browser macros that brings browser automation capability to
| the end user for their daily surfing. Or, a truly portable web OS
| that can operate across any device as a fullscreen PWA, complete
| with FS capability to the underlying Docker box, and access to
| your files and data across any instance.
| xemoka wrote:
| "Taking off" and "Stadia" in the same sentence seems... out of
| touch. Interesting ideas all around, and great engineering
| challenges. But these things aren't rocketing into the
| stratosphere of public acceptance and adoption.
| throwaway413 wrote:
| Hah, fair enough, didn't realize it when typing it out but
| you're right on Stadia not exactly being a rocket ship. Hey,
| I use it and enjoy it as a casual gamer.
|
| I just meant we are seeing that type of tech start to pop up
| with Stadia and Xbox cloud gaming, as the gaming industry
| being an early adopter of this new web paradigm. I think we
| will see more industries begin to explore the space and the
| possibilities there.
|
| The first use case I personally want to see handled is a set
| of inline browser developer tools that I can access from
| within a web page, meaning also across any device, without
| using an additional third party browser or native tooling.
| lbotos wrote:
| I was kinda confused as to what this is, but I think it's meant
| so you can host a browser as a "server" and have multiple people
| stream that "browser server"?
|
| When I first clicked I thought it was going to be for
| programmatic testing of code.
| [deleted]
| m1k1o wrote:
| Alternative to having browser (or any app) in a container and
| accessing its gui using noVNC (or Apache Guacamole). Except,
| this is done using WebRTC, what makes it perfect for viewing
| videos + audio of course.
| JeremyNT wrote:
| I also find it confusing.
|
| Is this just a docker-compose setup, or did you write the
| code? I see some go code in there, did you write the WebRTC
| server stuff yourself? If so, how come it's not published as
| a normal package which doesn't require docker?
|
| I'm asking because I'm interested in remote desktop
| solutions, but in many cases I don't want/need docker, so any
| novel remote desktop utilities are interesting to me.
| m1k1o wrote:
| This repository features all custom writen code. Go backend
| and Vue frontend. It is publised as a container because of
| lots of dependencies and the overall environment setup.
|
| Although, I think about publishing the core of it as a
| package, fully fledged alternative to noVNC. Where X server
| desktop can be shared using WebRTC technology to a browser.
| JeremyNT wrote:
| > Although, I think about publishing the core of it as a
| package, fully fledged alternative to noVNC. Where X
| server desktop can be shared using WebRTC technology to a
| browser.
|
| I think that would be nice! There are a lot of ways to
| approach this (I've used xpra, vnc, remote X, xrdp...)
| and there are pros/cons to them all. It might be useful
| for more people without the docker requirement :)
| jcun4128 wrote:
| What's the bridge for the input? I'm not 100% yet on what
| this is doing, conceptually I think I got it. Streaming a
| video broadcast of a browser. But I would think that you need
| like a websocket to send the mouse coordinates/click/typing
| over the actual browser. Is that an extension in the browser
| or is it literally a remote OS kind of deal eg. Teamviewer.
| Sean-Der wrote:
| It is using a WebRTC Data Channel. You can send binary/text
| data over the same connection that is receiving the media.
|
| The other exciting thing about Data Channels is that you
| can send lossy/unordered messages and get flow control. You
| can know how much data you can send and how fast. You can
| build faster and more responsive data APIs that way!
| jcun4128 wrote:
| What I'm saying is from the gif (repo README) you see
| this localhost web thing. I'm aware you can screenshare
| say from Chrome and show a tab or your whole desktop. In
| this way you have mouse control/people would just watch
| your screen. I'm not clear on how they're clicking into
| that shared browser (to use YouTube).
|
| Normally for this kind of thing you need an OS-level
| component.
|
| There's something on the GO side but trying to find the
| bridge on Vue side
|
| https://github.com/m1k1o/neko/blob/master/server/internal
| /we...
|
| idk maybe somewhere in here https://github.com/m1k1o/neko
| /blob/master/client/src/compone...
|
| I had to deal with this problem too with regard to remote
| control somehow without installing an OS-level app but
| that didn't happen went a different route.
|
| Idk this is a cool project, looks like it is possible to
| do remote control with webrtc. And webrtc as said above
| can replace websocket for data transfer.
|
| https://github.com/maxogden/screencat
|
| ehh then again:
|
| > On the host side the app must synthesize mouse and
| keyboard events on the host OS. This is the tricky part,
| and the only part where a custom native node addon (C++)
| is required.
|
| Yet another cool project robotjs hmm
| funnyflamigo wrote:
| It's in a container with xorg running. It doesn't need
| kernel level access but it does need userland access
| which it does have access to in the container.
| jcun4128 wrote:
| > UserLAnd
|
| Hmm that's cool I was not aware of this thing, not
| surprising but still cool to find out now.
| alphabettsy wrote:
| This is really cool.
|
| I used an app called Puffin on iOS in the past and have wanted
| something similar for the same reasons the author listed.
| politician wrote:
| That's quite a logo.
| GordonS wrote:
| Wow, you weren't joking?!
|
| I wonder if there is any real rationale behind it, or if the
| author simply finds a cat's chocolate starfish particularly
| amusing?
| consumer451 wrote:
| > I wonder if there is any real rationale behind it, or if
| the author simply finds a cat's chocolate starfish
| particularly amusing?
|
| Under "Why n.eko?"
|
| >> I like cats (Neko is the Japanese word for cat), I'm a
| weeb/nerd.
|
| >> But why the cat butt? Because cats are _assholes,_ but you
| love them anyways.
|
| I was very happy to see that this was not a cliffhanger.
| anaisbetts wrote:
| It's pretty tasteless tbh and makes me definitely not want to
| use this app or share it with anyone whose opinion of me I care
| about
| Sean-Der wrote:
| Neko is a fantastic project, I love telling people about it. It
| does so much more then the title says :)
|
| Being able to watch videos with someone in perfect sync is a
| great experience. It's not the same to just sync two video
| elements, but you actually can scroll the page and feels like you
| are sharing the same screen.
|
| This and https://github.com/giongto35/cloud-morph I think have
| the chance to really inspire/change the next generation of
| products that get built in the space.
| skrowl wrote:
| Seems like you could also use it as an alternative to Twitch
| where you watched someone play a game, or Picaro.tv which you
| watch people draw stuff
| st3ve445678 wrote:
| First logo I've seen that incorporates a butthole, impressive.
| matthewaveryusa wrote:
| This is great for when you have a corporate laptop and you want
| to separate your personal browsing session from your work
| browsing session easily. I also like it because I setup a VPN for
| the browser and have access to some self-hosted stuff.
|
| It also raises the bar for MiTMs to intercept your session
| cookies significantly.
| chenders wrote:
| you should never have a personal browsing session on a work
| laptop. DISCOVERY. not even once!
| kube-system wrote:
| That's exactly what this would solve.
| the_doctah wrote:
| I can't take this project seriously with that name and that logo.
| Weebs are so insufferable.
|
| "Cats are assholes. Hehe does anyone else le reddit?"
| okdjnfweonfe wrote:
| https://getmetastream.com/ is an also-FLOSS alternative, instead
| of a server, it syncs site interactions (e.g. opening up the same
| video on each person's browser, and then automatically hitting
| play, seek, etc)
|
| So, pros and cons of each approach
| rp1 wrote:
| How does this approach handle different internet speeds? Video
| playback will be out of sync if buffer times differ.
| jfrunyon wrote:
| I don't quite understand how this is better than just streaming
| your desktop? The readme says "author made this because ... his
| internet could not handle streaming" but this is just streaming
| the (in-docker) display, no?
| m1k1o wrote:
| But if you share your screen, you need to stream it to the
| peer. If this solution is already in the cloud on your VPS,
| meaning you only need to stream video to your computer. You
| send only small data of mouse/keyboard events.
|
| So if you have better down link than uplink, what is really
| common with asynchronous digital subscriber lines, this is
| definitely the better choice.
___________________________________________________________________
(page generated 2021-12-01 23:01 UTC)