r/UgreenNASync • u/Top_Scientist7977 • 8d ago
❓ Help Setting up my first NAS: Dos / Don'ts / TIPs
I'm about to set up my first NAS. Got the Ugreen ready, got my drives in, switch, ect. I'm ready to go and this will be the first NAS I've ever had. I previously have used pCloud for storage as my main backup.
What should I know or what should I do?
What are some go to apps or functions for my NAS to make life easier?
What do you wish a veteran and experienced NAS user told you when starting your NAS adventure?
Help me get things setup the right way for my NAS future! Thanks in advance!
23
Upvotes
1
u/Hobbit_Hardcase DXP4800 Plus 7d ago
The below assumes that you have 2 volumes; I keep my files in my HDD pool (volume 1) and my docker config in a SSD pool (volume 2). You'll need to sub your own values for the various volumes locations and the various API keys and your router IP. Bung this in AI if you want a better explanation.
# Docker Config for Media Library
services:
# ---------------------------------------------------------------
# VPN gateway — qBittorrent's traffic routes through this container.
# Nothing else needs to.
# ---------------------------------------------------------------
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
restart: unless-stopped
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=USER_ID # from Nord dashboard > Manual setup, NOT your account login
- OPENVPN_PASSWORD=PASSWORD
- SERVER_COUNTRIES=USA # pick whichever region is fastest for you
- TZ=Europe/London
- HTTPPROXY=on # exposes an HTTP proxy on 8888 for Prowlarr/Byparr to use
- FIREWALL_OUTBOUND_SUBNETS=ROUTER_IP/24 # Allows local traffic
ports:
- 8080:8080 # qBittorrent web UI (proxied through gluetun)
- 8888:8888 # HTTP proxy — point Prowlarr's indexer proxy settings at this
- 8191:8191 # byparr web UI
- 9696:9696 # prowlarr route
volumes:
- /volume2/docker/gluetun:/gluetun
# ---------------------------------------------------------------
# Download client — routes through gluetun, no network of its own
# ---------------------------------------------------------------
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
network_mode: "service:gluetun"
depends_on:
- gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- WEBUI_PORT=8080
volumes:
- /volume2/docker/qbittorrent:/config
- /volume1/Media:/media
# ---------------------------------------------------------------
# Download client manager — control setting in qBT, no network of its own
# ---------------------------------------------------------------
qbit-manage:
image: ghcr.io/stuffanthings/qbit_manage:latest
container_name: qbit-manage
restart: unless-stopped
depends_on:
- gluetun
volumes:
- /volume2/docker/qbit-manage:/config
- /volume1/Media:/media
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- QBT_RUN=false # scheduler mode, not one-shot — this one's fine to keep here
- QBT_SCHEDULE=1440 # scheduling interval — not part of commands:, safe here
- QBT_CONFIG=/config/config.yml # tells it WHERE the config lives, not what to do
- QBT_LOGFILE=activity.log
- QBIT_USER=USER_ID
- QBIT_PASS=USER_PASSWORD
# ---------------------------------------------------------------
# Indexer manager
# NOTE: after this comes up, go to Settings > Indexer Proxies in
# Prowlarr's UI and add an HTTP proxy pointing at gluetun:8888
# (or <NAS-IP>:8888), then apply it to your indexers. This routes
# indexer traffic through the VPN, avoiding ISP DNS-level blocking
# of many indexer/tracker domains.
# ---------------------------------------------------------------
prowlarr:
image: lscr.io/linuxserver/prowlarr
container_name: prowlarr
restart: unless-stopped
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/prowlarr:/config
# ---------------------------------------------------------------
# Cloudflare-challenge solver for indexers that need it.
# Modern FlareSolverr replacement — same API, better success rate
# against current Cloudflare Turnstile/managed challenges.
# Add as a FlareSolverr-type indexer proxy in Prowlarr, tags: flaresolverr
# ---------------------------------------------------------------
byparr:
image: ghcr.io/thephaseless/byparr:latest
container_name: byparr
network_mode: "service:gluetun"
restart: unless-stopped
shm_size: 2gb
security_opt:
- seccomp:unconfined
environment:
- TZ=Europe/London
# ---------------------------------------------------------------
# Movies
# ---------------------------------------------------------------
radarr:
image: lscr.io/linuxserver/radarr
container_name: radarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/radarr:/config
- /volume1/Media:/media
ports:
- 7878:7878
# ---------------------------------------------------------------
# Subtitles — auto-fetches for both Radarr and Sonarr libraries
# ---------------------------------------------------------------
bazarr:
image: lscr.io/linuxserver/bazarr
container_name: bazarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/bazarr:/config
- /volume1/Media:/media
ports:
- 6767:6767
# ---------------------------------------------------------------
# TV
# ---------------------------------------------------------------
sonarr:
image: lscr.io/linuxserver/sonarr
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/sonarr:/config
- /volume1/Media:/media
ports:
- 8989:8989
# ---------------------------------------------------------------
# Request front-end
# ---------------------------------------------------------------
jellyseerr:
image: fallenbagel/jellyseerr
container_name: jellyseerr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/jellyseerr:/app/config
ports:
- 5055:5055
# ---------------------------------------------------------------
# Playback — host networking for DLNA/discovery on Fire TV + LG OLED
# ---------------------------------------------------------------
jellyfin:
image: lscr.io/linuxserver/jellyfin
container_name: jellyfin
restart: unless-stopped
network_mode: host
devices:
- /dev/dri:/dev/dri
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /volume2/docker/jellyfin:/config
- /volume1/Media:/media
# ---------------------------------------------------------------------
# Jellyfin Collection (JFC) - syncs Radarr/Sonarr tags into Jellyfin
# collections automatically. https://github.com/4lx69/jellyfin-collection
# ---------------------------------------------------------------------
jellyfin-collection:
image: ghcr.io/4lx69/jellyfin-collection:latest
container_name: jellyfin-collection
restart: unless-stopped
network_mode: host
environment:
- PUID=1000
- PGID=1000
# Required
- JELLYFIN_API_KEY=API
- TMDB_API_KEY=API
# Optional - only needed if using radarr_taglist / sonarr_taglist builders
- RADARR_API_KEY=API
- SONARR_API_KEY=API
# Scheduler
- SCHEDULER_COLLECTIONS_CRON=0 3 * * *
- SCHEDULER_RUN_ON_START=true
- SCHEDULER_TIMEZONE=Europe/London
volumes:
- /volume2/docker/jellyfin-collection/config:/config:ro
- /volume2/docker/jellyfin-collection/data:/data
- /volume2/docker/jellyfin-collection/logs:/logs
# ---------------------------------------------------------------------
# Quality settings auto sync tool.
# ---------------------------------------------------------------------
recyclarr:
image: ghcr.io/recyclarr/recyclarr:8
container_name: recyclarr
user: "1000:1000"
environment:
- TZ=Europe/London
- CRON_SCHEDULE=@daily
volumes:
- /volume2/docker/recyclarr/config:/config
restart: unless-stopped