Anti-virus in a self-hosted server

Over the past 20 years, I've setup a lot of mail servers at work. These are mostly based on Postfix / Spamassassin / Dovecot, using IMAP for the clients. Recently, I started using Roundcube for webmail.

Postfix, uses several blacklists to block spam at the MTA level, these come pre-configured with the control panel, which blocks 99% of spam, and Spamassassin blocks the other 1%. Its a rare occurrence for spam to pass this setup, usually they are phishing emails or some new virus.

I always use DKIM, DMARC and SPF, and my deliverability is perfect, all mail goes to inbox.

I'm hosting mail servers with Linode and Hetzner, and I plan to expand to Netcup in the near future.

So far so good.

But, one thing I'm missing, is a good anti-malware/anti-virus, because ClamAV seems incapable of catching the malware files that go through my servers. I always take the time to extract these files and submit them at ClamAV Report Malware page, but its too late by then.

Sadly, when I submit the same virus to VirusTotal, the file gets 10+ hits in other anti-virus software but not ClamAV.

What are your suggestions?

Thank you.

reddit.com
u/Maria_Thesus_40 — 17 hours ago

Anti-virus in a self-hosted server

Over the past 20 years, I've setup a lot of mail servers at work. These are mostly based on Postfix / Spamassassin / Dovecot, using IMAP for the clients. Recently, I started using Roundcube for webmail.

Postfix, uses several blacklists to block spam at the MTA level, these come pre-configured with the control panel, which blocks 99% of spam, and Spamassassin blocks the other 1%. Its a rare occurrence for spam to pass this setup, usually they are phishing emails or some new virus.

I always use DKIM, DMARC and SPF, and my deliverability is perfect, all mail goes to inbox.

I'm hosting mail servers with Linode and Hetzner, and I plan to expand to Netcup in the near future.

So far so good.

But, one thing I'm missing, is a good anti-virus, because ClamAV seems incapable of catching the malicious files that go through my servers. I always take the time to extract these files and submit them at ClamAV Report Malware page, but its too late by then.

Sadly, when I submit the same virus to VirusTotal, the file gets 10+ hits in other anti-virus software but not ClamAV.

What are your suggestions?

Thank you.

reddit.com
u/Maria_Thesus_40 — 2 days ago

NTP issues - Time offset exceeds threshold

Hey OPNsensers :)

I'm self-hosting lots of stuff, mostly for fun. One of the things I host, is Uptime Kuma. So just for fun, I created an NTP monitor (among others).

Interestingly, Uptime Kuma gives daily reports that NTP is "down" once or twice a day:

[NTP] [🔴 Down] Time offset -3995017857211.500ms exceeds threshold 1000ms
[NTP] [🔴 Down] Time offset -3995055957270.500ms exceeds threshold 1000ms
[NTP] [🔴 Down] Time offset -3995070775942.500ms exceeds threshold 1000ms

5 minutes later, NTP comes back "up":

[NTP] [✅ Up] Stratum: 3, Offset: 0.880ms, Delay: 0.963ms, Dispersion: 25.818ms

The truth is, I don't know if there is an actual issue with the OPNsense NTP daemon, my network works fine and the time in all my devices appears to be correct, with very little diversion.

BUT, sometimes there is a time difference, which gets corrected eventually. Its entirely possible that Uptime Kuma is indeed correct and "catches" those rare instances.

What I'd like to know, is if others have noticed something similar. Should I just ignore the issue and delete the NTP monitor and pretend like everything is fine? or should I go down the rabbit hole and spend an insane amount of hours tracking down the problem? :)

Thank you.

u/Maria_Thesus_40 — 13 days ago
▲ 16 r/signal

Signal WISH LIST

My current wish list for Signal:

  • Migrate away from Google services. Video chat does not work when Google servers are being blocked. Google monitors all communications (IP addresses etc). Is Signal being paid by Google to forward everything via Google servers? Signal is advertised as "privacy conscious", but using the infrastructure of the biggest spy tech company in the world, says the exact opposite.

  • Allow us to handle our own backups. For example, save to a USB stick.

  • Allow moving the Android app to external SD card. I don't understand why Signal intentionally blocks this, many people have SD cards on their tablets, so as not to waste the tablet memory.

  • Allow receiving messages from IoT or server devices. Recent posts suggest that Signal is working on something similar, accounts without a phone number, maybe that will be suitable for IoT/server headless use?.

  • Sent media quality as ORIGINAL and not just Standard & High.

  • Automatic clean-up/removal of old content (eg delete everything that reaches a certain age), across the entire app, not per chat.

  • Incoming calls via bluetooth. When the phone is connected to a car via bluetooth, incoming calls are not handled properly like normal calls, eg the ID string is wrong in my case, it does not display the name of the caller, but shows my own phone, like I'm calling myself. Bug?

I consider all of the above to be "common sense", what are your thoughts?

u/Maria_Thesus_40 — 14 days ago

Wireguard does not retry but stays dead

There was a power outage for 6+ hours thus the UPS performed a shutdown procedure. Once the power was back, everything started coming online, except the wireguard connection, which never did, it remained dead.

This is the second time this happens, for all services to start fine except the wireguard connection.

Upon further investigation, I found out that if wireguard finds a temporary issue with the connection, like DNS hasn't come up yet (Unbound not loaded yet), or internet is not up yet (5G modem reconnecting), etc that sort of thing, then wireguard will NEVER retry the connection, it will remain dead.

I know I can fix this by running my own script that checks if wireguard is down and forces a service restart, but should we consider this to be an OPNsense bug?

If this was fixed in OPNsense, then others would benefit as well.

What do you think? bug or not a bug?

reddit.com
u/Maria_Thesus_40 — 16 days ago

Feature request: Hetzner monitor AbuseIPDB for Hetzner owned IPs

It would be nice, if Hetzner partnered with AbuseIPDB and actively monitored their database for abuse reports related to Hetzner IP space. This way, it would help catch compromised systems faster.

For example, today I started receiving spam from the IP addresses 91.99.34.101 and 91.99.34.102. I have to manually report them twice, once to abuseipdb.com and once to abuse.hetzner.com.

What do you think? possible or not?

u/Maria_Thesus_40 — 16 days ago

wireguard and 26.1.11 bug on boot?

Hey OPNsensers :)

I upgraded to 26.1.11 and on reboot, my wireguard does not come online. There is an error in the log:

2026-07-02T10:35:54	Error	wireguard	 /usr/local/opnsense/scripts/wireguard/wg-service-control.php: The command </usr/bin/wg syncconf 'wg0' '/usr/local/etc/wireguard/wg0.conf'> returned exit code 1 and the output was "Name does not resolve: `my.foobar.server:123' Configuration parsing error"

To make things work, I disabled and re-enabled my instance and peer and wireguard came back online.

By the error, I'm guessing wireguard tried to resolve my wireguard server but the internet was still down or Unbound DNS hadn't started yet?

u/Maria_Thesus_40 — 2 months ago

Paste text in web console?

Hello fellow Hetzertizens :)

Today I tried to rescue a server via the web console and I realised that I couldn't paste text. I am using Firefox and I tried various combinations for CTRL-V, CTRL-SHIFT-V, SHIFT-INSERT, etc. Nothing worked.

Is there a way to paste text in the web console?

Thank you.

reddit.com
u/Maria_Thesus_40 — 2 months ago

mpv, reliably stream live video from Ubiquiti cameras

Ladies and Gentlemen!

Last year I posted about running mpv, to display multiple cameras instead of using that garbage they call Viewport. Here is an update.

I prefer enterprise Linux distros, so for my systems I use AlmaLinux 10, which has full support for raspberry 5.

Now comes the important bit, the streamed video from my UNVR requires the player to sync to the AUDIO track! Not the video! Most people and most players by default sync to the video, which is a problem with Ubiquiti devices, thats why they have to restart their players after 10 hours or so. What happens if your stream has no audio? I have no idea, since all my Ubiquiti cameras have audio streams.

In your mpv configuration (in Linux: ~/.config/mpv/mpv.conf), add the following section:

[ubiquiti]
keepaspect=yes
mute=yes
stop-screensaver=no
terminal=no
rtsp-transport=tcp
stream-lavf-o=reconnect_streamed=1,seekable=0,reconnect=1
video-sync=audio
demuxer-seekable-cache=no

Optional step, the above defaults to full quality scaling, which is CPU/GPU intensive, you can use lower quality (bilinear) scaling which is very lightweight, you can do that by appending the following lines:

scale=bilinear
dscale=bilinear
dither=no
correct-downscaling=no
linear-downscaling=no
sigmoid-upscaling=no
hdr-compute-peak=no
allow-delayed-peak-detect=yes

Run mpv with the --profile=ubiquiti parameter, for example:

mpv \
 --title="AI PRO" \
 --profile=ubiquiti \
 'rtsp://ip.address.here:port/string' &

A lot of people ask me, how to display multiple camears in the same monitor, that is simply done by running multiple mpv instances but with different placement on the screen. The --geometry parameter controls the placement (0,0 pixels for top left, /5 for 5th virtual desktop), the --autofit parameter controls the size of the video window. For example:

mpv \
 --title="AI PRO LEFT" \
 --profile=ubiquiti \
 --geometry=+0+0/5 \
 --autofit=1150 \
 'rtsp://ip.address.here:port/string' &

mpv \
 --title="AI PRO RIGHT" \
 --profile=ubiquiti \
 --geometry=+2495+0/5 \
 --autofit=1150 \
 'rtsp://ip.address.here:port/string' &

Please let me know if this is useful to you.

Thank you!

u/Maria_Thesus_40 — 2 months ago

Immich client for Android TV?

I'm using Immich for viewing family photos.

Unfortunately, my family wants to view photos on the TV, which is Android based. The google play store on the TV says there is no Immich client and reading the Immich github pages, it seems they only make an official client for mobile phones and not for Android TV.

Could you please point me to possible solutions, to get Immich on my Android TV (if thats even possible).

Thank you!

reddit.com
u/Maria_Thesus_40 — 3 months ago

JS runtime on a Docker server?

I created a Docker container with one of the JS runtimes (deno), which should give me the ability to host it on my Docker server and call it from various family PCs.

But I found out that yt-dlp does not support a remote JS runtime, it has to be a local executable :(

As an alternative, can I use a headlerss chrome docker container, instead of a JS runtime?

Thank you.

reddit.com
u/Maria_Thesus_40 — 3 months ago
▲ 0 r/linode+1 crossposts

My constructive criticism regarding my move from Linode to Hetzner

In 2025 I moved some of my servers from Linode to Hetzner.

My reasoning for moving away from Linode:

  • Linode does not provide ARM servers.
  • Linode uses old(er) server CPUs.
  • Linode has no plans to expand their services after the Akamai take over.
  • Linode pricing stayed expensive and never came with any decent offers after their Akamai take over.
  • I understand that Akamai wants to milk the golden cow.

But there are still some good points about Linode:

  • Stability, 10+ years without a single issue.
  • Awesome support.
  • Enormous data centers and server availability.
  • Extensive Linux features (API, enterprise friendly, etc).

Now it's 2026 and here is my take of Hetzner:

  • Hetzner web control panel is a mismatch of multiple panels, they are trying to improve but so far it feels like they haven't invested enough in software development.
  • Hetzner is run by Germans and so far my experience shows how inflexible Germans are as people. Rigid mentality.
  • Their servers had random reboots for no apparent reason, I also had some minor disk corruption.
  • They keep raising their prices, I just got an email saying they'll be raising pricing for a 3rd time.
  • Hetzner is just too small as a company compared to Linode/Akamai and that has been the biggest issue so far.

Will I move more servers to Hetzner? No, I will not.

The most important issue is that Hetzner is too small as a company. I tried to order 8 new cloud servers and the control panel says that the data center is full and can't provide any cloud servers. Customer support says they don't have the capacity and they are not very talkative about alternatives. Wow, that is serious, how can I expand as a business if I can't create new servers? I can expand in Linode to 100+ servers and at Hetzner I reached a limit a few months after sign up :(

If you are an individual looking for the cheapest thing, Hetzner is great. But if you are a business then I'd stick with someone big like Linode, Hetzner isn't suitable for serious businesses.

Let me know what you think.

u/Maria_Thesus_40 — 3 months ago
▲ 19 r/hetzner

File corruption on CAX11 (Ampere) cloud instance

This has happened twice since I joined Hetzner.

I go to read my /var/log/maillog and I get an error that the file contains binary data. Weird, because everything logged to the maillog should always be encoded properly.

Opening the file, I eventually find some corruption, as you can see from the screenshot.

At 06:57:20 is the last normal line, then the text log is corrupted and at 06:58:10 it appears like all services are being restarted (you can see spamass-milter starting) the log continues with other services starting. My first thought is that the cloud instance was rebooted.

Anyone seen something similar?

Thank you.


PS: No other files appear to be corrupt, I've done a full SHA256 comparison and this corruption appears only on open log files.

u/Maria_Thesus_40 — 3 months ago

Hosting websites without a control panel (but still managed in a way)

Hello selfhosters :)

Over the past 2-3 years I've been migrating away from cPanel, because:

  • I don't need public hosting
  • I don't want to pay for a control panel
  • cPanel has become too bloated to run on small/cheap servers
  • I want more control and to learn how I can do it myself

I found a project that acts as a command-line control panel, without making modifications to the core Linux system, it only generates valid configuration files! Its perfect for my use case.

Eventually, I migrated all my servers, some are web servers, some others are mail servers and some are both.

Its open source but not well known, its called Aetolos and I got it from their gitlab page:

https://gitlab.com/noumenia/aetolos

The only downside I found, are the spam rules, configured with Postfix, are a bit too aggressive.

u/Maria_Thesus_40 — 3 months ago