TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Never Leaves Your Drive
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Never Leaves Your Drive. Aplikasi self-hosted yang menyatukan banyak akun Google Drive ke satu antarmuka — dengan REST API terbuka dan sistem API Key untuk integrasi.
EnStorage adalah centralized file storage dengan backend Google Drive multi-akun. EnStorage mengabstraksi kompleksitas mengelola banyak akun Drive menjadi satu antarmuka — pengguna cukup upload file, sistem otomatis memilih akun Google Drive mana yang paling tepat (free space terbesar).
Bagian dari ekosistem En-suite (EnCenter, EnVault, dsb), dengan REST API terbuka + sistem API Key sehingga bisa diintegrasikan ke aplikasi lain (n8n, mobile, script CLI, dll).
/s/{token} — file di Google Drive tetap PRIVATE.read | write | delete | full.en_<8-char-prefix>_<40-char-secret> — disimpan bcrypt.GET / POST / DELETE /api/v1/api-keys.owner & member.git clone https://github.com/enpii/enstorage.git
cd enstorage
cd backend
cp .env.example .env
composer install
# Generate APP_KEY (wajib — dipakai untuk enkripsi token OAuth)
php artisan key:generate
# Jalankan migrasi
php artisan migrate
# Seed user pertama (opsional)
php artisan db:seed
# Dev server
php artisan serve
cd web
cp .env.local.example .env.local
# Isi NEXT_PUBLIC_API_BASE & GOOGLE_CLIENT_ID
npm install
npm run dev # http://localhost:3000
cd mobile
cp .env.example .env.local
# Isi API_BASE & GOOGLE_CLIENT_ID
flutter pub get
flutter run
docker compose up -d
Akses:
http://localhost:3001http://localhost:8080/api/v1| Layer | Teknologi |
|---|---|
| Backend | Laravel 13, PHP 8.3, Sanctum 4, google/apiclient, intervention/image |
| Database | PostgreSQL 15 |
| Cache & Queue | Redis 7 |
| Web | Next.js 15 (App Router), React 19, MUI, Tailwind v4, TypeScript, i18next |
| Mobile | Flutter 3.22+, Riverpod 2, Dio 5, go_router 14 |
| Auth | Laravel Sanctum (cookie untuk web) + API Key (Bearer untuk mobile/external) |
| Storage | Google Drive OAuth2 (refresh token encrypted di DB) |
enstorage/
├── backend/ # Laravel API
│ ├── app/
│ │ ├── Http/Controllers/Api/
│ │ ├── Models/
│ │ └── Services/
│ ├── database/migrations/
│ └── routes/api.php
├── web/ # Next.js dashboard
│ └── src/
│ ├── app/(app)/
│ ├── components/
│ └── lib/
├── mobile/ # Flutter app
│ └── lib/
├── docs/ # Dokumentasi publik (lihat struktur di bawah)
└── docker-compose.yml # Stack produksi (web + backend)
| Dokumen | Untuk siapa | Isi |
|---|---|---|
| docs/getting-started.md | Semua developer | Setup lokal lengkap + troubleshooting |
| docs/architecture.md | Backend/systems engineer | High-level diagram, alur upload end-to-end |
| docs/database.md | Backend developer | Schema detail + relasi + enkripsi |
| docs/api.md | Integrator / front-end | Daftar endpoint + auth + contoh request |
| docs/development.md | Kontributor | Konvensi coding, testing, git workflow |
Dokumentasi API interaktif (Swagger/OpenAPI) tersedia di /api/documentation saat backend jalan.
backend/.env)APP_KEY= # wajib: php artisan key:generate
APP_URL=http://localhost:8080
FRONTEND_URL=http://localhost:3000
DB_PASSWORD= # password Postgres
GOOGLE_CLIENT_ID= # OAuth Web client (GCP)
GOOGLE_CLIENT_SECRET= # OAuth Web client secret (SERVER-SIDE ONLY)
web/.env.local)NEXT_PUBLIC_API_BASE=http://localhost:8080/api/v1
NEXT_PUBLIC_GOOGLE_CLIENT_ID= # OAuth Web client ID (public, boleh di-bundle)
mobile/.env.local)API_BASE=http://10.0.2.2:8080/api/v1 # Android emulator → host
GOOGLE_CLIENT_ID= # OAuth Web client ID untuk google_sign_in
⚠️ JANGAN taruh
GOOGLE_CLIENT_SECRETdi web/mobile — itu server-side only. Bundling-nya ke APK/JS = ekstraksi trivial.
# Backend
cd backend
php artisan migrate # jalankan migrasi
php artisan migrate:fresh --seed # reset + seed ulang
php artisan queue:work # jalankan worker (upload, thumbnail)
php artisan schedule:run # jalankan scheduled jobs
php artisan test # jalankan PHPUnit
# Web
cd web
npm run dev # dev server
npm run build && npm start # production build
npm run lint && npm run typecheck # quality gate
# Mobile
cd mobile
flutter pub get
flutter run
flutter test
flutter build apk # Android
flutter build ios # iOS
Fase development:
| Fase | Target |
|---|---|
| 1 | Foundation & Auth |
| 2 | Google Account & Quota |
| 3 | File & Folder Management |
| 4 | API Key & Integrasi |
| 5 | Web UI (Next.js) |
| 6 | Mobile App (Flutter) |
git checkout -b feat/nama-fiturgit commit -m "feat: deskripsi singkat"mainnpm run lint && npm run typecheck (web) dan php artisan test (backend) hijau.MIT — lihat LICENSE.