A desktop application for fast file and directory searching within a NAS system.
Born from the need to overcome the limitations of traditional file explorer search functions, which are very slow when interacting with the entire file system of large-scale storage systems.
Classic search through file explorers is inefficient on NAS systems with thousands of files and folders, as it must physically scan the entire file system for each search.
The project involves a periodic scan of the NAS content that stores all files and their directories in a central PostgreSQL database through a dedicated backend (to be published later). This frontend application allows you to obtain the searched directories and files within seconds, with the ability to easily open the found folder through the system file explorer.
Search interface with connection status and search options
Results grouped by directory with file details
Database connection configuration
- Fast Search: Search files by name or directory path with AND/OR logic
- Intuitive Interface: Modern UI built with Svelte 5 and DaisyUI
- Database Connection: Configurable PostgreSQL connection for searching
- System Integration: Open found directories directly in File Explorer
- Organized Visualization: Results grouped by directory with statistics
- Cross-Platform: Supports Windows, macOS, and Linux
- Frontend: Svelte 5 + SvelteKit + DaisyUI + TailwindCSS
- Backend: Tauri 2 + Rust
- Database: PostgreSQL (connection via tokio-postgres)
- Build: Bun runtime
To run this application, you need to install:
- Bun - JavaScript Runtime: https://bun.sh/docs/installation
- Rust - Programming Language: https://www.rust-lang.org/tools/install
- PostgreSQL - Database with existing file schema
- MSVC (Windows only) - Microsoft Visual Studio Community: https://visualstudio.microsoft.com/vs/community/
- Make sure to select the "Desktop development with C++" workload
git clone https://github.com/nsilveri/nas-file-finder.git
cd nas-file-finder
bun installThe application expects a PostgreSQL table with the following structure:
CREATE TABLE files (
id SERIAL PRIMARY KEY,
filename VARCHAR NOT NULL,
directory VARCHAR NOT NULL,
last_modified TIMESTAMP
);On first startup, configure the database connection via the settings icon:
- Host: PostgreSQL server address
- Port: Database port (default: 5432)
- Database: Database name
- User: Username for access
- Password: Password for access
bun run tauri devbun run tauri build# TypeScript/Svelte code check
bun run check
# Code formatting
bun run format
# Linting
bun run lint- Configure Database: Click the settings icon and enter connection details
- Test Connection: The status badge will show if the connection is active
- Search Files:
- Enter search terms separated by spaces or commas
- Choose whether to search in filenames or directory paths
- Select AND logic (all terms) or OR logic (at least one term)
- Explore Results: Files are grouped by directory, click "Open" to open the folder
- Primarily tested on Windows 11
- Supports all operating systems supported by Tauri
- Search is limited to 100 results for performance
This project is based on the Tauri 2 + Svelte 5 boilerplate created by Alysonhower Veras Vieira. Heartfelt thanks for providing an excellent starting foundation that made the rapid development of this application possible.
Original repository: tauri2-svelte5-boilerplate
This project is licensed under the MIT License - see the LICENSE file for details.