FriendUPCloud / friendup

FriendOS is a free web based platform that runs in your browser. It allows you to work and play, collaboratively, across devices.
https://friendos.com/
Other
345 stars 86 forks source link

Suggestion: ChromiumOS or FlintOS support #22

Open rabejens opened 7 years ago

rabejens commented 7 years ago

I just thought about running Friend as a main OS on low-end devices like the Raspberry Pi or the old netbooks which are still around, collecting dust somewhere in the depths of the old "piles o'junk" every tech lover has at home. I thought about something like ChromiumOS that boots directly into a full-screen Kiosk-mode browser and opens Friend UP. That would be really awesome.

titlestad commented 7 years ago

This is something we planned on doing over a year ago. We joined several meetups where we demonstrated this to people - FriendUP running on RPI 2. Both server and client on the same device. With some fiddling around, we got the hardware acceleration working on Chromium. Worked quite well.

With some further optimizations, a distro for RPI and similar devices would really be cool. I think this could be part of the "Native Friend" effort - our Linux distribution with the Friend Workspace.

Tell us if you want to join this effort. We ought to setup a repository for it.

rabejens commented 7 years ago

I'm not an expert in all the fields and do not have very much time, but if you tell me where you need assistance, I'd happily join if I can manage it. But I not only want to get this up and running on Pi2 and up, but also on the Zero.

Another thing that came in mind reading the developer documentation yesterday: I like the concept you are following, especially that every source can possibly be mounted as a filesystem. So one could write a driver for the Hadoop filesystem - it also has a REST API to access it using plain HTTP. With the help of Livy or the Spark-Jobserver one could submit jobs directly from FriendUP, and use the Friend GUI to visualize the results. Since Scala is very common in the Big Data universe, I could imagine Scala.JS bindings for FriendUP to build stuff on top of the Friend platform in Scala, too.

titlestad commented 7 years ago

You are talking our language now, you know :) - we feel the best integration is achieved through file system drivers - as they are so reusable and allow for so much innovation on top. Tell you what - we will define the Native Friend project, and set up a repository. Then we will map out where we need help, and which subgroups to form.

barrykirk commented 7 years ago

I have also earlier been interested and did a little testing in a Raspberry Pi/Friend project, but because of lack of resources had to put it to sleep. Please include me in discussions and activities?

rabejens commented 6 years ago

Sorry for being silent until now. Had a lot of work to do and still have, and am currently lacking actual things to run this on where it makes sense. But I am planning to get a powerful enough Synology DiskStation in November and then I'll update the Docker container and check if I can contribute on other things.

One thing that is surely missing are German language files :)

dana-ross commented 5 years ago

Just noting that I'm trying to build FriendUp on a Raspberry Pi 3 and libwebsockets is causing an issue:

/home/friend/friendup/libs-ext/libwebsockets/lib/core/libwebsockets.c: In function 'lws_tokenize':
/home/friend/friendup/libs-ext/libwebsockets/lib/core/libwebsockets.c:3185:13: error: comparison is always false due to limited range of data type [-Werror=type-limits]
     if (num < 0)
             ^
/home/friend/friendup/libs-ext/libwebsockets/lib/core/libwebsockets.c:3193:13: error: comparison is always false due to limited range of data type [-Werror=type-limits]
     if (num < 0)

char is signed on x86 but unsigned on ARM.

Supposedly libwebsockets can be compiled on Linux/ARM so I'm thinking something might need to be changed in the build process to set libwebsockets for a successful build.

dana-ross commented 5 years ago

Looks like the author of libwebsockets has a patch: https://github.com/warmcat/libwebsockets/issues/1439#issuecomment-433295328

Edit: This is the commit https://github.com/warmcat/libwebsockets/commit/dbbcf43c1884254ef42d59e74ae25f2eeaf9bd79

Edit: Another essential libwebsockets commit for compiling on ARM32 https://github.com/warmcat/libwebsockets/commit/ae4b511d9ac9830430ceb880bd36dabfbaf2fd12

titlestad commented 5 years ago

Thanks for looking into this. @stefkosdev - can you chime in here?

stefkosdev commented 5 years ago

I will update libwebsockets during this week.

stefkosdev commented 5 years ago

Libwebsockets updated: https://github.com/FriendUPCloud/friendup/commit/96ceb50a95607f5286b8611ececf61df5aea65a4