[–] 12 points 8 months ago (3 children)

You could mount the network share on the host/Ubuntu and then reference it in your docker compose file. It works. I prefer to write the mount in the Docker compose file since it's a bit more portable. Something like this depending on if you're using SMB/CIFS or NFS:

services:
    some_music_app:
        image: music_app_image:latest
    container_name: music_app
    volumes:
      - smb:/some/path/smb/music
      - nfs:/some/path/nfs/music
volumes:
  smb:
    driver_opts:
      type: cifs
      o: "username=${user},password=${pass},uid=1000,gid=1000,vers=3.0"
      device: "//tiger-nas/music/music"
  nfs:
    driver: local
    driver_opts:
      type: nfs
      o: addr=tiger-nas,nolock,soft,rw,nfsvers=4
      device: ":path/to/music/music"

The ${user} and ${pass} in the smb volume definition are variables that you'll need to have in a .env file next to your compose.yaml file. The .env file is just a normal text file with each line setting a value to a variable. Like:

user=my_username  
pass=123_abc_!@#

Then you restrict the permissions of your .env file and you can essentially take a backup of both files and use them on any server with Docker.

  • source
  • [–] 4 points 1 year ago

    It's not my default shell on most of my servers but I use it all the time. I'm just not a fan of treating everything as a stream of text to grep, trim and sort into structured data that's easier to work with. Plus, cross platform. I've tried nushell a bit but I always go back to PowerShell.

  • source
  • [–] 2 points 1 year ago

    The question is how motivated are you to learn what you need to manage a device?

    If you want to dive in and get your hands dirty then I'd recommend a little mini PC off Amazon and Fedora Server which comes out of the box with Cockpit which will help you administer your server. If it's something you're not that into and just need storage for your stuff, I'd say pick up a NAS from someone like Synology or Ugreen. They'll generally take care of themselves.

  • source
  • [–] 6 points 1 year ago (1 child)

    How much data do you plan on storing? If you're going to stay under a couple terabytes then you could get away with one of the Bmax or GMKtek mini PCs for under a couple hundred bucks. They're silent, decent amount of RAM, often have a slot for a second SSD and they're tiny enough to throw anywhere.

    I myself have one being delivered today, but on Amazon there's a GMKtek mini PC with an Intel N150, 16GB RAM and 1TB SSD on sale for $195. Plex and Jellyfin support the Intel Quicksync engine for transcoding and you can fit several containers/apps in 16GB

    If you grow out if it down the road then you'll have a good idea by then what hardware you need to upgrade to.

  • source
  • [–] 1 point 2 years ago

    ZFS doesn't require a lot of RAM, but it will use more RAM if it's available. 32G would be plenty for a home setup. I think my home file server has 24 or 32G of RAM and ZFS. If it's important data then stick to what you know; there's nothing wrong with mdadm.

  • source
  • parent
  • context
  • [–] 1 point 2 years ago (4 children)

    The BTRFS thing is cutting the power or losing the disks in the middle of a write which corrupts your data. If you don't think that will be a problem then BTRFS is fine. I recommend ZFS personally, but it sounds like you want to use mdadm instead so basically anything will work.

    If you might need to shrink your filesystem later then avoid XFS. EXT4 is relatively featureless but ol' reliable. ZFS is good for long term data integrity and protection. BTRFS is similar to ZFS. BcacheFS is new but like a swirl of EXT4 and BTRFS. Just pick the one with the features you want.

  • source
  • [–] 4 points 2 years ago* (last edited 2 years ago) (1 child)

    Give webtop a try? Granted I haven’t tried anything heavy on it, but it’s been performant enough for me. Here’s a compose file if it stays formatted correctly:

    services:
      webtop:
        image: lscr.io/linuxserver/webtop:latest # alpine - xfce
        # other tags with different bases and desktops: https://github.com/linuxserver/docker-webtop
        container_name: webtop
        #security_opt:
        #  - seccomp:unconfined #optional
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=America/Los_Angeles
          - TITLE=my_desktop #optional
        volumes:
          - config:/config
          #- /var/run/docker.sock:/var/run/docker.sock #optional
        ports:
          - 3000:3000
          - 3001:3001
        restart: unless-stopped
    volumes:
      config: {}
    networks: {}
    
  • source
  • parent
  • context
  • [–] 26 points 2 years ago (2 children)

    Proxmox is sort of the gold standard for homelab server operating systems. Runs containers and VMs.

    If you’re not into Proxmox, look into Fedora Server with Cockpit. Web UI for server management. Fedora CoreOS is an immutable variant of Server that would make more sense for a hypervisor, IMO.

  • source
  • [–] 18 points 2 years ago

    First and foremost, backups. Back up everything and back up often. Immutability can’t do anything for critical hardware failure.

    Issues happening on something only running container workloads isn’t common but I think it’s worth the extra little effort to reduce the risk even further. Fedora CoreOS or Flatcar is ideal since its declarative nature makes it easily reproducible. Fedora IOT can get you there too, but it doesn’t use ignition so you’ll be setting the server up manually.

    Immutability is good. Declarative configuration is good. Manage cattle, not a pet.

  • source
  • view more: next ›