Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    I have no idea what streamlabs or Android TV boxes uses as backend player, but after a lot of debugging MPV solved all my subtitles issues on mobile (android) and desktop (Linux).

    It made me kinda sad because VLC was the defacto application I installed on Windows for years !! But since I'm on Linux, MPV is the new standard in my default applications.

    Maybe have a look if you can change the default player?

    1
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Haha I'm to late :( Not available anymore. You sure it isn't about the external player used by jellyfin on mobile?

    Cauz' I remember I had issues with .ASS subtitles only on mobile when VLC was used as external player.

    1
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Ohhh? I tried to make it work even adding the certificate into de /data folder of MPV (rooted android) but it didn't worked... (source)

    I remember I even checked the logs via ADB and while I can't remember the exact error logs, it wasn't accepting my certificate.

    Also android MPV is the only application on Android that doesn't accept my self-signed certificate. Navidrome, HTTP shortcuts, bitwarden, Tempo... They all accept without any problems.

    If you have some juicy info to share I'm all ears 👍 !!

    Edit: It's probably related to android 14 (god I hate it here...) But can't revert to 13... The Stock firmware builds are Bitwise different.

    1
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Being able to stream my shows on an unstable or lower bandwidth internet connection like on a train

    Oh yeah good point wasn't thinking of that kind of use case. Internet is available everywhere now and I'm so used to gigabit Ethernet and high-speed WiFi/5g that I forgot the low speed of public WiFi or locations where the connection can get unstable.

    You could argue I should adapt my habits to my means but I frankly really think it should be the other way around, and transcoding solves that for me.

    In the past I probably would ^^" but today it's nearly impossible if you want a balanced life in a daily working/study routine. There's so much to do, to much to think of, to much information... Automating stuff is where you can gain hours in the long run, so I totally get it !

    Thanks for your answer !

    5
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    What kind of stylized subtitles? I do not have a big library so I have never encountered this kind of trouble. But I'm curious to know to circumvent in advance.

    Most anime have .ASS subtitles and are kinda complex sometimes with singsong related subtitles, but never had any issues on android with them.

    And most movies have simple plain text subtitles.

    1
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Just a personal use case, maybe it isn't an advantage. But the official android app is just a web wrapper and the use of MPV as external player don't allow self-signed local certificates (and they never will...).

    Findroid does the job for you while using MPV under the hood and you can connect to your local DNS with self-signed certs without any issues :).

    4
  • Findroid is a native android jellyfin client.
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    May I ask why? Maybe I haven't been in your actual case so I probably can't relate.

    However having everything in a format that every device can read and disable transcoding on jellyfin, saves resources and power usage.

    1
  • I am the fool (linux install)
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Yeah maybe I got so used to SSD's that I can't remember the leap between SSD's and HDD's.

    An as you said the difference between M.2 isn't that much of a difference in game. There probably lies my bias.

    4
  • I am the fool (linux install)
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 42%

    Does it really make that of a difference? Sure I use SSD's for a long time now but haven't seen that much of a speed improvement over HDD's in games. Even with a m.2, haven't seen any improvement.

    However data transfer speed is another story !

    -1
  • FluxTube | Flutter/Dart YouTube Client! | This could be the new Newpipe
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Yep ! No-ads, no-sponsor, no-shit.

    You even don't need to self-host, just disable piped proxy, enable local extraction, use HLS and a good VPN.

    Sure it's not as anonymous and sometime I need to disable my VPN, but that's only temporarily, until they find a new loophole in youtoube's api.

    That's not piped nor invidious backend's fault, just YouTube doing his cat and mouse thing...

    4
  • Systemd Looking At A Future With More Varlink & Less D-Bus For IPC
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Thank you :)) ! I have the same question as @umbrella if your have any other insights to share !

    how is varlink better than dbus to justify that change?

    4
  • Systemd Looking At A Future With More Varlink & Less D-Bus For IPC
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Someone a short ELI ? I read the article and the comments... But I have no idea what this is about.

    Maybe someone has an article that explains for someone not being educated as computer scientist ?

    16
  • Mozilla grants Ente $100k
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    Nobody ever talking about lychee ?

    Yes okay it's not GPL or written in a fancy new language (PHP is still alive xD). But it's simple, elegant, no UX bloat, no ML or IA stuff... Just a plain simple self-hosted photo manager.

    One thing I really liked about it, you can import you external photo's with .xmp files, just one checkbox away.

    The tag feature is simple but working as expected. Nothing fancy but it does best what's it's supposed to do !!

    Call me old boomer but I really like the simplicity of lychee. It's a bit like how reading an article from miniflux or wallabag... Simple html files without bloating your eyes or your brain...

    Just my 2c, nothing to see here !

    5
  • PSA/HOWTO: Avoid fake mkv torrents. Avoid getting hacked
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    For those interested, John Hammond did a video a few months ago about .lnk extension (and other 16 hidden extensions on Windows).

    He doesn't go to much or to deep into the subject, but you get a general view how this could be exploitable.

    YouTube link

    Piped Link

    16
  • What's the trick to Menopause?
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 9%

    Why the hate? Natural/traditional based therapy is used way longer than classical medecin, and we survived till today...

    People tend to forget that classical medecin is not older than a few hundred years. Gosh people... Shutdown your brain and open your minds !

    -17
  • linux or windows?
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    N0x0n
    Now 100%

    I don't know about all the details but yeah I had a bad feeling with manjaro and a lot of people argued against it. Followed my guts and a happy EndeavourOS user :)

    1
  • Hi everyone ! ### Intro Was a long ride since 3 years ago I started my first docker container. Learned a lot from how to build my custom image with a Dockerfile, loading my own configurations files into the container, getting along with docker-compose, traefik and YAML syntax... and and and ! However while tinkering with vaultwarden's config and changing to postgresSQL there's something that's really bugging me... ### Questions --- - **How do you/devs choose which database to use for your/their application? Are there any specific things to take into account before choosing one over another?** --- - **Does consistency in database containers makes sense? I mean, changing all my containers to ONLY postgres (or mariaDB whatever)?** --- - **Does it make sense to update the database image regularly? Or is the application bound to a specific version and will break after any update?** --- - **Can I switch between one over another even if you/devs choose to use e.g. MariaDB ? Or is it baked/hardcoded into the application image and switching to another database requires extra programming skills?** --- Maybe not directly related to databases but that one is also bugging me for some time now: - **What's redis role into all of this?** I can't the hell of me understand what is does and how it's linked between the application and database. I know it's supposed to give faster access to resources, but If I remember correctly, while playing around with Nextcloud, the redis container logs were dead silent, It seemed very "useless" or not active from my perspective. I'm always wondering "Humm redis... what are you doing here?". Thanks :)

    10
    5

    ### Edit After a long process of roaming the web, re-runs and troubleshoot the script with this wonderful community, the script is functional and does what it's intended to do. The script itself is probably even further improvable in terms of efficiency/logic, but I lack the necessary skills/knowledge to do so, feel free to copy, edit or even propose a more efficient way of doing the same thing. I'm greatly thankful to [@AernaLingus@hexbear.net](https://hexbear.net/u/AernaLingus), [@GenderNeutralBro@lemmy.sdf.org](https://lemmy.sdf.org/u/GenderNeutralBro), [@hydroptic@sopuli.xyz](https://sopuli.xyz/u/hydroptic) and Phil Harvey (exiftool) for their help, time and all the great idea's (and spoon-feeding me with simple and comprehensive examples ! ) #### How to use Prerequisites: - `parallel` package installed on your distribution Copy/past the below script in a file and make it executable. Change the `start_range/end_range` to your needs and install the `parallel` package depending on your OS and run the following command: `time find /path/to/your/image/directory/ -type f | parallel ./script-name.sh` This will order only the pictures from your specified time range into the following structure `YEAR/MONTH` in your current directory from 5 different time tag/timestamps (DateTimeOriginal, CreateDate, FileModifyDate, ModifyDate, DateAcquired). You may want to swap `ModifyDate` and `FileModifyDate` in the script, because `ModifyDate` is more accurate in a sense that `FileModifyDate` is easily changeable (as soon as you make some modification to the pictures, this will change to your current date). I needed that order for my specific use case. From: `'-directory<$DateAcquired/' '-directory<$ModifyDate/' '-directory<$FileModifyDate/' '-directory<$CreateDate/' '-directory<$DateTimeOriginal/'` To: `'-directory<$DateAcquired/' '-directory<$FileModifyDate/' '-directory<$ModifyDate/' '-directory<$CreateDate/' '-directory<$DateTimeOriginal/'` As per exfitool's documentation: > ExifTool evaluates the command-line arguments left to right, and latter assignments to the same tag override earlier ones. ``` #!/bin/bash if [ $# -eq 0 ]; then echo "Usage: $0 <filename>" exit 1 fi # Concatenate all arguments into one string for the filename, so calling "./script.sh /path/with spaces.jpg" should work without quoting filename="$*" start_range=20170101 end_range=20201230 FIRST_DATE=$(exiftool -m -d '%Y%m%d' -T -DateTimeOriginal -CreateDate -FileModifyDate -DateAcquired -ModifyDate "$filename" | tr -d '-' | awk '{print $1}') if [[ "$FIRST_DATE" != '' ]] && [[ "$FIRST_DATE" -gt $start_range ]] && [[ "$FIRST_DATE" -lt $end_range ]]; then exiftool -api QuickTimeUTC -d %Y/%B '-directory<$DateAcquired/' '-directory<$ModifyDate/' '-directory<$FileModifyDate/' '-directory<$CreateDate/' '-directory<$DateTimeOriginal/' '-FileName=%f%-c.%e' "$filename" else echo "Not in the specified time range" fi ``` --- --- Hi everyone ! Please no `bash-shaming`, I did my outmost best to somehow put everything together and make it somehow work without any prior bash programming knowledge. It took me a lot of effort and time. While I'm pretty happy with the result, I find the execution time very slow: `16min for 2288 files`. On a big folder with approximately 50,062 files, this would take over 6 hours !!! If someone could have a look and give me some easy to understand hints, I would greatly appreciate it. #### What Am I trying to achieve ? Create a bash script that use `exiftool` to stripe the date from images in a readable format (20240101) and compare it with an `end_range` to order only images from that specific `date range` (ex: 2020-01-01 -> 2020-12-30). Also, some images lost some EXIF data, so I have to loop through specific time fields: - DateTimeOriginal - CreateDate - FileModifyDate - DateAcquired #### The script in question ``` #!/bin/bash shopt -s globstar folder_name=/home/user/Pictures start_range=20170101 end_range=20180130 for filename in $folder_name/**/*; do if [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -DateTimeOriginal "$filename") =~ ^[0-9]+$ ]]; then DateTimeOriginal=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -DateTimeOriginal "$filename") if [ "$DateTimeOriginal" -gt $start_range ] && [ "$DateTimeOriginal" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$DateTimeOriginal/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 22)DateTimeOriginal$(tput sgr0)" fi elif [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -CreateDate "$filename") =~ ^[0-9]+$ ]]; then CreateDate=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -CreateDate "$filename") if [ "$CreateDate" -gt $start_range ] && [ "$CreateDate" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$CreateDate/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 27)CreateDate$(tput sgr0)" fi elif [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -FileModifyDate "$filename") =~ ^[0-9]+$ ]]; then FileModifyDate=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -FileModifyDate "$filename") if [ "$FileModifyDate" -gt $start_range ] && [ "$FileModifyDate" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$FileModifyDate/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 202)FileModifyDate$(tput sgr0)" fi elif [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -DateAcquired "$filename") =~ ^[0-9]+$ ]]; then DateAcquired=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -DateAcquired "$filename") if [ "$DateAcquired" -gt $start_range ] && [ "$DateAcquired" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$DateAcquired/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 172)DateAcquired(tput sgr0)" fi elif [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -ModifyDate "$filename") =~ ^[0-9]+$ ]]; then ModifyDate=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -ModifyDate "$filename") if [ "$ModifyDate" -gt $start_range ] && [ "$ModifyDate" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$ModifyDate/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 135)ModifyDate(tput sgr0)" fi else echo "No EXIF field found" done ``` #### Things I have tried 1) Reducing the number of `if` calls But it didn't much improve the execution time (maybe a few ms?). The syntax looks way less readable but what I did, was to add a lot of or ( || ) in the syntax to reduce to a single `if` call. It's not finished, I just gave it a test drive with 2 EXIF fields (DateTimeOriginal and CreateDate) to see if it could somehow improve time. But meeeh :/. ``` #!/bin/bash shopt -s globstar folder_name=/home/user/Pictures start_range=20170101 end_range=20201230 for filename in $folder_name/**/*; do if [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -DateTimeOriginal "$filename") =~ ^[0-9]+$ ]] || [[ $(/usr/bin/vendor_perl/exiftool -m -d '%Y%m%d' -T -CreateDate "$filename") =~ ^[0-9]+$ ]]; then DateTimeOriginal=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -DateTimeOriginal "$filename") CreateDate=$(/usr/bin/vendor_perl/exiftool -d '%Y%m%d' -T -CreateDate "$filename") if [ "$DateTimeOriginal" -gt $start_range ] && [ "$DateTimeOriginal" -lt $end_range ] || [ "$CreateDate" -gt $start_range ] && [ "$CreateDate" -lt $end_range ]; then /usr/bin/vendor_perl/exiftool -api QuickTimeUTC -r -d %Y/%B '-directory<$DateTimeOriginal/' '-directory<$CreateDate/' '-FileName=%f%-c.%e' "$filename" echo "Found a value" echo "Okay its $(tput setab 22)DateTimeOriginal$(tput sgr0)" else echo "FINISH YOUR SYNTAX !!" fi fi done ``` 2) Playing around with find To recursively find my image files in all my folders I first tried the `find` function, but that gave me a lot of headaches... When my image file name had some spaces in it, it just broke the image path strangely... And all answers I found on the web were gibberish, and I couldn't make it work in my script properly... Lost over 4 yours only on that specific issue ! To overcome the hurdle someone suggest to use `shopt -s globstar` with `for filename in $folder_name/**/*` and this works perfectly. But I have no idea If this could be the culprit of slow execution time? 3) Changing all `[ ]` into `[[ ]]` That also didn't do the trick. #### How to Improve the processing time ? I have no Idea if it's related to my script or the exiftool call that makes the script so slow. This isn't that much of a complicated script, I mean, it's a comparison between 2 integers not a hashing of complex numbers. I hope someone could guide me in the right direction :) Thanks !

    7
    25

    Hi everyone :). Just getting started with Manjaro as daily drive to get some easier arched based distro. Except for the LVM bug with calamares everything is pretty smooth :). But at first boot, I saw they have added their personal Manjaro logo on boot and I directly though of the bug exploit [logoFAIL](https://www.blackhat.com/eu-23/briefings/schedule/index.html#logofail-security-implications-of-image-parsing-during-system-boot-35042) I heard a few month ago and It made me curious if this is something that could be exploitable by Manjaro. Probably not, this would harm their image and hard worked system, but I'm still curious... If someone smarter/more knowledgeable than me could chime in and give some valuable information on this topic regarding Manjaro, I would really appreciate it ! Thank you !

    27
    29

    Hi everyone. I'm curious to understand what could happened to simpleX if the new "security" plan in EU gets voted? Because I'm not versed enough with the political and legal wording in thoses papers I've got a hard time to actually understand. - Will simpleX be obligated to comply? - Will simpleX retire from EU? - Would It be illegal to use simpleX if the bill passes? - Could we still use simpleX with a proxy/VPN from a country outside of EU? - ... I'm genuinely concerned about what I'm reading here and there on lemmy... I hope someone could give me some interesting point of view. Thanks.

    9
    4

    cross-posted from: https://lemmy.ml/post/15968883 Hello everyone ! Nobody seems to have an answer on !networking@sh.itjust.works (or maybe they are not interested because it's an enteprise network community?) and !homenetworking@selfhosted.forum seems dead? Anyway, If anyone could guide me or direct me to the right direction, I would really appreciate it ! --- TL:DR What is encapsulated into the frame that makes everyone understand: "OHHH that’s for 10.0.0.8, your docker container on bridge network br-b1de on the veth2b interface !!! " --- Hi everyone ! I'm scratching my head in finding an actual answer on how virtual networking in docker actually works (mostly on the packets/frame level) or some good documentation to improve my understanding on how everything fits together. Because I'm probably lacking the correct network terminology I made a simple network topology of my network. Don't hesitate to correct any network mistake. ![](https://lemmy.ml/pictrs/image/b4ea08a8-92d7-4d50-b3f9-8645f1f9026c.png) In my scenario, my docker container with the virtual interface `veth2b22c98` and the following ip (10.0.0.8) connects to bridge network `br-b1de95b5ea89`. When I curl, from my conntainer, `lemmy.ml` the packets/frame is send to my enp4s0 and goes through my wireguard tunnel to my VPN provider which sends back the packet/frame/handshake... I probed every interface with tcpdump (enp4s0, wg0, br-b1,veth2b): - enp4s0: Every packet/frame is encapsulated into the wireguard protocol with my physical interface's IP (192.168.1.30) and no DNS is visible on that interface (like expected) and sends it out to my ISP's public IP. - wg0: Shows every packet/frame with the actual protocol with my wireguard's interface IP (192.168.2.1) with the destination IP of lemmy.ml (Dst: 54.36.178.108) - br-b1: Shows every packet/frame with the actual protocol with my containers IP (10.0.0.8) with the destination IP of lemmy.ml (Dst: 54.36.178.108) --- I know there is a mix of 2 different concepts in my scenario (wireguard tunnel and virtual networking) but I really do not understand how the frame gets back to my docker container. When I look at the frames on wg0, there is no mention of either the MacAddress of my container or the actual IP of my container. How/when/what ? is exactly happening to my frame so that it gets to the correct target between my physical interface, virtual interface, bridge ? I mean with VLAN's there's a **VLAN tag** on the frame, so you can easily identify with Wireshark where it should go. But here, I cannot find any clue who or what is doing the magic so the frame finds it's way back to my docker container. **What is encapsulated into the frame that makes everyone understand: "OHHH that's for 10.0.0.8, your docker container on bridge network br-b1de on the veth2b interface !!! "** --- Sorry for my broken English and lack of networking terminology and thank you for those who beared with me and are willing the give me some hints/proper networking lesson.

    2
    2

    Edit: Whoops I just read that networking@sh.itjust.works is for enterprise networks? I hope my small homelab question doesn't break the rules? If so I will redirect my question. --- Hi everyone ! I'm scratching my head in finding an actual answer on how virtual networking in docker actually works (mostly on the packets/frame level) or some good documentation to improve my understanding on how everything fits together. Because I'm probably lacking the correct network terminology I made a simple network topology of my network. Don't hesitate to correct any network mistake. ![](https://lemmy.ml/pictrs/image/b4ea08a8-92d7-4d50-b3f9-8645f1f9026c.png) In my scenario, my docker container with the virtual interface `veth2b22c98` and the following ip (10.0.0.8) connects to bridge network `br-b1de95b5ea89`. When I curl, from my conntainer, `lemmy.ml` the packets/frame is send to my enp4s0 and goes through my wireguard tunnel to my VPN provider which sends back the packet/frame/handshake... I probed every interface with tcpdump (enp4s0, wg0, br-b1,veth2b): - enp4s0: Every packet/frame is encapsulated into the wireguard protocol with my physical interface's IP (192.168.1.30) and no DNS is visible on that interface (like expected) and sends it out to my ISP's public IP. - wg0: Shows every packet/frame with the actual protocol with my wireguard's interface IP (192.168.2.1) with the destination IP of lemmy.ml (Dst: 54.36.178.108) - br-b1: Shows every packet/frame with the actual protocol with my containers IP (10.0.0.8) with the destination IP of lemmy.ml (Dst: 54.36.178.108) --- I know there is a mix of 2 different concepts in my scenario (wireguard tunnel and virtual networking) but I really do not understand how the frame gets back to my docker container. When I look at the frames on wg0, there is no mention of either the MacAddress of my container or the actual IP of my container. How/when/what ? is exactly happening to my frame so that it gets to the correct target between my physical interface, virtual interface, bridge ? I mean with VLAN's there's a **VLAN tag** on the frame, so you can easily identify with Wireshark where it should go. But here, I cannot find any clue who or what is doing the magic so the frame finds it's way back to my docker container. **What is encapsulated into the frame that makes everyone understand: "OHHH that's for 10.0.0.8, your docker container on bridge network br-b1de on the veth2b interface !!! "** Sorry for my broken English and lack of networking terminology and thank you for those who beared with me and are willing the give me some hints/proper networking lesson. --- Edit: Changed something on my network diagram (wireguard is not in a container it's bare bone on the server) and some typo.

    12
    0
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearHO
    homelab N0x0n Now 92%
    [Questions] Beginner homelab (router/switch)

    Hi everyone :) It's time to switch and give my home network a proper minimal hardware upgrade. Right now everything is managed by my ISP's AIO firewall/router combo. Which works okayish, but I'm already doing some firewall/dns/VPN stuff on my minimal spare laptop server to bypass most of my ISP's restrictions. So it's time to get a little bit "crazy" ! While I do have some "power user" knowledge regarding Linux/server/selfhosted services/networking, I'm a bit clueless hardware wise, specially regarding my ISP's 2.5G ethernet port. I do have a 5giga connection from my Internet provider (Obtic fiber) which is divided into 4 ethernet ports (Eth1 2.5G, Eth2 1G, Eth3 1G, Eth4 0,500G or something in that range). And right now the Eth1 port is connected through an old 1G switch. 1) To take full advantage of my ISP's 2.5G ethernet port do I need a router **AND** a switch capable of 2.5G througput ? Or only the router and the switch is going to divid it accordingly between all connected devices on a 1G switch? I'm also looking for some recommendation/personal experience for a router and a switch with a budget of 250e. First I was interested into a BananaPI as a router, to tinker a bit, but it seems a bit of a hassle to flash it with OpenWRT, then I found an interesting post on Lemmy talking about the Intel N100 Celeron N5105, which looks like more what I'm looking for but I'm not sure ? 2) I have no idea what's the best bet, a SBC (bananapi mini, orange pi, raspberry pi...) a fully fleged router (like TP-Link AX1800 and flash it with opensense/openwrt) or an Intel N100 Celeron N5105 Soft Router ? The capabilities I'm looking for: - VLAN capable - AP VLAN capabable to segment wifi - Taking advantage of my ISP's 2.5G ethernet port - Firewall customization capabilities I have an eye on a managed switch I found on amazon ([SODOLA 6 Port 2.5G Web Managed](https://www.amazon.com/2-5G-Managed-10G-Aggregation-Multi-Gigabit/dp/B0CHRNLP4F/ref=sr_1_2_sspa?crid=2A2CT62HYOC3E&dib=eyJ2IjoiMSJ9.UxHGTabksxLQxBh4HH5T5H1HrMKYG1psG6y3CU-oSz33F3CTJG8dO2aJe1CyBGv02J2vyb9lwMAGt1R-8aBQ6s6YLJ113OILLPL9n24hzocDZuhoMcOZ4MO-j8BvjSv1lIwA_aJ-vUZsAemaB8iEi9nzN23iu55INuse5aebAVKILX3RCfYOWxE12BjxzpMMjpKEU4lI4wc5CbS76T4PUFgoEPKK1Xe5jXjE2bqzMTs.tqrljXT4Qn0SY9SO2NFAVHV5H11uEjHiCCxrLAE6BXs&dib_tag=se&keywords=managed%2Bswitch%2B2.5gb&sprefix=managed%2Bswitch%2B2.5gb%2Caps%2C525&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&th=1)) but I have no idea how reliable they are, I have never heard of SODOLA. 3) Any good recommendation I should look at for a managed switch that would work great with the same capabilities above? 4) Probably last question, is regarding wifi APs. Is it possible to make an access point from my router even tough it hasn't atennas? If I connect an access point directly to my router, will it be capable of giving away wifi connection? Thanks for reading though, I'm a bit unsure how I should spend my money to have a minimal but reliable/capable homelab setup. Every advice is welcome. But keep in mind, I want to keep it minimal, a good enough routing capbability with intermediate firewall customisation. I'm already hosting a few containers with a spare laptop and the traffic isn't going to be to crazy.

    11
    6

    Hi everyone ! Right now I can't decide wich one is the most versatile and fit my personal needs, so I'm looking into your personal experience with each one of them, if you mind sharing your experience. It's mostly for secure shared volumes containing ebooks and media storage/files on my home network. Adding some security into the mix even tough I actually don't need it (mostly for learning process). More precisely how difficult is the NFS configuration with kerberos? Is it actually useful? Never used kerberos and have no idea how it works, so it's a very much new tech on my side. **I would really apreciate some indepth personal experience and why you would considere one over another !** Thank you !

    61
    64

    Hello ! Getting a bit annoyed with permission issues with samba and sshfs. If someone could give me some input on how to find an other more elegant and secure way to share a folder path owned by root, I would really appreciate it ! # Context - The following folder path is owned by root (docker volume): `/var/lib/docker/volumes/syncthing_data/`_data/folder - The child folders are owned by the user server /var/lib/docker/volumes/syncthing_data/`_data/folder` - The user server is in the `sudoers` file - Server is in the docker groupe - `fuse.conf`has the `user_allow_other` uncommented # Mount point with sshfs `sudo sshfs server@10.0.0.100:/var/lib/docker/volumes/syncthing_data/_data/folder /home/user/folder -o allow_other` > Permission denied # Things I tried - Adding other options like `gid 0,27,1000` `uid 0,27,1000` `default_permissions`... - Finding my way through stackoverflow, unix.stackexchange... # Solution I found 1) Making a bind mount from the root owned path to a new path owned by server `sudo mount --bind /var/lib/docker/volumes/syncthing_data/_data/folder /home/server/folder` 2) Mount point with sshfs `sshfs server@10.0.0.100:/home/server/folder /home/user/folder` # Question While the above solution works, It overcomplicates my setup and adds an unecessary mount point to my laptop and fstab. Isn't there a more elegant solution to work directly with the user server (which has root access) to mount the folder with sshfs directly even if the folder path is owned by root? I mean the user has root access so something like: `sshfs server@10.0.0.100:/home/server/folder /home/user/folder -o allow_other` should work even if the first part of the path is owned by root. Changing owner/permission of the path recursively is out of question ! Thank you for your insights !

    16
    14

    Hi everyone :) For those interested, I share my just finished personal Firefox `user.js`. It's based on the latest arkenfox and has the same privacy features, with some personal tweaks to fit my workflow. And also easier to read 😅. https://github.com/KalyaSc/fictional-sniffle/blob/main/user.js --- ## KEEP IN MIND Except for the privacy focused entries, some are personal choices for an easy drop-in Firefox preferences backup. This is what I consider a good privacy model and some entries could break YOUR workflow, especially if you don't have self-hosted alternatives ([Vaultwarden](https://github.com/dani-garcia/vaultwarden), [Linkding](https://github.com/sissbruecker/linkding), [Wallabag](https://github.com/wallabag/wallabag)). I'm not an expert, but most of those entries are the same as [Arkenfox's user.js](https://github.com/arkenfox/user.js/blob/master/user.js). I really encourage you to read their file for better understanding on what each entrie does. While my file is easier to read, one downside is the lack of documentation for each entries. Also, this is not just a COPY/PAST. It took a lot of effort, time, reading, testing and understanding. I kept a similar naming scheme for cross referencing. I learned a few things and hope that you also will enjoy, edit, read and learn new interesting things. Happy hardening ! --- ## Features - Automatic dark mode theme (Keep in mind you still need [Dark Reader ](https://darkreader.org) or similar plugin for web pages in dark mode.) - Deep clean history on every Firefox quit. Only cookies as exception are kept. I need them for my self hosted services. - Disable password/auto-fill/breache. Vaultwarden takes care of everything. - All telemetry disabled by default except for the crash reports. To also disable the crash reports, comment the begining of the following lines with `//`: ``` user_pref("breakpad.reportURL", ""); user_pref("browser.tabs.crashReporting.sendReport", false); user_pref("browser.crashReports.unsubmittedCheck.enabled", false); user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); ``` - DoH disabled (got my personal VPN with DoH enabled) ``` user_pref("network.trr.mode", 5); ``` - Disable WebRTC. If you need it for video calling, meetings, video chats: Comment the following line: ``` user_pref("media.peerconnection.enabled", false); ``` Uncomment the following (arkenfox default, it will force WebRTC inside your configured proxy) ``` //user_pref("media.peerconnection.ice.default_address_only", true); //user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); ``` - FIxed Width and Height (1600x900) (Finger print resistant) arkenfox's default - Resist Fingerprinting (RFP) which overrides finger print protection (FPP) - Alot of other tweaks you can discover while reading through the file. ## How to use/test this file ? Open firefox, type `about:profiles` and create a test profile. Open the corresponding root folder, put in the `user.js` and launch profile in a new browser. After testing and happy with the result, `BACKUP` your main Firefox profile somewhere safe and put the `user.js` in your main profile to see if it fits your workflow. ## Room for improvement / TODO. Alot of the settings in the 5000 range form arkenfox's user.js need further testing and investigation, because they could breake and cause performance/stability issues. - JS exploits: ``` - javascript.options.baselinejit - javascript.options.ion - javascript.options.wasm - javascript.options.asmjs ``` - Disable webAssembly - ... TODO - Disable non-modern cipher suites - Control TLS versions - Disable SSL session IDs [FF36+] Also those settings are another beast that needs further testing/investigation on how they work. ## The user.js file https://github.com/KalyaSc/fictional-sniffle/blob/main/user.js ## WARNING Arkenfox advise agianst addons who scramble and randomize your fingerprint characteristics (like [chameleon](https://addons.mozilla.org/en-US/firefox/addon/chameleon-ext/)). WHY? Because resist fingerprint takes care of most things. See [4500: RFP (resistFingerprinting)](https://github.com/arkenfox/user.js/blob/master/user.js) in arkenfox user.js. ``` [WARNING] DO NOT USE extensions to alter RFP protected metrics 418986 - limit window.screen & CSS media queries (FF41) 1281949 - spoof screen orientation (FF50) 1330890 - spoof timezone as UTC0 (FF55) 1360039 - spoof navigator.hardwareConcurrency as 2 (FF55) FF56 1333651 - spoof User Agent & Navigator API version: android version spoofed as ESR (FF119 or lower) OS: JS spoofed as Windows 10, OS 10.15, Android 10, or Linux | HTTP Headers spoofed as Windows or Android 1369319 - disable device sensor API 1369357 - disable site specific zoom 1337161 - hide gamepads from content .... Very long list ! ``` ## Final words I'm open for any constructive criticism or any constructive comment that could help me out to improve or understand something new or something I misunderstood. Sure that's not 100% my work, but as I said it took a lot of time, testing, searching, reading... Please don't be a crazy Panda... ## Credits [https://github.com/arkenfox/user.js](https://github.com/arkenfox/user.js) [https://github.com/pyllyukko/user.js/](https://github.com/pyllyukko/user.js/) [https://wiki.archlinux.org/title/Firefox/Privacy](https://wiki.archlinux.org/title/Firefox/Privacy)

    49
    6

    After the discussion in the following [post](https://lemmy.ml/post/13144346) I dug a bit deeper the rabbit hole. While I mostly relied on [Exodus](https://github.com/exodus-privacy/exodus) to see if an app has trackers in it... I was baffle to see all the sketchy requests it made while dumping the DNS requests with [PCAPdroid](https://github.com/emanuele-f/PCAPdroid)... Over 200 shady requests in a few seconds after login... here's a preview: ![](https://lemmy.ml/pictrs/image/2f5823c3-880a-4d71-9728-115f7c9f1a82.png) While I don't use AdguardVPN, I have Adguard Home as my DNS server in my homelab... I think It's time to switch to pi-hole ! Edit: VPN pcapdroid ![](https://lemmy.ml/pictrs/image/626369ed-874b-4c5c-b878-727a5e1d526a.jpeg) ![](https://lemmy.ml/pictrs/image/0ec9993f-3757-4132-9f22-529d9e1d7a33.jpeg)

    19
    8

    Hello again :) **I'm not talking about a broken wg connection, everything works as expect through the CLI and systemctl.** But the NetworkManger GUI in Gnome shows my Wireguard connection as it was "not connected" and when I click on the switch it actually disconnects my wg interface. Also when I try to edit my connection through `nmcli connection modify wg0 connection.autoconnect yes` and restart my wireguard connection with `systemctl restart wg-quick@wg0` It recreates a new wireguard interface. While everything works as expected with the usual tools (wg-quick, systemctl...) the GUI seems "broken". Someone else noticed or is this somehow related to my setup? ``` Debian 12 bookworm Gnome nmcli tools 1.42.4 ```

    17
    2

    ### Solved After interesting/insightful inputs from different users, here are the takeaways: - It doesn't have some critical or dangerous impact or implications when extracted - It contains the tared parent folder (see below for some neat tricks) - It only overwrites the owner/permission if `./` itself is included in the tar file as a directory. - Tarbombs are specially crafted tar archives with absolute paths `/` (by default (GNU) tar strips absolute paths and will throw a warning except if used with a special option `–absolute-names or -P`) - Interesting read: [Path-traversal vulnerability](https://sintonen.fi/advisories/tar-extract-pathname-bypass.txt) (`../`) ### Some neat trick I learned from the post Temporarily created subshell with its own environment: ``` Let’s say you’re in the home directory that’s called /home/joe. You could go something like: > (cd bin && pwd) && pwd /home/joe/bin /home/joe ``` [source](https://lemmy.ml/comment/9194801) ### Exclude parent folder and `./` `./file` from tar There are probably a lot of different ways to achieve that expected goal: `(cd mydir/ && tar -czvf mydir.tgz *)` `find mydir/ -printf "%P\n" | tar -czf mytar.tgz --no-recursion -C mydir/ -T -` [source](https://stackoverflow.com/questions/939982/how-do-i-tar-a-directory-of-files-and-folders-without-including-the-directory-it/39530409#39530409) --- ~~The absolute path could overwrite my directory structure (tarbomb) [source](https://www.linfo.org/tarbomb.html) Will overwrite permission/owner to the current directory if extracted. [source](https://unix.stackexchange.com/questions/669074/how-to-prevent-tar-extract-from-changing-the-permssions-for-current-directory)~~ I'm sorry if my question wasn't clear enough, I'm really doing my best to be as comprehensible as possible :/ --- Hi everyone ! I'm playing a bit around with tar to understand how it works under the hood. While poking around and searching through the web I couldn't find an actual answer, on what are the implication of `./` and `./file` structure in the tar archive. ### Output 1 ```sh sudo find ./testar -maxdepth 1 -type d,f -printf "%P\n" | sudo tar -czvf ./xtractar/tar1/testbackup1.tgz -C ./testar -T - ``` ``` #output > tar tf tar1/testbackup1.tgz text.tz test my file.txt .testzero test01/ test01/never.xml test01/file.exe test01/file.tar test01/files test01/.testfiles My test folder.txt ``` ### Output 2 ```sh sudo find ./testar -maxdepth 1 -type d,f | sudo tar -czvf ./xtractar/tar2/testbackup2.tgz -C ./testar -T - ``` ``` #output >tar tf tar2/testbackup2.tgz ./testar/ ./testar/text.tz ./testar/test ./testar/my ./testar/file.txt ./testar/.testzero ./testar/test01/ ./testar/test01/never.xml ./testar/test01/file.exe ./testar/test01/file.tar ./testar/test01/files ./testar/test01/.testfiles ./testar/My test folder.txt ./testar/text.tz ./testar/test ./testar/my ./testar/file.txt ./testar/.testzero ./testar/test01/ ./testar/test01/never.xml ./testar/test01/file.exe ./testar/test01/file.tar ./testar/test01/files ./testar/test01/.testfiles ./testar/My test folder.txt ``` The outputs are clearly different and if I extract them both the only difference I see is that the second outputs the parent folder. But reading [here](https://stackoverflow.com/questions/939982/how-do-i-tar-a-directory-of-files-and-folders-without-including-the-directory-it/39530409#39530409) and [here](https://stackoverflow.com/questions/939982/how-do-i-tar-a-directory-of-files-and-folders-without-including-the-directory-it/3035446#3035446) this is not a good solution? But nobody actually says why? Has anyone a good explanation why the second way is bad practice? Or not recommended? Thank you :)

    34
    33

    Hello everyone ! I have no idea if I’m in the right community, because it’s a mix of hardware and some light code/command to extract the power consumption out of my old laptop. I need some assistance and if someone way more intelligent than me could check the code and give feedback :) **Important infos** - 12 year old ASUS N76 laptop - Bare bone server running Debian 12 - **No battery** (died long time ago) Because I have no battery connected to my laptop It's impossible to use tools like `lm-sensors`, `powerstat`, `powertop` to output the wattage. But from the [following ressource](https://www.baeldung.com/linux/power-consumption) I can estimate the power based on the Energy. ``` time=1 declare T0=($(sudo cat /sys/class/powercap/*/energy_uj)); sleep $time; declare T1=($(sudo cat /sys/class/powercap/*/energy_uj)) for i in "${!T0[@]}"; do echo - | awk "{printf \"%.1f W\", $((${T1[i]}-${T0[i]})) / $time / 1e6 }" ; done ``` While It effectively outputs something, I'm not sure if I can rely on that to estimate the power consumption and if the code is actually correct? :/ Thanks :). # Edit: My goal is to calculate the power drawn from my laptop without any electric appliance (maybe a worded my question/title wrong?). While It could be easily done with the `top package` or `lm-sensors`, this only work by measuring the battery discharge, which in my case is impossible because my laptop is directly connected to the outlet with his power cord (battery died years ago). I dug a bit further through the web and found someone who asked the same question on [superuser.com](https://superuser.com/questions/1708665/different-results-for-power-measurement-on-ubuntu-using-powertop-and-energy-uj). While this gives a different reference point, nobody actually could answer the question. This seems a bit harder than I though and is actually related to the `/sys/class/powercap/*/energy_uj` files and though someone could give me a bit more details on how this works and what the output actually shows. This is also related to the [power capping framework](https://www.kernel.org/doc/html/latest/power/powercap/powercap.html) in the linux kernel? And as per the documentation this is representing the `CPU packages` current energy counter in micro joules. So I came a bit closer in understanding how it works and what it does, even tough I’m still not sure what am I actually looking at :\ .

    40
    15

    Hi everyone :) I'm slowly getting used on how to navigate and edit things in the terminal without leaving the keyboard and arrow keys. I'm getting faster and It improved my workflow in the terminal (Yeahhii). ``` ctrl + a e f b u k ... alt + f b d ... ``` But yesterday I had such a bad experience while editing a backup bash script with `nano`. It took me like an hour to completely edit small changes like a caveman and always broke the editor when I used memory reflex terminal shortcuts. This really pissed me... I know nano also has minimal/limited shortcuts but having to memorize and switch between different one for different purpose seems like a waste of time. I think I tried emacs a few month ago but It didn't clicked. I didn't spend enough time though, tried it for a few minutes and deleted it afterwards. Maybe I should give it a second try? I also gave Vim a try, but that session is still open and can't exit (😂 )! Vim seems rather to complex for my workflow, I'm just a self-taught poweruser making his way through linux. Am I wrong? Isn't there something more "universal" ? That works everywhere I go the same? Something portable, so I can use it everywhere I go? I'm very interested in everyone's thought, insight, personal experience and tip/tricks to avoid what happened yesterday ! Thanks !

    20
    19

    First of all, thank you to all the amazing things you do for the self-hoster, FOSS comunity ! We won't be able to have those shiny things without you ! I'm not a dev and have just played arround with python (and I know how most of you feel about it 🤫) so I have very limited knowledge regarding programming languages. I know whats a low level language (C, C#, rust?), general scripting tools and even heard about assembly. And it always baffles me how all those coding lines rule and make our microchips communicate and understand each other, but that's another story ! This is about golang ! --- As a self-hoster enthousiast, when I'm looking at a github repository, I always check the programing language used, even though I have no idea if those integrate well with each other or if it's the best programming language for that kind of application. And **everytime** I see golang, It makes me smile and have a feeling it's going to be a good application. I know it also depends on the programmer skills and creativity, but all my self-hosted Go apps works like a charm. Traefik is the best example, I never had any issue or strange behavior, except for wrong configuration files on my side, Or navidrome a music server compatible with subsonic, also written in go, is working great and fast AF ! Or Vikunja, the todo app... and many more ! I'm probably biased because I have no idea of how the programing realm works, but I have the feeling that Golang is a certificate for good working and fast applications. Just to bad it's backed/supported by google (uuhhg) Feel free to debate and give me your personal opinion of the Go language, if my feelings are right or Am I just beeing silly :). Thanks for reading through 👋

    21
    11
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearN0
    Now
    16 420

    N0x0n

    lemmy.ml