A simple cross-platform remote file management tool to upload and download files over HTTP/S
๐ License | โจ Features | ๐ Install | ๐ Releases |
---|
โก Fast - Quick startup, performant API
โจ Easy to install - No dependencies*, just one command
๐ Upload and download files easily - Using HTTP/S with a sexy web UI
๐ Cross platform - Windows, Linux and macOS support
*Except for unzip
to extract the executable from the archive
โ You should not run scripts off the internet without checking them first. You can view the install script here.
You can run an automated install of downcat using the command below. It is highly recommended you run it as root to avoid any permissions-related problems.
curl -sSL https://raw.githubusercontent.com/sexnine/downcat/main/install/downcat_linux.sh | sudo bash
- Download the latest binary from the releases tab
- Unzip the file
- Place the executable into your path
- Make it executable
- Run with
downcat
See ๐ Building and other info under โ Development and follow steps 3-5 just above.
Run downcat to serve your current directory and then open the link in your browser
~$ downcat ๐ Starting downcat... โ Downcat v0.3.2 running! โจ Listening on http://192.168.0.23:3030/
See extra options by viewing the help with downcat -h
or downcat --help
You can update downcat to the latest available version using downcat update
Downcat is not meant to be used as a web server. It is meant to be used as a quick and easy file management utility for when you quickly need to up/download a file from a server.
Argument | Description | Default Value |
---|---|---|
-h, --help |
Shows help message | |
-V, --version |
Shows version | |
--disable-update-check |
Disables update check on startup | Check for updates |
-p, --port <port> |
Port to listen on | 3030 |
--ssl |
Enables SSL (Recommended) | Off |
-P, --password <password> |
Sets a password for accessing downcat and the APIs (Recommended). Will need to reauthenticate when restarting downcat, even when using the same password. |
None |
-b, --bind <host> |
The IP to listen on | Local IP (or 0.0.0.0 if couldn't get local IP) |
๐ Prerequisites | NodeJS & NPM | Rust & Cargo |
---|
- Clone the repo
git clone https://github.com/sexnine/downcat.git
- Go into the project's directory
cd downcat/
- Go into the frontend directory
cd frontend/
- Install NPM dependencies with
npm i
- Rust dependencies will automatically install when building or running the project with
cargo build
&cargo run
respectively.
- Go into the frontend directory
cd frontend/
- Run the dev server with
npm run dev
. The dev server supports hot reloading. - Modify the API endpoint in
.env.development
if you need to.
Note: While developing, the frontend and backend should be run separately. When building a release version, the frontend's files will be embedded into the rust binary.
- Simply run with
cargo run
in the project root.
- Build the frontend
- Go into the frontend directory
cd frontend/
- Install dependencies if you haven't already with
npm i
- Build the frontend with
npm run build
- Go into the frontend directory
- Build using
cargo build --release
- Retrieve Files and Folders
v0.1.0
- Get metadata
v0.1.0
- Sort file list
v0.1.0
- Search file list
v0.3.2
- Enhanced File Icons
- Download multiple files
- Directory History
v0.1.0
- Get metadata
- Uploading Files
v0.3.0
- Uploading multiple files
v0.3.2
- Uploading Folders
- Uploading multiple files
- Managing Files/Folders
- Renaming
- Deleting
- Moving
- Copying
- SSL
v0.2.0
- Optionally enable SSL using
--ssl
flag
- Optionally enable SSL using
- Password Authentication
v0.1.0
- Updater
v0.2.0
- Checks for updates
v0.2.0
-
downcat update
to perform a self-updatev0.2.0
- Checks for updates
- Cross Platform support
- Windows
- Linux
- MacOS
v0.3.1
- Allow downcat to access any directory
- With the
--any
flag, downcat will be able to access any directory or files it has permissions to
- With the
- @sc0tfree for the original inspiration for this project (updog)
- @jethr0-1 (jethro#1547 on Discord) for making a Linux install script for downcat
Made with ๐ by sexnine