A small server tool to easily upload songs to Navidrome without SSH/FTP
- TypeScript 64.9%
- CSS 30.7%
- JavaScript 2.7%
- HTML 1.7%
| client | ||
| src | ||
| .gitignore | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
Naviload - Navidrome Upload Server
A small server tool to easily upload songs to Navidrome without SSH/FTP.
Setup
- Install server dependencies:
pnpm i - Install client dependencies:
pnpm --prefix client i - Set the upload password:
export UPLOAD_PASSWORD="your-strong-password" - Build the client and server:
pnpm build - Start the server:
pnpm start - On first run, the server creates
config/destination-path.txt. Add the absolute destination path (one line):/absolute/path/to/your/navidrome/music
Development
Run the API and UI in separate terminals:
pnpm dev:server
pnpm --prefix client dev
Uploading
Open http://localhost:3000 in a browser to use the simple UI.
API example
curl -X POST \
-H "x-upload-password: your-strong-password" \
-H "x-upload-subdir: rock/2024" \
-F "file=@song.mp3" \
http://localhost:3000/upload
Uploads are always constrained to the configured destination path; subfolders are created automatically.