this post was submitted on 09 Dec 2023
164 points (95.6% liked)

Selfhosted

40708 readers
591 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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.

all 44 comments
sorted by: hot top controversial new old
[–] [email protected] 40 points 1 year ago (1 children)

Might want to rethink the name Redox OS already exists and is a pretty active project to create a modern OS in Rust

[–] [email protected] 18 points 1 year ago* (last edited 1 year ago)

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.

[–] [email protected] 13 points 1 year ago* (last edited 1 year ago) (1 children)

Looks nice, but Orb already exists. Which is FOSS. You might have problems competing if you decide to go closed source...

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (1 children)

Interesting πŸ€” I've never heard of orb. This is the second similar project I've gotten responses about. I honestly had no idea anything similar even existed. Why are these not more popular? I can see a million different use-cases for apps such as this.

That being said, I tried the orb demo and support on mobile was terrible. I'm aiming to have it be fully touch/mobile supported.

[–] [email protected] 7 points 1 year ago (1 children)

Why are these not more popular?

Because the use cases for these are very niche.

Those who simply want access to their files will find Google drive much easier.

Those who need advanced access will use RDP or SSH instead

[–] [email protected] 1 points 1 year ago (2 children)

Google drive isn't self-hosted though, and they charge for any significant amount of storage.

I'm running Ubuntu server, so there is no desktop to access via rdp, and I don't have to open an ssh port to access this. I still get all of my files, while also being able to put it all behind 2fa and grant as much or as little privilege as desired.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago)

Google drive isn’t self-hosted though,

Doesn't matter to most people, and for those it does matter to, there's OwnCloud and a ton of other options

and they charge for any significant amount of storage.

Storage costs money, dude, and GDrive don't cost much.

I’m running Ubuntu server, so there is no desktop to access via rdp, and I don’t have to open an ssh port to access this.

If you are worried about opening SSH to the internet, you should be absolutely fucking terrified of opening a browser based admin portal to the net. SSH is fucking bulletproof compared to any web admin console you can think of.

[–] [email protected] 10 points 1 year ago (1 children)

Do you are making something like this :) https://arozos.com

[–] [email protected] 10 points 1 year ago

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.

[–] [email protected] 7 points 1 year ago (1 children)

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.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] [email protected] 5 points 1 year ago (1 children)

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.

[–] [email protected] 3 points 1 year ago

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.

[–] [email protected] 6 points 1 year ago
[–] [email protected] 6 points 1 year ago (2 children)

I think you will like: https://simone.compiter/#/webdesktops

There are and have been many of these around for many years now!

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] [email protected] 3 points 1 year ago

And of course the correct link is: https://simone.computer/#/webdesktops

[–] [email protected] 4 points 1 year ago

TLD is .computer, there's a typo

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

Apache Guacamole comes to mind, it gives you access to all desktop apps on a headless server. Granted, you may not want to install desktop apps. But I think it's smart to offload development of, say, music players to other projects instead of reinventing each and every wheel.. (Also, there's music streaming and all sort of web apps already. So I don't know what's the usecase really. But that's just me tho)

Edit: kudos on your project. Looks neat!!!!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

One of the main reasons I ended up building a home server was that one of my drives failed in my main PC, and I lost a lot of my data (I know, I know). When I built my server, I intended it to be used as a backup. I was able to recover most of my data, but a lot of the filenames and directory structure were lost. I ended up just dumping all of this onto my server.

I wanted a way to go through all my recovered files and organize them. I needed to be able to play any unnamed music files and name them + put them in the appropriate directory. I also produce music so some of the files couldn't just be re-downloaded. Similarly with any text/video/pictures/etc.

I'm running Ubuntu server and I can't watch videos or listen to audio via a shell, so I needed a front end. I initially tried file browser but it was slow and clunky, and I couldn't have multiple directories open at once for dragging and dropping.

[–] [email protected] 5 points 1 year ago (1 children)

The idea reminds me of guacamole, but your project is likely less resource intensive as it does not require a VM.

[–] [email protected] 3 points 1 year ago

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.

[–] [email protected] 5 points 1 year ago (1 children)

Surely you can't be serious!

[–] [email protected] 5 points 1 year ago

I am serious, and don't call me Shirley.

[–] [email protected] 4 points 1 year ago (2 children)

What's the advantage of this versus just running a graphical desktop and using VNC or something?

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

As ikidd mentioned, definitely speed and access. It's just a react web-app. There's no VM required, and it's not streaming a video capture of a desktop. I'm actually amazed at how performant it is. It loads almost instantly and feels like a regular desktop, even on mobile.

Even with all the windows open in the screenshot and streaming a transcoded video, it still uses less memory than a single open YouTube tab.

[–] [email protected] 2 points 1 year ago

Speed and access. Being able to just bring it up in a browser would useful.

I use Kasm for this sort of thing, but it's pretty slow at times.

[–] [email protected] 4 points 1 year ago (1 children)

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.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

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.

[–] [email protected] 2 points 1 year ago (1 children)
[–] [email protected] 1 points 1 year ago
[–] [email protected] 2 points 1 year ago
[–] [email protected] 2 points 1 year ago

That's really cool!

[–] [email protected] 2 points 1 year ago
[–] [email protected] 2 points 1 year ago (1 children)
[–] [email protected] 1 points 1 year ago

Not public yet. Still deciding how to handle release. This is just a sneak peek to gauge interest and get any feedback.

[–] [email protected] 2 points 1 year ago (1 children)

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

[–] [email protected] 1 points 1 year ago (1 children)

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?

[–] [email protected] 1 points 1 year ago

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.

[–] [email protected] 1 points 1 year ago

This looks really exciting, looking forward to trying it out.