Selfhosted

49373 readers
849 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
1
 
 

Hello everyone! Mods here 😊

Tell us, what services do you selfhost? Extra points for selfhosted hardware infrastructure.

Feel free to take it as a chance to present yourself to the community!

🦎

2
68
DietPi is great! (dietpi.com)
submitted 9 hours ago* (last edited 8 hours ago) by Teppichbrand@feddit.org to c/selfhosted@lemmy.world
 
 

Do you guys know about DietPi? I use it on two Raspberry Pi, just installed it on a Wyse mini-PC and I think it's really great:

Truly Optimised
DietPi is an extremely lightweight Debian OS, highly optimised for minimal CPU and RAM resource usage, ensuring your SBC always runs at its maximum potential.

Simple interface
DietPi programs use lightweight Whiptail menus. Spend less time staring at the command line, more time enjoying your Pi.

DietPi-Software
Quickly and easily install popular software "ready to run" and optimised for your system. Only the software you need is installed.

DietPi-Config
Quickly and effortlessly customise your device's hardware and software settings for your needs, including network connection and localisation setup.

DietPi-Backup
Quickly and easily backup or restore your DietPi system.

Logging System Choices
You decide how much logging you need. Get a performance boost with DietPi-RAMlog, or, rsyslog and logrotate for log critical servers.

DietPi-Services Control
Control which installed software has higher or lower priority levels: nice, affinity, policy scheduler and more.

DietPi-Update System
DietPi automatically checks for updates and informs you when they are available. Update instantly, without having to write a new image.

DietPi-Automation
Allows you to completely automate a DietPi installation with no user input. Simply by configuring dietpi.txt before powering on.

3
83
submitted 12 hours ago* (last edited 12 hours ago) by sbeak@sopuli.xyz to c/selfhosted@lemmy.world
 
 

Today I set up my old laptop as a Debian server, hosting Immich (for photos), Nextcloud (for files), and Radicale (for calendar). It was surprisingly easy to do so after looking at the documentation and watching a couple videos online! Tomorrow I might try hosting something like Linkwarden or Karakeep.

What else should I self-host, aside from HA (I don’t have a smart home), Calibre (physical books are my jam), and Jellyfin (I don’t watch too many movies + don’t have a significant DVD/Blu-ray collection)?

I would like to keep my laptop confined to my local network since I don’t trust it to be secure enough against the internet.

edit: I forgot, I’m also hosting Tailscale so I can access my local network remotely!

4
 
 

I love WikiJS, even though the devs are very slow to respond to any requests.

I've tried different wiki software, but always come back to it. One of my main issues with it is that the links look terrible when shared. Since I share recipes often with my family and friends, this used to annoy me a lot.

So, I wrote this plugin to do that for me. I thought about writing an WikiJS plugin, but the documentation is almost non-existent. And I wanted to get better at Go anyway, so a Caddy plugin was the way to go. I haven't published it in the official plugin registry since I don't know if anyone else might be interested in it. But there's a docker image built and published in GHCR in case anyone wants to try it out.

I guess I'm looking for feedback. Should I publish it to the official repo? Does anyone else care about this or did I just waste two evenings again in another ADHD fueled coding spree? (I guess it's not a complete waste since I'm using it myself.) Also, in case you're familiar with Go, let me know if I can improve the code. I'm a newbie in Go.

5
6
22
submitted 17 hours ago* (last edited 8 hours ago) by Nico_198X@europe.pub to c/selfhosted@lemmy.world
 
 

i’m starting to think it’s the debian base of this container image. it may just be too out of date for my GPU.

i think i'm giving up on this for now.

thanks all!


hey all!

for the life of me, i cannot get VAAPI hardware accelerated encoding to work. i always get this error:

Error: ffmpeg exited with code 234: Device creation failed: -22.

Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Invalid argument

Error parsing global options: Invalid argument`

at ChildProcess.<anonymous> (/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
at ChildProcess.emit (node:events:524:28)
at ChildProcess._handle.onexit (node:internal/child_process:293:12)
  • AMD Radeon RX 9060 XT
  • the peertube vaapi transcoding plugin is installed
  • i have mesa-va-drivers and mesa-libgallium installed from bookworm backports.
  • the container is rootful.
  • /dev/dri is mapped
  • the render group id matches between host and container.
  • SELinux is set to allow containers access to devices.

no joy.

vainfo

error: XDG_RUNTIME_DIR is invalid or not set in the environment.

error: can't connect to X server!

libva info: VA-API version 1.17.0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so

libva info: Found init function __vaDriverInit_1_17

amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description.

If they do, bad things may happen!

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.17 (libva 2.12.0)

vainfo: Driver version: Mesa Gallium driver 25.0.4-1~bpo12+1 for AMD Radeon Graphics (radeonsi, gfx1200, ACO, DRM 3.63, 6.15.4-1-default)

vainfo: Supported profile and entrypoints VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointEncSlice VAProfileNone : VAEntrypointVideoProc

i've also tried updating the packages from trixie and sid, and installing the firmware-linux-nonfree.

i've tried disabling SELinux. i've tried making the container permissive.

no change.

any help is appreciated! thank you!

i’m starting to think it’s the debian base of this container image. it may just be too out of date for my GPU.

7
69
Torrent for books (lemmy.world)
submitted 1 day ago* (last edited 22 hours ago) by shanedawkins122@lemmy.world to c/selfhosted@lemmy.world
 
 

Looking for book torrents - anything really ive come across a number of sites from other forums - not sure if they work or are safe to use https://annas-archive.org/ https://x1337x.cc/ anyone know anymre

8
 
 

Cross-posted from: https://programming.dev/post/33674513

Any general suggestions when getting started with headscale?

9
 
 

Hi everyone, I have Truenas core running on an old desktop at home. For the past year everything has been going great. However for the past month or so I started to notice that my SMB share for Jellyfin was getting reset to some 6 movies. All of my home videos, music, TV shows, and other movies where gone. I have a backup drive where I store all this data so I copied the files back and Jellyfin saw them immediately again... but by the next day all where gone again. At first I thought someone had deleted them by accident so I checked the user access of my family members and no one except me has access to delete movies and the logs don't show any media deletion that I wasn't aware of (I found 2 duplicated movies). The server isn't exposed in any way to the internet except for a VPN connection that I keep closed tabs regarding access. I checked the permissions of Jellyfin's container in my Truenas server and both UID and GID are set to 568 per the Internet's recommendation when I set it up originally. My server is running on two 4TB HDDs configured in a mirror. I checked the health of both drives and both show healthy and without errors. I still suspect that when the server syncs the data, that somehow the data from the wrong drive is overwriting the data of the one with the media and deleting it, but I don't know enough on how to check.

Please let me know if you need more information and how to get it, as I am a complete noob when it comes to servers but I am trying to learn.

Thanks y'all

UPDATE: Some have suggested that my Syncthings server could have been the issue, however turning off the server has not fixed the issue and once again files got deleted.

UPDATE 2: I looked at the SMB logs and noticed a bunch of "Unlink" events that seem to be running every morning around 7am and go over every one of my media files. I am assuming "Unlink" means delete somehow, but I can't determine what is calling it.

10
 
 

Figured I'd ask here as thought self-hosters would care most about looking after their photos.

What do you do with friends' photos you'd like to keep hold of? Maybe there's a pic on a chat app or they've sent you a link to an album on google photos.

Would you just throw into your own pile of photos or do you carefully adjust metadata to indicate who took them? Just use dirs to separate them from your own? Interested in any and all thoughts.

11
 
 

Hi,

I really miss the old version of the website "weatherspark" It had an absolutely fantastic weather dashboard.

It was a old google-finance-like graph that you could scroll, to zoom in and out to increase the timescale, or left to right to shift the date at the center of the graph.

The lines on the graph shows, current temperature, historical temperature and prediction temperature.

There were bands around the temperature that would indicate temperature averages and records for the date period on screen.

If there were precipitations, it would show as another line the amounts.

In that simple graph you could get the sense of the local weather, what it's been and what it will be, this week, this month or 25 years ago with just your mouse.

With all the weather data being collected by government and available on public APIs, is there any open source self-hosted software that has an effective interactive data visualization user interface as weather spark of old ?

Here is what it looked like, all in a single graph with NO pageloads !

12
13
 
 

I think a lot of people have heard of OpenAI’s local-friendly Whisper model, but I don’t see enough self-hosters talking about WhisperX, so I’ll hop on the soapbox:

Whisper is extremely good when you have lots of audio with one person talking, but fails hard in a conversational setting with people talking over each other. It’s also hard to sync up transcripts with the original audio.

Enter WhisperX: WhisperX is an improved whisper implementation that automatically tags who is talking, and tags each line of speech with a timestamp.

I’ve found it great for DMing TTRPGs — simply record your session with a conference mic, run a transcript with WhisperX, and pass the output to a long-context LLM for easy session summaries. It’s a great way to avoid slowing down the game by taking notes on minor events and NPCs.

I’ve also used it in a hacky script pipeline to bulk download podcast episodes with yt-dlp, create searchable transcripts, and scrub ads by having an LLM sniff out timestamps to cut with ffmpeg.

Privacy-friendly, modest hardware requirements, and good at what it does. WhisperX, apply directly to the forehead.

14
 
 

Hey! I have been using Ansible to deploy Dockers for a few services on my Raspberry Pi for a while now and it's working great, but I want to learn MOAR and I need help...

Recently, I've been considering migrating to bare metal K3S for a few reasons:

  • To learn and actually practice K8S.
  • To have redundancy and to try HA.
  • My RPi are all already running on MicroOS, so it kind of make sense to me to try other SUSE stuff (?)
  • Maybe eventually being able to manage my two separated servers locations with a neat k3s + Tailscale setup!

Here is my problem: I don't understand how things are supposed to be done. All the examples I find feel wrong. More specifically:

  • Am I really supposed to have a collection of small yaml files for everything, that I use with kubectl apply -f ?? It feels wrong and way too "by hand"! Is there a more scripted way to do it? Should I stay with everything in Ansible ??
  • I see little to no example on how to deploy the service containers I want (pihole, navidrome, etc.) to a cluster, unlike docker-compose examples that can be found everywhere. Am I looking for the wrong thing?
  • Even official doc seems broken. Am I really supposed to run many helm commands (some of them how just fails) and try and get ssl certs just to have Rancher and its dashboard ?!

I feel that having a K3S + Traefik + Longhorn + Rancher on MicroOS should be straightforward, but it's really not.

It's very much a noob question, but I really want to understand what I am doing wrong. I'm really looking for advice and especially configuration examples that I could try to copy, use and modify!

Thanks in advance,

Cheers!

15
 
 

Nice big old port scan. Brand new server too. Just a few days old so there is nothing to find. Don't worry I contacted AWS. Stay safe out there.

16
 
 

SOLVED: turns out mesa is not enough for this. i also had to install:

mesa-va-gallium mesa-dri-gallium

now we're good!


hi all!

i've hit a wall here and could use your input if you have any thoughts!

i'm running Owncast latest via rootful Podman on a distro with SELinux.

i'm trying to implement hardware acceleration via the server's AMD GPU, but it is not working.

AMD Radeon RX 7600

Kernel: 6.15.4-1-default

i've turned VAAPI on in the web admin settings.

the container comes with ffmpeg 6 and libva.

For SELinux, i've run:

setsebool -P container_use_devices true

In my quadlet i've added:

[Container]

AddDevice=/dev/dri

Exec=apk add mesa

the devices appear rw in the container:

/app # ls -l /dev/dri

total 0

crw-rw---- 1 root 486 226, 0 Jul 9 15:58 card0

crw-rw---- 1 root 489 226, 128 Jul 9 15:58 renderD128

here is the error i'm getting:

time="2025-07-09T15:58:46Z" level=error msg="[AVHWDeviceContext @ 0x7f96891c7cc0] Failed to initialise VAAPI connection: -1 (unknown libva error)."

time="2025-07-09T15:58:46Z" level=error msg="Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': I/O error"

time="2025-07-09T15:58:46Z" level=error msg="transcoding error. look at data/logs/transcoder.log to help debug. your copy of ffmpeg may not support your selected codec of h264_vaapi https://owncast.online/docs/codecs/"

time="2025-07-09T16:04:25Z" level=info msg="Inbound stream connected from 192.168.0.235:42698"

time="2025-07-09T16:04:25Z" level=info msg="Processing video using codec VA-API with 3 output qualities configured."

time="2025-07-09T16:04:25Z" level=error msg="[AVHWDeviceContext @ 0x7f8a2a047cc0] Failed to initialise VAAPI connection: -1 (unknown libva error)."

time="2025-07-09T16:04:25Z" level=error msg="Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': I/O error"

time="2025-07-09T16:04:25Z" level=info msg="Inbound stream disconnected."

time="2025-07-09T16:04:25Z" level=error msg="unable to write rtmp packet io: read/write on closed pipe"

time="2025-07-09T16:04:25Z" level=error msg="transcoding error. look at data/logs/transcoder.log to help debug. your copy of ffmpeg may not support your selected codec of h264_vaapi https://owncast.online/docs/codecs/"

any help to troubleshoot this would be most appreciated! thank you!

17
 
 

I'm just using the Cosmic Terminal that's part of the Pop!_OS Cosmic Alpha, but I ran into similar issues with Gnome terminal and even with Termius.

Scenario: I'm currently working on leveraging a VPS to act as the gateway to my homelab so I have one ssh session to Unraid server and one to VPS. One in each tab. Obviously the name shows up as what the username@servername is called in each tab. But I keep getting tripped up and sometimes try to do something from the wrong machine. Once I even failed to realize that the ssh session to one of them cut out and I was back on my desktop and took me an embarrassingly long time to realize why stuff was failing.

So what are y'all using to keep that organized in your work flow? Separate terminal windows instead of tabs? Some shell customizations to make them look different than one another? Or just so ingrained in your brain that you never have this problem?

EDIT: Thanks, everyone! Sounds like a terminal multiplexer is the ticket for me.

18
 
 

Background: I've been writing a new media server like Jellyfin or Plex, and I'm thinking about releasing it as an OSS project. It's working really well for me already, so I've started polishing up the install process, writing getting started docs, stuff like that.

I'm interested in how other folks have set up their media libraries. Especially the technical details around how files are encoded and organized.

My media library currently has about 1,100 movies and just shy of 200 TV shows. I've encoded everything as high quality AV1 video with Opus audio, in a WebM container. Subtitles and chapters are in a separate WebVTT file alongside the video. The whole thing is currently about 9TB. With few exceptions, I sourced everything directly from Blu-ray or DVD using MakeMKV. It's organized pretty close to how Jellyfin wants it.

What about you?

19
 
 

In a lot of movies people often say if I don't type a password in then "the" files will be emailed, emails sent to journalists, or the site will go online, etc. exposing whoever it is they are in danger from or blackmailing.

I always thought it was a cool concept, and it probably isn't hard for someone who knows what they're doing to set up some script for that, but I was wondering if there was a self hosted app that you could set up that let you set timers, say for a day, and if a password isn't entered to cancel it, it sends files to an email (maybe configured to hit all news outlets/journalists), deploys a website at a domain thats preconfigured/setup, tweets something, etc.

20
 
 

Your ML model cache volume is getting blown up during restart and the model is being re-downloaded during the first search post-restart. Either set it to a path somewhere on your storage, or ensure you're not blowing up the dynamic volume upon restart.

In my case I changed this:

  immich-machine-learning:
    ...
    volumes:
      - model-cache:/cache

To that:

  immich-machine-learning:
    ...
    volumes:
      - ./cache:/cache

I no longer have to wait uncomfortably long when I'm trying to show off Smart Search to a friend, or just need a meme pronto.

That'll be all.

21
 
 

i just ended up going with a new image with the components installed, which i've been informed is best practice.


Hey there!

i have an Owncast container that needs two extra files added to it every time it starts up because the base image doesn't include them. they can be downloaded from within the container. i just need a way to tell the container to always do that when it starts up.

i've tried adding this to my quadlet:

[Container]

Exec=apk update && apk add --no-cache mesa-va-gallium mesa-dri-gallium

but it doesn't work.

does anyone know how to correctly automate this?

thanks!

22
 
 

Like how on Debian's website, you can find their ISO's and other related files in this very simple file browser layout which looks kind of old but I want that, know any projects or way to set something like that up? The modern self-hosted stuff just does not seem simple enough, and both aesthetically and from a functional perspective I would like something like what debain does with their own files. I also want it to be reliable, for some reason, with both immich and nextcloud, a relative of mine was unable to download alot of photos without the download not even starting on Nextcloud, or it stopping 30% of the way on immich, if reliable downloads necessitate a desktop app with their own unique file exchanging protocol I would be ok with that too (willing to compromise with the desired aesthetic and minimalist design)

The ideal thing is the thing here: https://cdimage.debian.org/debian-cd/

23
 
 

I'm kind of surprised I've struggled with this so long. Right now I've been using nextcloud camera upload, and mostly it works ok but shits the bed once in a while without me noticing and I need to spend time fixing it and it's never as simple as turning it off and on again.

I recently tried syncthing, and while it works, it frequently crashed and got stuck in a state where it says it's on and working by my destination folder is shown as disconnected, and the options to restart syncthing from the side menu are greyed out and the only way to make it work again is by force closing it and reopening it.

I'm running vanilla stock Google Android and truenas, does anyone have a better solution?

24
25
 
 

Who benefits from this? Even though Let’s Encrypt stresses that most site operators will do fine sticking with ordinary domain certificates, there are still scenarios where a numeric identifier is the only practical choice:

Infrastructure services such as DNS-over-HTTPS (DoH) – where clients may pin a literal IP address for performance or censorship-evasion reasons.
IoT and home-lab devices – think network-attached storage boxes, for example, living behind static WAN addresses.
Ephemeral cloud workloads – short-lived back-end servers that spin up with public IPs faster than DNS records can propagate.
view more: next ›