1. 11
  1.  

  2. 10

    My current torrenting setup is an old Dell Optiplex with some additional storage added running FreeBSD 12. Inside FreeBSD, I have 3 jails:

    1. Transmission. All networking from this jail is sent through wireguard (the go userspace implementation is fast enough, but I’ll switch it to the kernelspace version if it materializes)

    2. Minidlna - for streaming to my TV

    3. Samba - for convenience and because it was so easy to set up.

    I have an a+rw zfs dataset /zroot/media specifically for the torrents, and it’s nullfs mounted inside the three jails at their default directories, so there’s very little config file changes needed for the above software.

    I’ll upgrade the hardware to something quieter and with more storage soon, but I’ll probably keep the same set up as it’s proved to be pretty much zero maintenance over the last several months.

    1. 2

      I’d love a deeper dive into your setup (some write-up on configuration of those jails, specially). I’m relatively new to FreeBSD and jails, but how you describe your use of them seems like a great way to learn more.

      1. 4

        I’ll see if I have time this evening to do a write-up, but it will more likely be this weekend. I manage the jails using iocage (mostly out of laziness), so I’m not sure you’ll learn much from my configuration.

      2. 1

        i currently use sshfs and nfs rather than samba because i found the samba setup to be more difficult. is it possible to use samba as a public read-only service, without defining user accounts?

        1. 1

          Yeah, it’s possible to enable guest access on samba. Here’s my entire smb4.conf:

          [global]
          map to guest = Bad User
          
          [torrents]
          comment = Torrent Library
          path = /media
          browsable = yes
          guest ok = yes
          guest only = yes
          read only = no
          create mask = 0755
          

          sshfs and nfs

          NFS doesn’t play well with wifi IIRC, and I have too many wireless devices. That being said, I’ll probably set up an NFS server at some point whenever I get around to fixing up my SunBlade 100 (the HDD is broken, as well as the NVRAM battery, so I may as well just boot it diskless). I use sshfs occasionally, but usually it’s easier just to scp or sftp the files I need.

      3. 4

        Is it a mistake on my end, or why are your code blocks rendered with double-scrollbars? And while I’m writing about unrelated stuff, kill $(pgrep ..) can be replaced with pkill ..., on most systems.

        1. 2

          Is it a mistake on my end, or why are your code blocks rendered with double-scrollbars?

          Seems like a bug with my Jekyll theme, I used a workaround, will investigate later, thanks for reporting

          kill $(pgrep ..) can be replaced with pkill …, on most systems

          Added in the post, thanks for pointing this out :)

        2. 3

          I simply use transgui, through an ssh tunnel. The built in transmission web interface also decently well in a pinch. The nice thing about transgui is that it can handle magnet links opened by the browser. You can also sort your torrents by any column (i use the date the torrent was added), filter by the download destination or filter by tracker, and much more.

          1. 2

            beware of using transmission-cli though, it has been deprecated in favor of transmission-remote, and it’s less handy because it runs as a foreground process, so when you launch your torrents with transmission-cli, unless you add the ampersand (&) it will lock the current terminal (which is far from ideal if you’re using ssh).

            Deprecated it, indeed, is. As a general rule, though, that’s what a terminal multiplexer, i.e. tmux, is for :^)

            1. 1

              Fair enough :D but I guess my point is, you don’t really have a way to get the status of all the torrents in the same place.

            2. 2
              sudo pkill transmission && transmission-daemon
              

              That’s quite a hammer you’re using there - on a multi-user system, this would kill every user’s transmission process. You might want to think about more targeted approach and give it a chance to quite gracefully while you’re at it, i.e.:

              pkill -INT -u $euid transmission
              
              1. 1

                transmisison

                There’s a small typo there! (not just here in the quote but in the article)

                1. 1

                  There’s a small typo there! (not just here in the quote but in the article)

                  There is no typo here - I quoted the article verbatim. Go and complain there! :^P

                  Don’t you have anything better to do? ;^)

                  1. 1

                    Edited! Happy!? :^)

                2. 1

                  pkill -INT -u $euid transmission

                  This doesn’t seem to work because of $EUID which in this case is your RUID while the transmission-daemon is running as whatever default user it is defined to.

                  Edit: Just tested and it doesn’t work

                  1. 1

                    The use -U :^P

                    Being root or using sudo will surely help if the process you’re trying to kill isn’t running under your own $(E)UID ;^)

                    The above is simply an example that you can (and should!) be more careful at targetting your pkill commands when running as root or with sudo.