DEV Community

Just released a new version of Novus πŸš€

Jozef Cipa on November 14, 2024

I've just released a new version of my pet project called novus. If you are a web developer and are tired of localhost:3000 URLs, check out novus -...
Collapse
 
ben profile image
Ben Halpern

Nice seems super thoughtful

Collapse
 
jozefcipa profile image
Jozef Cipa

Thanks, man!

Collapse
 
fwqw profile image
Fwqw • Edited

Novus is a nice implementation in Go of a great idea. and I would love to use it. I am using GNU/Linux. Any chance of a distro agnostic version soon? Now it heavily depends on brew and several to a certain degree platform dependent CLI-tools in the macOS realm.

Being able to run it on Arch Linux would be a great starting point (for me personally :-) ).

Update: till now I did not have any need or urge to install homebrew. In fact, I prefer not to, if not needed. However I will give it try it in a VM, and maybe my systems horror vacui may, in the end, have some good surprises for me if I am able to start novus successfully.

Collapse
 
jozefcipa profile image
Jozef Cipa

Hey, thanks for the kind words, I'm glad you like it!
It would be awesome to have it available on Linux too, indeed. However, it's only a one-man show at this point and I do not use Linux personally, so it would mean quite some work for me to make it work there too.
But I'd be more than happy to assist you or anyone else if they decide to give it a try. It shouldn't be that much extra work, mostly just adjusting the filesystem paths. Homebrew is available on Linux too btw, so that should help :D

Collapse
 
fwqw profile image
Fwqw

Yeah, I guessed already that it is a one person effort. Keep up the good work! May take some time, but I will keep you and others informed about my progress.

Thread Thread
 
jozefcipa profile image
Jozef Cipa

sounds good! if you take on that, please let me know! I would love to help you or answer any questions you might have.

Thread Thread
 
fwqw profile image
Fwqw • Edited

I will, in fact I am working at it already. But, it is just a marginal hobby project for me. Don't expect results very quickly.

For other interested (Linux-)readers: the Linux world is far more complicated than Apples mono-ecosystem. More flavours, more choices. I have to limit the scope of eligible Linuxes to those running systemd and which adhere to the Freedesktop rules (env. variables XDG_ etc.) as well.

Probable other restrictions may pop up during development. I would be very happy to get it working on Debian/Ubuntu and Arch Linux systems, hoping that things still keep working on macOS too.

Thread Thread
 
jozefcipa profile image
Jozef Cipa

good luck! and I'm available if you need anything

Thread Thread
 
fwqw profile image
Fwqw • Edited

Adding Linux to Novus was fun, in the beginning. Until I bumped into the many complexities of dnsmasq.

The dnsmasq world has many dependencies. Besides systemd (or e.g. initrc), creating a generic solution as you did with dnsmasq on macOS is unpredicatable and difficult to automate.

For instance, does the host system have kvm ('virt-manager') installed (which has its own dnsmasq instance), is the system running pihole (which has its own fork of dnsmasq)? In my case, the answers are yes and yes. Complex, not even considering having them running in containers.

I came up with a simple solution which works for me. I just fiddle with the /etc/hosts file instead of generating files to be included by dnsmasq. Not as nice as I would like, but it works. And even as this seems solution simple enough to automate in a generic way, that seems not to be true since some 'resolver-solutions' read that file optionally (or not, that is).

I will continue developing this Linux solution (which is good enough, I guess). When I have a good feeling about my additions, I will do a PR.

Don't expect this before some months into 2025 :-)

Thread Thread
 
jozefcipa profile image
Jozef Cipa

hey, thanks for the update! Personally, I believe you do not have to attempt to make it work on every possible Linux distribution, this is probably not even possible given the broad range of different configurations. As far as there is a good enough version that runs on the most used distros, I think we can call it a success.
Supporting Linux in Novus could still be released as "experimental" and if more people start using it, they will probably find and submit issues that can be then fixed by us or someone else.

Collapse
 
asmyshlyaev177 profile image
Alex • Edited

Would be great to have Linux support. Not everybody can afford Mac.
Can run Linux in a virtual machine. Better to focus on a mainstream distros, only Ubuntu/Fedora, can release in a homebrew or as a snap.

Collapse
 
fwqw profile image
Fwqw

The novus program is well written. It looks and feels just good, although it will (not yet) run on Linux. One could say that it is a quite a bit of overkill to write a Go program for what could be achieved by a bunch of shell scripts as well.

I appreciate the effort Jozef has demonstrated by developing this program. I also understand very well that writing a generic program that will run on many different platforms was totally out of scope for his personal project.

Installing brew (on Linux Arch in my case) is very easy, but will not result in a working program. That is not a problem since Jozef's started novus for his own benefit in the macOS ecosystem. This Apple thing has evolved in a different way than other Unix-like siblings (including GNU/Linux-es).

Although Go is amazingly portable, the way of installing, enabling and stopping and starting of programs (or services) is not portable.

Simply installing brew is not the answer. Maybe it is, but I ran into a Ruby problem (a missing dependency).

I stopped there. I've reached the conclusion that forging brew-compliance on my non-brew system is probably not the right way to go. I'm not sure it is worth the trouble and time to dig into the Ruby landscape as well. Apart from my specific Ruby show stopper, the brew port to the Linux world could perhaps work fine. But I don't know and I will not spend time to get brew up and running properly since I have no intention to use it for anything else.

I soon will dig a bit deeper into novus and try to find out if I can mold the code into systemd awareness as well.

Collapse
 
asmyshlyaev177 profile image
Alex • Edited

Gosh, so much text, relax man, everything is fine. No need that "safe space" woke kind of stuff, can just speak up your mind, if somebody not ok with that, it their problem, way easier and more productive.

I don't like bash scripts, it's just bad UX. TUI could be good, like LazyDocker or LazyGit.

Universal pet project is way better, can learn from it, can develop useful skills.
Even if it won't be a Golang, doesn't matter, matter if it works.

Probably it's most useful for macOS, since Safari has crazy security policies that don't let to set auth cookies for localhost. But I had to write and use Playwright tests for webkit too, same pain. Domain name is easy, but with SSL is harder.

Anyway, it's not a demand or requirement, just would be nice.