Spyke

Posts

localllama·LocalLLaMAbyShimitar

Ok, time to move from Ollama + OpenWebUI

As the title says, i started by selfhosting OpenWebUI including Ollama on my RIG. I have been pretty happy but the more i dig into this stuff, more i understand that i am doing it wrong and i definitely need to switch to llama.cpp / ik_llama.cpp.

But i have a few questions...

  1. I want a web based LLM chat GUI, because that's my 80% usage for AI. If i go with llama.cpp, do i need to ditch OpenWebUI as well? Is there a better UI? Do i need an UI?

  2. i am currently hosting it all with a docker compose file. Is this still doable if i switch? I can go bare-metal (Gentoo server, good skills on my side) but it's the maintenance part, a "podman compose pull" is just easier... or i am lazy.

  3. the server is headless and always accessed remotely via web or ssh, just to be clear.

My hardware is a NVIDIA RTX A4000 16GB VRAM on a I7-8700@3200Ghz with 64GB system RAM (shared with far too many services).

View original on downonthestreet.eu
selfhost·Self Hosted - Self-hosting your services.byShimitar

LazyNVR: a different approach in hosting IP webcams

Hi all! i finally come around publishing a small side project i am running at my home for the last few years. This past month i have revamped it by rewriting the C++ backend and improving the web UI (single page HTML+CSS+AlpineJS) for a broader public.

LazyNVR is a different take on hosting webcams and centralizing access to them. Instead of working on the cameras feed, which is CPU/GPU heavy and doesn't scale much, it relies on cameras on-board capabilities to detect motion and upload recorded videos to your own server.

If you own IP cameras from brands like Dahua, Reolink and many others, you can leverage their on board motion detection capabilities and off-load your server computational power using LazyNVR.

I have some 15 cameras and tools like Frigate or MotionEye just kill my server CPU, but all my cameras can detect motions and automatically record a video and upload it to my server using different protocols (like FTP, sftp, and such). So LazyNVR was born.

The server is written in C++ and basically detect incoming videos, recode (without re-encoding) them to an MP4 web streammable format, and store them well sorted. It will also keep your incoming folders clean and purge stored videos when they are too old. The server will also fetch and refresh still live images from the cameras.

The client is a WEB GUI, actually a single HTML file with CSS and some AlpineJS, which will show the still live images and the list of all the recorded videos letting you download or view them directly.

I am running over 15 cameras from my RaspPi with basically 0% CPU overhead.

I have published LazyNVR on Codeberg (here https://codeberg.org/LazyNVR/lazynvr-sources) because well, i think it's better than GitHub. And there is also a pretty lazy web site on https://www.lazynvr.it/ (which mostly redirect to Codeberg).

Currently there are docker images for AMD64 and ARM64, but it's pretty easy to compile directly, with the provided instructions in the Codeberg Wiki.

Please, feel free to try it!

Mandatory AI disclaimer: i don't use AI for coding. Zero code (C++ or Javscript) has been written by or with AI support in this project. I have used AI extensively for the CSS stuff that i hate, but reviewed and mostly edited it anyway. I have also used AI for research and to write the dockerfile faster, since i am no docker expert. I have personally written the dockerfile anyway, and personally tested as well. The logo has been created with AI, probably it shows.

LazyNVR: a different approach in hosting IP webcamshttps://codeberg.org/LazyNVR/lazynvr-sourcesOpen linkView original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

LazyNVR: a different approach in hosting IP webcams

Hi all! i finally come around publishing a small side project i am running at my home for the last few years. This past month i have revamped it by rewriting the C++ backend and improving the web UI (single page HTML+CSS+AlpineJS) for a broader public.

LazyNVR is a different take on hosting webcams and centralizing access to them. Instead of working on the cameras feed, which is CPU/GPU heavy and doesn't scale much, it relies on cameras on-board capabilities to detect motion and upload recorded videos to your own server.

If you own IP cameras from brands like Dahua, Reolink and many others, you can leverage their on board motion detection capabilities and off-load your server computational power using LazyNVR.

I have some 15 cameras and tools like Frigate or MotionEye just kill my server CPU, but all my cameras can detect motions and automatically record a video and upload it to my server using different protocols (like FTP, sftp, and such). So LazyNVR was born.

The server is written in C++ and basically detect incoming videos, recode (without re-encoding) them to an MP4 web streammable format, and store them well sorted. It will also keep your incoming folders clean and purge stored videos when they are too old. The server will also fetch and refresh still live images from the cameras.

The client is a WEB GUI, actually a single HTML file with CSS and some AlpineJS, which will show the still live images and the list of all the recorded videos letting you download or view them directly.

I am running over 15 cameras from my RaspPi with basically 0% CPU overhead.

I have published LazyNVR on Codeberg (here https://codeberg.org/LazyNVR/lazynvr-sources) because well, i think it's better than GitHub. And there is also a pretty lazy web site on https://www.lazynvr.it/ (which mostly redirect to Codeberg).

Currently there are docker images for AMD64 and ARM64, but it's pretty easy to compile directly, with the provided instructions in the Codeberg Wiki.

Please, feel free to try it!

Mandatory AI disclaimer: i don't use AI for coding. Zero code (C++ or Javscript) has been written by or with AI support in this project. I have used AI extensively for the CSS stuff that i hate, but reviewed and mostly edited it anyway. I have also used AI for research and to write the dockerfile faster, since i am no docker expert. I have personally written the dockerfile anyway, and personally tested as well. The logo has been created with AI, probably it shows.

LazyNVR: a different approach in hosting IP webcamshttps://codeberg.org/LazyNVR/lazynvr-sourcesOpen linkView original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

My personal Simple Dashboard

Hi all, for my own selfhosting needs i looked into many different dashboards, but none really fit my bill.

I want a dashboard that:

  • super lightweight
  • has no server-side requirements
  • can be edited with a single text file
  • simple CSS to adapt to your style

and so, of course, i developed my own. After a few years of usage, i upgraded it to AlpineJS (previously uglier code on jQuery) and i am proudly making it public for anybody who might be interested.

Here it is: https://github.com/gardiol/dashboard/

(the project was released on github long ago, but i never wrote about it anywhere IIRC, also i might migrate to Codeberg in the future, so do not bash me for Github)

There is a quite long readme, it's GPLv3, and aboslutely zero lines of AI / Vibe coding. I used AI for research and quick support specially on how to format CSS (which i kind of despise) but nothing else.

As a bonus, there is also a CGI system made in bash (totally optional) that i use for local monitors, but it's kinda messy and really not ready for broader use, so you can ignore the "monitor" subfolder or delete it completely.

Anyway, here it is, hope someone could make use of it.

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

ExcaliDash: self host ExcaliDraw with multi user and server side storage

I have always been intrigued by ExcaliDraw but it's a client side thing that don't store your drawings on the server, don't support authentication or multi user out of the box.

I came across ExcaliDash which embeds the tool In a fully self host able solution.

Loving it so far...

.... Not involved with the project, just a user

ExcaliDash: self host ExcaliDraw with multi user and server side storagehttps://github.com/ZimengXiong/ExcaliDashOpen linkView original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

IPv6

I noticed by accident that in my home network IPv6 is not functional, so I decided to fix that, and started studying about IPv6.

I have an opnSense firewall which connect to my ISP port as WAN, and then the LAN. The point is that o do not get a GUA on my WAN, but I get it if I connect directly a pc to the ISP port....

The opnSense seems to be configured properly, and the ISP itself do provide IPv6 as I can get a GUA address when I connect my Linux laptop to the ISP router, so I am not sure...

Anybody has any hints?

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Spam blocking in 2026

I self host my email since 20+ years. Always done with the postfix + dovecot stack with the works (dkim dmark DNS stuff etc).

In the last few years I just removed all spam filters as they where a chore and didn't provide no much benefit (3-5 spam emails per week) even if my main email address has been out and about for at least 2 decades or more.

Recently, last few weeks, spam is picking up to the point I receive some 10+ spam emails per day and this is pretty annoying, obviously.

So, what are you doing for spam filtering at server level nowadays? Is it still spamassassin circus? Anything better or more efficient?

View original on downonthestreet.eu
askmeanything·Ask Me AnythingbyShimitar

I live in Italy (northern), AMA

Any curiosity about life in Italy? How it is really like to live in the northern part of the boot shaped peninsula?

So, I am a father, I love and have cats and dogs, live in a small town in northern Italy, and and I work full time in a field related to software, technology and loosely transportation. I also lived in Rome, one of the biggest northern italy metropolies, and in smaller places like Pisa.

In a previous life I traveled around lots of the world and in my current life I am training for an Ironman.

All of this, while living in the above mentioned country.

Specially for US lemmiers, but also people from other parts of the world, anything you want me to explain, clarify or just answer about all of the above?

View original on downonthestreet.eu
localllama·LocalLLaMAbyShimitar

How to... (Maybe I am missing something)

Well, I run my own OpenWebUI with Ollama, installed with docker compose and running local on my home server with some NVIDIA GPU and I am pretty happy with the overall result.

I have only installed local open source models like gptoss, deepseek-r1, llama (3.2, 4), qwen3...

My use case is mostly ask questions on documentation for some development (details on programming language syntax and such).

I have been running it for months now, and it come to my mind that it would be useful for the following tasts as well:

  • audio transcribing (voice messages to text)
  • image generation (logos, small art for my games and such)

I fiddled a bit around, but got nowhere.

How do you do that from the openwebui web interface?

(I never used ollama directly, only through the openwebui GUI)

View original on downonthestreet.eu
oldfartscave·Old Fart's CavebyShimitar

Keep it up guys

While I advocate that being fit is mandatory for old farts, I really felt today's training. Running 20k progressive from 5:30/km to 4:45/km, and I crashed at 19k.

Feel old today, will spend the rest of the day with my dogs hunting (them, not me) rabbits. As usual, it will be 10-0 for the rabbits, but everybody will have fun 🤣

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Selfhost an LLM

Hi all, i am quite an old fart, so i just recently got excited about self hosting an AI, some LLM...

What i want to do is:

  • chat with it
  • eventually integrate it into other services, where needed

I read about OLLAMA, but it's all unclear to me.

Where do i start, preferably with containers (but "bare metal") is also fine?

(i already have a linux server rig with all the good stuff on it, from immich to forjeio to the arrs and more, reverse proxy, Wireguard and the works, i am looking for input on AI/LLM, what to self host and such, not general selfhosting hints)

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Spotify sync web gui

Hi fellow selfhosters!

i pay (i know, i know) for Spotify Premium and i would like to progressively build my self-hosted music collection leveraging the fact that i am a paying customer and i would hate if the pull songs under my rug over time.

Any good self-hostable approach here? Ideally, the flow would be:

  • I listen to spotify on my mobile devices, add songs to playlists and such
  • my self-host setup syncs those playlists
  • ... and download the songs using my paid for premium account from spotify itself
  • Doean't really needs to be web-based, i can access my server anbd run anything CLI based or even plain old GUI (linux).

I don't want fake solutions that use Google Music or Deezer to download, i pay spotify and expect somehow to be able to download 320Kbps music from it.

The overall process can be manual, but better automated.

I already have lidarr, but it's basically impossible to download the same music from it, at least not the music i listen to.

A viable workaround could be something that builds by spotify playlists using what music i have downloaded with lidarr, maybe notifying me what is missing...

EDIT: somebody pointed out this is against Spotify TOS. Anyway i found a solution using Spotizerr, which is a self-hosted web app that does exactly what i was looking for. You still need a paid spotify account unless you want to download low-res from Deezer.

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

I found a nice gem

Following a suggestion i saw last day on a post here i have installed AList (https://alist.nn.ci/) and... guys it rocks!

It is file manager, both browser and WbDAV based. It can be configured with a ton of storages, so you can merge local and remote shares in the same place... You can use LDAP, OIDC and local authentication... WebDAV just works without hassle or fuss...

Moreover it's a chinese project and i got rolling over more than once trying to decypher the pseudo-english documentation.

Very easy to install too..

As usual, here is my wiki page: https://wiki.gardiol.org/doku.php?id=services%3Aalist

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Self-hosting minecraft

Hi! I want to selfhost a minecraft server for my kid and hjs friends. I havent played minecraft in quite a few years ...

Where do I start to self host one?

I am already seflhosting lost of stuff from 'Arrs to Jellyfin and Immich and more, so I am not asking on how to do it technically, but where to look for and what to host for a proper Minecraft server!

Edit: choosed to setup this https://github.com/itzg/docker-minecraft-bedrock-server and so far, super smooth and easy peasy!

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Immich: opinion revised

Hi fellow self-hoster.

Almost one year ago i did experiment with Immich and found, at the time, that it was not up to pair to what i was expecting from it. Basically my use case was slightly different from the Immich user experience.

After all this time i decided to give it another go and i am amazed! It has grown a lot, it now has all the features i need and where lacking at the time.

So, in just a few hours i set it up and configured my external libraries, backup, storage template and OIDC authentication with authelia. All works.

Great kudos to the devs which are doing an amazing work.

I have documented all the steps of the process with the link on top of this post, hope it can be useful for someone.

https://wiki.gardiol.org/doku.php?id=services%3AimmichOpen linkView original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Issue with wireguard and advance routing

I have a remote VPS that acts as a wireguard server (keys omitted):

[Interface]
Address = 10.0.0.2/24
[Peer] # self host server
AllowedIPs = 10.0.0.1/32

(The VPS is configured to be a router from the wg0 to it's WAN via nft masquerading)

And i have another server, my self-host server, which connects to the VPS trough wireguard because it uses wireguard tunnel as a port-forwarder with some nft glue on the VPS side to "port forward" my 443 port:

[Interface]
Address = 10.0.0.1/24
[Peer]
AllowedIPs = 10.0.0.2/24

(omitted the nft glue)

My self-hosted server default route goes trough my home ISP and that must remain the case.

Now, on the self-host server i have one specific user that i need to route trough the wireguard tunnel for it's outgoing traffic, because i need to make sure it's traffic seems to originate from the VPS.

The way i usually handle this is with a couple of nft commands to create a user-specific routing table and assign a different default route to it (uid=1070):

 ip rule add uidrange  1070-1070 lookup 1070
ip route add default via 192.168.0.1 dev eno1 table 1070

(this is the case, and works, to use eno1 as default gateway for user 1070. Traceroute 8.8.8.8 will show user 1070 going trough eno1, while any other user going trough the default gateway)

If i try the same using the wg0 interface, it doesn't work.

 ip rule add uidrange  1070-1070 lookup 1070
ip route add default via 10.0.0.2 dev wg0 table 1070

This doesnt work, wireguard refuses to allow packets trough with an error like:

ping 8.8.8.8
From 10.0.0.1 icmp_seq=3 Destination Host Unreachable                                            
ping: sendmsg: Required key not available 

I tried to change my self-host server AllowedIps like this:

[Interface]
Address = 10.0.0.1/24
[Peer]
AllowedIPs = 10.0.0.2/24, 0.0.0.0/0

and it works! User 1070 can route trough wireguard. BUT... now this works just too much... because all my self-host server traffic goes trough the wg0, which is not what i want.

So i tried to disable the WireGuard messing with routing tables:

[Interface]
Address = 10.0.0.1/24
Table = off
[Peer]
AllowedIPs = 10.0.0.2/24, 0.0.0.0/0

and manually added the routes for user 1070 like above (repeat for clarity):

 ip rule add uidrange  1070-1070 lookup 1070
ip route add default via 10.0.0.2 dev wg0 table 1070

The default route now doesnt get replaced, but now, without any error, the packers for user 1070 just don't get routed. ping 8.8.8.8 for user 1070 just hangs

I am at a loss.... Any suggestions?

(edits for clarity and a few small errors)

View original on downonthestreet.eu
selfhosted·SelfhostedbyShimitar

Stalwart mail server

Hi all.

I have been hosting my mail (not "self" like at home, but hosting on a rented server on the 'net) for the last 20 years going the old good way of postfix+dovecot+OpenDKIM/DMARC/SpamAssassin and all the glue and bells.

Having the opportunity to rethink the entire approach (which works fine, but its pretty cumbersome and complex to replicate) i was looking at Stalwart mail server which looks promising and nice, being written in rust following modern principles and such.

Asking to anybody who has been using Stalwart, is it good? Does it deliver being a solid mail server?

Asking to people hosting it's own mail, is there a better solution out there?

Asking to people commenting against hosting a mail server, please refrain from doing so, as i'have been doing that with success for the past 20 years that's what i will be keep doing for the foreseeable future as well.

View original on downonthestreet.eu