SatsuDrive adalah aplikasi Cloud Storage profesional dan production-ready yang dibangun dengan technologies modern (Laravel 10 + React 18 + Vite + Tailwind CSS).
- PHP 8.1+
- MySQL 8.0+
- Node.js 16+
- Composer
# 1. Setup Environment
cp .env.example .env
composer install
npm install
php artisan key:generate
# 2. Database Setup
php artisan migrate
php artisan storage:link
# 3. Start Backend (Terminal 1)
php artisan serve
# 4. Start Frontend (Terminal 2)
npm run dev
# 5. Access Application
# http://localhost:8000Backend:
- Laravel 10.x with Sanctum authentication
- PHP 8.1+ with full type hints
- MySQL 8.0 database
- Eloquent ORM
Frontend:
- React 18.x with Context API
- Vite 5.x for fast builds
- Tailwind CSS 3.x
- Axios for API calls
- File Management (upload, download, preview, rename, delete)
- Folder Management (create, organize, infinite nesting)
- File Sharing (with expiration and password protection)
- Trash & Recovery (soft deletes)
- Storage Analytics (quota tracking, statistics)
- Security (role-based access, file hashing)
- Activity Logging (complete audit trail)
Clean architecture with separation of concerns:
- Controllers Request handling
- Services Business logic
- Models Data representation
- Database Persistence
Design patterns implemented:
- Service Layer Pattern
- Policy-Based Authorization
- Form Request Validation
- API Resources
- SOLID Principles
app/
Http/Controllers/Api/ API Endpoints
Models/ Database Models
Services/ Business Logic
Policies/ Authorization
resources/js/
Components/ React Components
Pages/ Page Components
Services/ API Services
Context/ State Management
database/
migrations/ Schema Definitions
routes/
api.php API Routes
config/
storage.php App Configuration
Files (10 endpoints)
- List, upload, download, delete, restore, preview, rename, move
Folders (6 endpoints)
- List, create, update, delete, get tree structure
Sharing (7 endpoints)
- Create, update, revoke shares, manage permissions
Activity (3 endpoints)
- Activity logs, recent activity, statistics
See API_DOCUMENTATION.md for complete reference.
- users: User accounts with storage quotas
- files: Uploaded files with SHA256 hashing
- folders: Nested folder organization
- shared_files: Share tracking with expiration
- activity_logs: Complete audit trail of user actions
All tables include timestamps and support soft deletes for recovery.
Complete documentation available in project:
- SETUP_GUIDE.md - Installation & configuration guide
- API_DOCUMENTATION.md - Complete API reference with examples
- ARCHITECTURE.md - System design, patterns & database schema
- DEPLOYMENT.md - Production deployment guide (Server/Docker/Heroku)
php artisan migrate # Run database migrations
npm run build # Build for production
php artisan cache:clear # Clear cache
php artisan storage:link # Create storage symlink
php artisan test # Run testsdocker-compose up -d
docker-compose exec app php artisan migrate
# Access at http://localhost:8000- Authentication - Sanctum token-based API auth
- Authorization - Policy-based access control
- Data Protection - SHA256 file hashing, CSRF protection
- File Security - MIME type validation, extension whitelist
- Recovery - Soft deletes for file restoration
Edit config/storage.php to customize:
- Max file size
- Allowed MIME types
- User storage quotas
- Storage plans
Storage Link Error
rm public/storage
php artisan storage:linkDatabase Connection
- Check .env database settings
- Ensure MySQL is running
- Run
php artisan migrate
File Upload Issues
- Update PHP settings:
post_max_size = 5G - Update PHP settings:
upload_max_filesize = 5G
CORS Errors
- Configure config/cors.php
- Add frontend URL to allowed origins
- Remove local-only artifacts (node_modules, vendor, public/build) if present.
- Initialize git and push:
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/<your-username>/satsudrive.git
git push -u origin mainFor cPanel/XAMPP-style hosting, follow the dedicated steps in DEPLOYMENT.md and make sure:
- Document root points to public/
- .env is set to production values and
APP_DEBUG=false - storage/ and bootstrap/cache/ are writable
MIT License - Free for personal and commercial use.
For issues, questions, or contributions:
- Check SETUP_GUIDE.md for troubleshooting
- Review API_DOCUMENTATION.md for API help
- See DEPLOYMENT.md for production setup
Production Ready | SaaS Architecture