selfhosted

This magazine is from a federated server and may be incomplete. Browse more on the original instance.

Drewski, in Download videos with ytdl from an invidious playlist for antennapod

It's not implemented yet, but tubearchivist https://github.com/tubearchivist/tubearchivist has a podcast mode on their roadmap which I've been keeping an eye on.

upliftedduck,

great, looks promising, i’ll keep an eye on it as well! Problem for me seems to be invidious not creating a valid rss feed for playlists. I managed to setup yt-dl to watch a youtube playlist (these are valid), but not for invidious.

my plan was: add video to invidious playlist > trigger ytdl to download video from the watched playlist > sync video to phone > add directory to antennapod.

dan, (edited ) in PiKVM Build and Deploy
@dan@upvote.au avatar

Wouldn’t it have been cheaper to get a motherboard with IPMI/BMC? Last I looked, the prebuilt PiKVMs were quite expensive.

Fuck_u_spez_,

Maybe, but power consumption can get steep with some server boards/chassis which might tip the balance over time.

AtariDump,
Fuck_u_spez_,

Fuck that guy.

Prizephitah,

Would’ve loved to gotten one of those. But the power consumption of a Xeon is a bit higher than I’d like. This was a nice to have, not need to. It was a Christmas gift from my wife 🥰

dan,
@dan@upvote.au avatar

Aww, nice gift!

I’m using a workstation board in my server. Asus Pro WS W680M-ACE SE along with a Core i5-13500. Intel support ECC for consumer CPUs but only when using workstation motherboards :/. The IPMI on this board works well though.

Appoxo,
@Appoxo@lemmy.dbzer0.com avatar

Don’t have some Intel CPUs Intel vPro making you also able to control the PC in a LVM manner?
I havent tried it yet but my (so far) research suggests its possible and it would be a useful feature for those repurposing old workstation pcs as servers.

dan,
@dan@upvote.au avatar

I think so, but I don’t have any vPro capable CPUs so I haven’t been able to try it.

Appoxo,
@Appoxo@lemmy.dbzer0.com avatar

I think some other CPU/MBs also have this feature.
But I would giess they are only implemented in business scopes like the Pro/EliteDesk line from HP and the other SIs equivalent.

Valmond, in PiKVM Build and Deploy

An IP graphics card?

Interesting. When is this more convenient than a virtual desktop (if it is what I guess it is)?

Prizephitah,

It’s not a graphics card. pikvm.org

Valmond,

So what does it do?

For me a KVM is a switch for keeb, mouse and eventually a screen (or a virtual machine :-)

Prizephitah,

It’s a KVM in the same sense but instead of switching it provides the functionality over a web interface so that I can manage my server from my workstation or laptop instead of crawling in the space beneath the stairs where my server is if something goes wrong. Compare with IPMI.

eskuero, in Download videos with ytdl from an invidious playlist for antennapod
@eskuero@lemmy.fromshado.ws avatar

If you keep the same filenames for the video files it should not redownload what already has.

For automatically I think is honestly easier to just run the command on a cronjob every 5 mins.

mumblerfish,

This. And, yt-dlp and/or youtube-dl used to have an issue where if the url started with the video ID instead of the playlist ID, it just downloaded the video not the whole playlist. Not sure if that is still around, then just be aware.

upliftedduck,

Thanx, i will check out yt-dlp

ikidd, (edited ) in PSA: The Docker Snap package on Ubuntu sucks.
@ikidd@lemmy.world avatar

Yah, it’s been trash from the start. I tried it 2 years ago and the unpredictable weird shit it did was useless to try to troubleshoot. It was worse than trying to run Docker on Windows, if that can be believed.

Debian with the Docker convenience script is the way to run Docker.

lemmyvore, (edited )

Docker has an apt repo. You can add it to your Debian/Ubuntu and install and update packages normally. No need to use a script install.

docs.docker.com/engine/install/ubuntu/

NotATurtle,

Is there a difference between the apt and the install script version?

aniki,

all depends on what your aptitude is configured to look for.

ikidd,
@ikidd@lemmy.world avatar

That’s essentially what the script does, then installs all the deps and docker, sets up the service.

SnotFlickerman, (edited ) in I'm new to networking and self-hosting and have no idea where to start.
@SnotFlickerman@lemmy.blahaj.zone avatar

Not necessarily in this order:


  1. Learn the OSI and TCP/IP layer models.
  2. Learn the fundamentals of IPv4 and IPv6. (Absolutely learn to count bits for IPv4)
  3. Learn and understand the use-cases for routers, switches, and firewalls.
  4. Learn about DNS. (Domain Name System)
  5. Learn about DHCP. (Dynamic Host Configuration Protocol)
  6. Learn important Port Numbers for important Services. (SSH is Port 22, for example. The range of port numbers from 1024 to 49151 are “registered ports” that are generally always the same)
  7. Learn about address classes. (A, B, C are the main ones)
  8. Learn about hardware addresses (MAC address) and how to use ARP to find them.

And more! This is just off the top of my head. Until you’ve studied a lot more, please, for your own sake, don’t open your selfhosted ervices to the wider internet and just keep them local.


And just for fun, a poem:

The inventor of the spanning tree protocol, Radia Perlman, wrote a poem to describe how it works. When reading the poem it helps to know that in math terms, a network can be represented as a type of graph called a mesh, and that the goal of the spanning tree protocol is to turn any given network mesh into a tree structure with no loops that spans the entire set of network segments.

I think that I shall never see

A graph more lovely than a tree.

A tree whose crucial property

Is loop-free connectivity.

A tree that must be sure to span

So packets can reach every LAN.

First, the root must be selected.

By ID, it is elected.

Least cost paths from root are traced.

In the tree, these paths are placed.

A mesh is made by folks like me,

Then bridges find a spanning tree.

— Radia Perlman Algorhyme

gramathy,

Classful networking is well past dead, that’s kinda pointless. Learn VLSM and general subnetting basics instead.

SnotFlickerman, (edited )
@SnotFlickerman@lemmy.blahaj.zone avatar

I mean, isn’t it important to understand the fundamentals so you can understand VLSM better?

Like math, a lot of this knowledge works better when you know the fundamentals and basics, which help you conceptualize the bigger ideas.

On a personal level, I would have had a lot harder time understanding VLSM if I hadn’t had the basic fundamentals of traditional subnetting and classful networking under my belt.

gramathy,

There’s nothing inherently important to classful networking you learn that’s necessary for VLSM. They amount to common convention based on subnet size, and even then nearly nobody actually uses A or B sized subnets except as summary routes, which again, is not inherent to classful networking.

Classful networking has been obsolete for thirty years for good reason, you gain nothing from restricting yourself in that way.

SnotFlickerman,
@SnotFlickerman@lemmy.blahaj.zone avatar

How are you “restricting” yourself by learning that it exists? Nobody is saying “learn about it and use it and never consider anything else.” They asked what fundamentals they should know for networking, and I dumped what I considered the “fundamentals.”

gramathy,

Nothing actually uses classful networking anymore. Any situation where classful network concepts are implemented is necessarily limiting the capabilities of the network. As such it’s completely useless to bother spending time learning it.

GlitzyArmrest, in PSA: The Docker Snap package on Ubuntu sucks.
@GlitzyArmrest@lemmy.world avatar

Friends don’t let friends use Snap.

henfredemars,

Proprietary when flatpak exists, and it doesn’t properly address how apps should dynamically request access to things they need. Every time I’ve used either solution I’ve run into some permissions problem.

KDE,

flatpak just makes sense imo

atzanteol,

For desktop apps maybe. How do you run a flatpak from the cli? “flatpak run org.something.Command”. Awesome.

Both suffer from not making it obvious what directories your application can access and not providing a clear message when you try to access files it can’t. The user experience sucks.

lemmyng,

The one thing snap does that flatpak doesn’t is provide CLI applications. But then nix also does that, so snap can go pound salt.

rhymepurple, in pooling media libraries - like distributed storage

Could you use symlinks? Not sure what the “gotchas” or downside to this approach is though.

DaPorkchop_,

Downside: it’s entirety manual and not scalable whatsoever.

rhymepurple,

Could you explain further? Wouldn’t this just need to be setup once per server that OP wants to connect?

Samsy, (edited ) in PSA: The Docker Snap package on Ubuntu sucks.

TIL, docker has a snap package, and can’t stop laughing. What’s next? A flatpak or AppImage?

andrew,
@andrew@radiation.party avatar

A flatpak of the snap, running in a docker container inside a vm for maximum security.

muntedcrocodile, in Streaming local Webcam in a Linux machine, and acessing it when on vacations - which protocol to choose?
@muntedcrocodile@lemmy.world avatar

Cant u do it with vlc directly?

shadowintheday2,

I don’t think VLC alone could handle auth/permissions/encryption

muntedcrocodile,
@muntedcrocodile@lemmy.world avatar

Ur right in that case i suggest just set up a vpn to ur home lan and have it stream to lan

lemann, (edited ) in What's the point of a reverse proxy and does cloudflare give all the benefits of one?

A reverse proxy takes all your web-based services, e.g.

  • plex on port 32400
  • octoprint on port 8000
  • transmission on port 8888

and allows you to map these to domain names, so instead of typing server.example.com:32400 you can type plex.example.com. I have simplified this quite a bit though - you need DNS configured as well, and depending on your requirements you may want to purchase a domain name if you intend on accessing content from outside your home without a self hosted VPN.

Cloudflare is a DDoS mitigation service, a caching web proxy, and a DNS nameserver. Most users here would probably be using it for Dynamic DNS. You can use it in combination with a reverse proxy as a means to mask your home IP address from people connecting to your self hosted web-based services remotely, but on its own it cannot be used as a reverse proxy (at least easily - would not recommend attempting to). Do note that Cloudflare can see all the data you transmit through their systems, something to bare in mind if you are privacy conscious.

In my opinion though, it would be much better for you to use a self hosted VPN to access your self hosted services (can be used in combination with the reverse proxy), unless there is a specific need to expose the services out to the internet

Edit: fix minor typo, add extra info about cloudflare

arudesalad,

So a reverse proxy is a way to manage subdomains? I read somewhere that it allows multiple different services to be hosted on the same port and I think I know that that is probably a lie.

wantd2B1ofthestrokes,

Depends what you mean by same port. A reverse proxy would allow you to expose everything of 443 and then the proxy would route to particular app ports and hosts.

Darkassassin07, (edited )
@Darkassassin07@lemmy.ca avatar

Accessed from the same port.

Each service runs/listens on its own port, including the proxy (typically 80/443). When you connect to the proxy using its port, it will look at the domain name you used and proxy your connection to the port for the service that name is setup for.

So when you go to expose these to the network/internet, you only have to expose the port the proxy listens to and the clients only ever use that port regardless of how many services/domains you host.

throwafoxtrot, (edited )

Edit: whoops, got a little bit sidetracked and didn’t talk about cloudflare at all. I’ll leave it up nonetheless as it contains info.

The reverse proxy only listens on port 80 and 443, so yes, all your services will be accessible through just one/two ports.

The reverse proxy will parse the http request headers and ask the appropriate upstream service (e.g. jellyfin) on localhost:12345 what it should send as a reply. Yes, this means that you need to have a http header so that the reverse proxy can differentiate the services. You don’t need to buy a domain for that, you can use iPhone to make your made up domain map to a local IP address, but you need to call the reverse proxy as sub.domain.com. 192.168.0.123:80 won’t work, because the proxy has no idea which service you want to reach.

I found it really easy to set up with docker compose and caddy as a reverse proxy. Docker services on the same network automatically resolve their names so the configuration file for caddy (the reverse proxy) is literally just sub.mydomain.com { reverse_proxy jellyfin:12345 }. This will expose the jellyfin docker, which is listening on port 12345, as sub.mydomain.com on port 80.

lemann,

That’s halfway correct - I’ll try and break it down a bit further into the various parts.

Your subdomains are managed in using DNS - if you want to create or change a subdomain, that happens here. For each of your services, you’ll create a type of DNS entry called an “A record”, containing your service’s full domain name, and the IP address of your reverse proxy (in this example, it is 10.0.0.1)

The DNS records would look like the following:

  • plex.example.com, 10.0.0.1
  • octoprint.example.com, 10.0.0.1
  • transmission.example.com, 10.0.0.1

With these records created, typing any of these domains in a browser on your network will connect to your reverse proxy on port 80 (assuming we are not using HTTPS here). Your reverse proxy now needs to be set up to know how to respond to these requests coming in to the same port.

In the reverse proxy config, we tell it where the services are running and what port they’re running on:

  • plex.example.com is at server.example.com:32400
  • octoprint.example.com is at server.example.com:8000
  • transmission.example.com is at server.example.com:8888

Now when you type the domain names in the browser, your browser looks in DNS for the “A record” we created, and using the IP in that record it will then connect to the reverse proxy 10.0.0.1 at port 80. The reverse proxy looks at the domain name, and then connects you on to that service.

What we’ve done here is taken all 3 of those web-based services, and put them onto a the same port, 80, using the reverse proxy. As long as the reverse proxy sees a domain name it recognises from its config, it will know what service you want.

One thing to note though, reverse proxies only work with web-based services

arudesalad,

Also, could a reverse proxy be used to give cloudflare’s services to a port they don’t support?

Darkassassin07, (edited )
@Darkassassin07@lemmy.ca avatar

Yes, typically the proxy will listen on 443/80 and all the services it proxies to just use their defaults.

For example: emby.example.tld, port 443 > cloudflare, port 443 > your reverse proxy, port 443 > emby, port 8096

All the client sees is emby.example.tld on port 443 and the resulting web application, everything in between is transparent.

chiisana,

Another user already gave you the answer, but one thing to bear in mind is that Cloudflare only “speak” HTTP(S), and nothing else. So if for example you want to run Minecraft, CloudFlare’s free plan will not allow you to route it through port 80/443 as they don’t know how to “speak” the Minecraft protocol.

BluePhoenix01,

Very good points all around.

So far, I have WireGuard set up, and activate it when I need access.

This year I have considered Cloudflare tunnels to enable them only to issue SSL certificates (instead of signing my own like I did last year). But not sure if it is worth it or if I should just keep signing myself.

(Cert is mainly to avoid SSL warnings on iOS and browsers, so far I am the only one using what I host)

Might also be nice to not have to configure each device to use a different dns server (my own), but not sure the benefit is worth having that dns record “out there” and Cloudflare “in here”.

Chewy7324,

The DNS-01 challenge [1] allows for issuing SSL certificates without a publicly routable IP address. It needs API support from your DNS provider to automate it, but e.g. lego [2] supports many services.

I personally leave my Wireguard VPN always on, but as its only routing the local subnet with my services, it doesn’t even appear in my battery statistics.

[1] letsencrypt.org/docs/challenge-types/-01-chal…

[2] github.com/go-acme/lego

BluePhoenix01,

Thank you for the info and the links. That seems like a more sensible approach. Hope to try it out after the work week is done.

redcalcium, (edited ) in Streaming local Webcam in a Linux machine, and acessing it when on vacations - which protocol to choose?

If you have a Home Assistant instance, adding a webcam and accessing it from outside of your home network is quite easy: home-assistant.io/…/usb-webcams-and-home-assistan…

Home Assistant is a very useful platform to have around if you have a handful of IoT devices at home.

shadowintheday2,

Thanks, I will look into setting up Home Assist

Strit, in Protecting HDDs from (external) train vibrations
@Strit@lemmy.linuxuserspace.show avatar

Maybe some foam under the case could elliminate some of those vibrations. Like pieces of a yoga mat or similar mats.

MNByChoice,

Also consider rubber feet.

Cooljimy84, in pooling media libraries - like distributed storage
@Cooljimy84@lemmy.world avatar

Another one to have a search for is IPFS.

kpw,

All files stored on IPFS are public. It's also incredibly slow and inefficient. You would be better off using BitTorrent.

thanksforallthefish, in 13 Feet Ladder

1ft.io also seems to work and by the branding seems unrelated to 12ft

cyclohexane, (edited )

There’s 4ft.io too. Oh nvm looks like it’s gone.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • selfhosted@lemmy.world
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #