Decided I’d give a sneak peek at something I’m working on:
Since building my home server I’ve constantly been on the lookout for a decent frontend to manage my files, etc. I initially tried file browser, but it was always really buggy for me, and honestly I hated it.
Since my server is headless, a PiKVM and the like wouldn’t really work for me the way I wanted, so I decided to just build what I was looking for on my own.
And with that, I’d like to introduce: redox_os TBD
It’s an emulated OS built in react with a node+express backend. It’s made to be as fully customizable as you want. You can create new “apps” for it very easily. Anything you can make in react/JavaScript can be loaded as an “app” with just a simple config file.
It’s still very much a work in progress, but I figured it was complete enough for a little show and tell.
Current features:
- a desktop with icons/etc
- a file browser
- text editor (complete with syntax highlighting)
- a full featured terminal
- a picture viewer
- a music player
- a video player (capable of live-transcoding to an html5 compatible format)
- a file downloader (for downloading files to the server from the web)
- full drag and drop capabilities (even drop files from outside your browser to upload)
- downloading files from the server to local
- full mobile/touch support
I’m also still very much deciding how to handle the release. It’s mostly functional already, but I’d really want it to be polished before a proper release.
Since I also have a full time job, that may take a while. Contributors would definitely help, but I’m also a little split on whether I should make if FOSS. I’m definitely leaning so, but idk.
Definitely open to any feedback, suggestions, criticism, etc.
Edit: Thanks to everyone for the feedback! Looks like I’ll definitely be going FOSS. Also I’ll be changing the name 😄
Not sure what to call it now though. Maybe reDOS? Lol
I still wanna tidy everything up a bit before making the code public. Maybe go back and start adding some comments/documentation as currently there is none. I’m really terrible about that.
Also definitely a bit shy to open up my code to public scrutiny haha. I’m sure there are plenty of mistakes and bad practices.
Do you are making something like this :) https://arozos.com
Wow I honestly had no idea something like this already existed! Never heard of ArozOS before.
Why is it not more well known/discussed? I can see a million different use-cases for a web-based OS. I would have thought it would be the first thing people would talk about for a self-hosted solution to a os/frontend.
This is awesome, I just want to point out that once you have a pikvm connected it’s no longer headless. That’s kinda the whole idea about any kvm - to provide screen(s), keyboard and mouse to servers so they’re no longer headless
So admittedly I’m fairly new to the world of self-hosting, but have been a web dev for a long time. My terminology may be way off here. I always sort of assumed that headless meant that I’m running a version of Linux that does not have a desktop UI (Ubuntu server specifically).
If I added a PiKVM, would I suddenly get a desktop UI, or would it still be command-line only?
Head-less is without screen (head). You’d need to install the desktop of choice. You only get a screen. It’s for server admin not daily use - even with a fancy one like that.
You’ve done a nice job in a short time. I’d give it a spin as a jump server sort of application I could use in a browser. I currently use KasmWeb for this sort of thing, because I like having a vanilla Linux experience in a browser, but it’s kinda heavy, though faster than something like VNC and easier to poke a hole in a firewall with basic auth for access.
Thanks!
Another reason for the project was that I too wanted a desktop experience while also being being able to access remotely. I just didn’t want to open any “scary” ports on my server lol. I can throw this whole thing behind 2fa and it’s still completely isolated in a docker container, thus it has as much or as little privilege as I want.
I actually can ssh into my main server through this, if desired, without opening any ssh ports publicly.
Surely you can’t be serious!
I am serious, and don’t call me Shirley.
The idea reminds me of guacamole, but your project is likely less resource intensive as it does not require a VM.
Definitely way less resource-intensive. I’m actually amazed at how quickly it spins up and loads everything. Even with all of these windows open, and streaming a full length movie, it uses less memory than a single YouTube tab.
deleted by creator
That’s really cool!
I see you wrote that you’re thinking about making it FOSS. What’s the alternative? Paid software/non-free license + Open Source or proprietary? If you’re low on time and don’t have the capacity to maintain (bugfixes/reports from users) yourself then I say proprietary is a no-go. Then about the license - IMO (though I don’t have hard data on that on hand) people much more likely contribute to FOSS as opposed to locked in license + open source model.
Truly appreciate the feedback!
I am definitely leaning open source, but to be completely candid, I could also see this being a marketable product. If I could somehow turn maintaining this into my full time job and quit my current job without any significant drop in my salary, I would be completely stoked.
To be honest, I’m not super familiar with licensing or really anything regarding the release of software, but I would like to maintain the possibility that I could eventually sell/monetize it if it turns out to be a success, and I’m afraid that once it becomes FOSS, that possibility is gone.
Like I said though, I honestly have no idea, so I would love any feedback or suggestions.
AGPL + CLA would potentially be an option? Then you can sell licenses to those who want to make proprietary modifications. It seems to work for other projects.
I will absolutely look into this. Thank you :) definitely looks like I’ll be opening source though. I didn’t realize there were already so many FOSS alternatives. Suppose I should have done more research, but I guess I figured they would be more popular/ talked about on platforms such as this.
Project link?
Not public yet. Still deciding how to handle release. This is just a sneak peek to gauge interest and get any feedback.
I think you will like: https://simone.compiter/#/webdesktops
There are and have been many of these around for many years now!
TLD is .computer, there’s a typo
Link doesn’t work for me, but I’m starting to see what you mean.
Either way, this has been a fun project to work on and I’ve only been working on it since around October, so not like years of commitment or anything. I’ve learned a lot, even having been programming professionally for years, so overall I’d say it’s been a worthwhile venture, especially considering I originally was only building this for myself.
And of course the correct link is: https://simone.computer/#/webdesktops
This looks really exciting, looking forward to trying it out.
Kudos for using Geogaddi!
Had to :)
Might want to rethink the name Redox OS already exists and is a pretty active project to create a modern OS in Rust
Oh damn good call haha.
I guess I never bothered to check. I’m not married to the name so it’s no big deal really. I was initially just building this for myself without any real plan to release anything so I chose my artist/producer handle and never thought twice about it.
Nice
deleted by creator