A secure, lightweight file upload service with sexy anti-virus protection and beautiful previews.
git clone <repo-url>
cd eng_day_FileNest
# OPTIONAL: Start the sexy anti-virus scanner
# The app will run without Docker. Just not the anti-virus
docker-compose up -d clamav
# Setup Rails
bundle install
bin/rails db:create db:migrate
bin/rails server
Visit http://localhost:3000
and start uploading! 🎉
SKIP_VIRUS_SCAN=true bin/rails server
- Real-time virus scanning with ClamAV integration
- Every file is scanned before it touches your system
- EICAR test detection - try uploading a test virus!
- Fail-safe design - infected files are blocked instantly
- Dockerized scanner - keeps your system clean
- Image previews - JPG, PNG, GIF, SVG support
- Text file viewing - TXT, MD, CSV files
- Modal preview with full-screen support
- Instant loading with smooth animations
- Click to rename any file instantly
- Real-time validation of file names
- Keyboard shortcuts (Enter to save, Escape to cancel)
- Extension protection - keeps files safe
- One-click downloads with proper file names
- Owner-only access - your files stay yours
- Bulk operations coming soon
- Drag & drop file uploads
- Real-time progress bars
- Responsive design works on all devices
- Material Design with smooth animations
- Ruby 3.3.5+
- PostgreSQL
- Docker (for the sexy anti-virus)
Type | Extensions | Max Size |
---|---|---|
Images | JPG, PNG, GIF, SVG | 2MB |
Documents | TXT, MD, CSV | 2MB |
Want to see the sexy anti-virus in action?
# Quick virus test
ruby script/simple_virus_test.rb
# Full test suite
ruby script/test_virus_scanning.rb
Try uploading the EICAR test virus - it gets blocked instantly! 🦠❌
- JWT authentication - secure API access
- File ownership - users only see their files
- Virus scanning - every upload is checked
- Input validation - malicious files blocked
- CORS protection - API security built-in
- Register/Login - create your account
- Drag & Drop - upload files instantly
- Preview - click the eye icon to view files
- Rename - click any filename to edit
- Download - grab your files anytime
- Delete - remove files you don't need
export RAILS_ENV=production
export SECRET_KEY_BASE=your_secret_key
export DATABASE_URL=your_database_url
export CLAMAV_HOST=your_clamav_host
export REQUIRE_VIRUS_SCAN=true
bin/rails db:migrate
bin/rails server
ClamAV not working?
docker-compose logs clamav
Database issues?
bin/rails db:reset
Want to skip virus scanning?
SKIP_VIRUS_SCAN=true bin/rails server
FileNest - Simple. Secure. Sexy anti-virus included. 🛡️✨