Sign inSign up

rahulkatiyar1995/filedash

By rahulkatiyar1995

•Updated over 1 year ago

A modern, minimal, high-performance, Rust-based file browser for web

Image
0

891

rahulkatiyar1995/filedash repository overview

⁠FileDash

Docker Pulls Docker Image Size GitHub Release License

A modern, minimal, high-performance, Rust-based file browser for web.

⁠Tech Stack

  • Backend: Rust with Axum (Actix optional)
  • Frontend: React + Vite + TypeScript + TailwindCSS + shadcn/ui
  • Database: SQLite (for config/auth/multi-user)
  • Containerization: Docker

⁠Features

  • 📂 File Explorer (with metadata: name, size, date, permissions)
  • 🔄 File operations: upload, download (resumable), rename, delete, move
  • 🔍 Fuzzy search
  • 🔐 Auth (JWT/session)
  • 🌓 Dark mode, responsive UI
  • 🖼️ File previews (images, PDFs, text)
  • 🛡️ Security: sandboxed access, path validation, DOS protection

⁠Getting Started

⁠Prerequisites
  • Docker and Docker Compose installed

⁠Quick Start with Docker

⁠Using Docker Run (Simplest)
docker run -d \
  --name filedash \
  -p 8080:8080 \
  -v $(pwd)/files:/app/files \
  -v $(pwd)/data:/app/data \
  -e FILEDASH_AUTH__JWT_SECRET=your_secure_secret_here \
  rahulkatiyar19955/filedash:latest

Create a docker-compose.yml file:

version: '3.8'
services:
  filedash:
    image: rahulkatiyar19955/filedash:latest
    container_name: filedash
    ports:
      - '8080:8080'
    volumes:
      - ./files:/app/files
      - ./data:/app/data
      - ./logs:/app/logs
    environment:
      - FILEDASH_AUTH__JWT_SECRET=your_secure_secret_here
    restart: unless-stopped

Then run:

docker-compose up -d
⁠Access Your Files
  • Open your browser to http://localhost:8080
  • Your files will be accessible through the web interface
  • Files are stored in the ./files directory on your host

⁠Configuration

The application can be configured through environment variables:

VariableDescriptionDefault
FILEDASH_AUTH__JWT_SECRETJWT secret for authenticationRequired
FILEDASH_SERVER__PORTServer port8080
FILEDASH_DATABASE__URLDatabase URLsqlite:/app/data/filedash.db
FILEDASH_FILES__HOME_DIRECTORYFiles directory/app/files

⁠Local Development

⁠Prerequisites
  • Rust 1.70+ (install from rustup.rs⁠)
  • Node.js 18+ and npm
⁠Start the Backend
# Navigate to backend directory
cd backend

# Run the server
cargo run

The server will start on http://localhost:8080

⁠Start the Frontend
# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

The frontend will start on http://localhost:5173

⁠Building from Source

⁠Build Docker Image
docker build -t filedash .
⁠Build Binaries
# Backend
cd backend
cargo build --release

# Frontend
cd frontend
npm run build

⁠Security Features

  • 🛡️ Path Validation: Prevents directory traversal attacks
  • 🔒 JWT Authentication: Secure token-based auth
  • 🚫 DOS Protection: Rate limiting and file size limits
  • 📁 Sandboxed Access: Files restricted to configured directory
  • 🔐 Secure Headers: CORS, CSP, and security headers

⁠Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

⁠License

This project is licensed under the MIT License - see the LICENSE⁠ file for details.

⁠Support

Tag summary

Content type

Image

Digest

sha256:587d514e6…

Size

12.9 MB

Last updated

over 1 year ago

docker pull rahulkatiyar1995/filedash