Nastools Introduction
Nastools is an open-source toolkit designed for NAS (Network Attached Storage) users, primarily for automating media resource management and optimizing the NAS user experience. It integrates various practical functions to help users automate the downloading, organizing, categorizing, and syncing of media libraries, making it especially suitable for home media libraries, PT (private tracker) enthusiasts, and users needing efficient management of digital resources.
Core Functions
Automated Resource Management
-
Supports integration with BT/PT download tools (such as qBittorrent, Transmission), automatically fetching media resources that meet user requirements.
-
Intelligently categorizes resources through rule matching (such as file name, resolution, subtitles, etc.) and moves them to specified folders.
Media Library Integration
-
Works with Jellyfin, Emby, Plex and other media servers to automatically update media library information and generate standardized media metadata (cover, synopsis, subtitles, etc.).
Intelligent Recognition and Renaming
-
Automatically recognizes TV series and movies based on file names or content, renaming files to ensure a tidy and uniform media library.
Resource Aggregation and Search
-
Supports aggregating information from multiple resource sites (such as Douban, TMDB, PT sites) for quick retrieval of target content.
-
Provides Douban watchlist synchronization function, automatically downloading media works marked by users.
Notifications and Monitoring
-
Supports pushing download status and resource update notifications via Telegram, WeChat, etc.
-
Real-time monitoring of NAS storage space, download task progress, etc.
Installing Nastools
Since versions after nastools 2.9.1 do not support BT sites, it may not be very friendly for those without PT sites. For those without PT sites, deploying version 2.9.1 is sufficient, while those with PT can deploy the latest version.
Below is an example using version 2.9.1
Docker Compose Deployment:
version: '3'
services:
nastools:
image: flik007/nastools-fixed:latest
container_name: nastools
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- /Volumes/data/media:/media # Host media directory mapped to /media in container
- ./nastools/config:/config # Optional: configuration file persistence
environment:
- TZ=Asia/Shanghai # Time zone setting (modify as needed)
Portainer Deployment:Install Docker (Orbstack) on Mac and use Portainer for managementIn the Portainer – Volumes interface, click Add volumes to create a new mount point named nastools.
In the Portainer – Container interface, click Add container, enter nastools for Name, enter flik007/nastools-fixed:latest for image, and map port 3000:3000 (note that the host port must not be occupied on the local machine, as this is the browser access port and can be changed).In the Volumes page, set the mount for /config as the configuration file mount, selecting the nastools volume created earlier, and also map /media as the media path.Choose the restart policy as Unless stopped, then create the container.
Using Nastools
Enter in the browser
http://your_server_IP_address:port_number
The default login username is admin, and the password is password. Please change the username and password as soon as you log in.
Nastools scraping requires a TMDB API key, which can be obtained by registering an account at The Movie Database (TMDB) and generating an API key. After logging in, click on your username in the upper right corner and select API subscription.
Copy the API keyand fill it in the basic settings of Nastools, remembering to save.
Next, set up directory synchronization, which mainly organizes and scrapes the movies and TV shows you download. It uses hard links for organization, so the source files remain unchanged, making it easy to seed and maintain. A new path will be generated with organized folders for media server recognition. Hard links do not take up additional disk space; they can be understood as a new hyperlink to a file. However, when deleting, both sides must be deleted to automatically free up space, but Nastools can delete them simultaneously in the organization record.
This is before organization:
After organization:
Directory synchronization adds a new setting, where the source directory is the directory of the movies and TV shows you downloaded. The destination directory is the directory you want Jellyfin, Emby, etc., to scan. Choose hard link for synchronization. Once set up, it will automatically monitor the source directory, and once there are downloaded files, it will organize them into a new folder. Note that your download software should ideally set a temporary storage location for unfinished downloads.
Downloader settings, taking qBittorrent as an example. Fill in the IP, port number, and your qBittorrent account password. Once set up, resources searched in Nastools can be directly linked for download.
Media server settings, taking Jellyfin as an example. First, you need to generate an API key on the Jellyfin server, which can be done in the console – API keys section.
In Nastools – Media Server – Jellyfin, fill in the server address and API key.Indexer settings, taking Jackett as an example. First, copy the API key from Jackett.
In Nastools – Indexer – Jackett, fill in the Jackett server address, API key, and if there is a password, fill it in; if not, leave it blank.
At this point, the basic settings are complete. If you have sites, you can add them in site management. If you do not have sites, Nastools will call the Jackett server to search for resources. Enter the name of the movie or TV series in the search bar above to search, for example, Avatar.
After searching for resources, find the suitable resource for yourself, click the download button on the right, set the directory, and you can add the download task to qBittorrent for downloading. Sometimes resources may not be found; this function works well with sites, as calling Jackett for search sometimes yields more results than directly using Jackett.
Downloaded files will be automatically organized, and we can view the organization records in Media Organization – History.
Unwanted resources can be deleted. Deleting the source file means deleting the file in the download directory, while deleting the media library file means deleting the organized file. To delete completely, choose to delete both the source and media library files.
Some resources may not be automatically recognized, and you can use the manual recognition function.Choose the source path and output path, fill in the TMDB ID, and you can accurately recognize movies and TV shows, then click transfer.Nastools also has features for automatic login and signing into sites, but since there are no PT sites, this will not be explained here; you can explore it yourself. For installation of qBittorrent, Jackett, Jellyfin, etc., you can refer to:Building a Home Media Server (Part 1) – JellyfinBuilding a Home Media Server (Part 3) – Docker Installation of qBittorrent