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.

  • adr1an@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    11 months ago

    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!!!

    • mhredox@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      11 months 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.

  • cron@feddit.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 months ago

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

    • mhredox@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 months 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.

  • Oisteink@feddit.nl
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    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

    • mhredox@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

      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?

      • Oisteink@feddit.nl
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 months 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.

  • SheeEttin@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

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

    • mhredox@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      11 months 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.

  • IceMan@lemmy.one
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    11 months ago

    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.