Android app that automatically backs up local folders to Filen end-to-end encrypted cloud storage.
- Automatic sync — watches folders for new files and uploads them in the background
- URL downloader — paste a direct file URL to download it into any folder (synced automatically if the folder is watched)
- End-to-end encrypted — files are encrypted on-device before upload using Filen's E2E encryption
- All file types — PDFs, images, videos, documents — anything in the watched folder
- Flexible rules — configure multiple sync rules, each with its own local folder and cloud destination
- Delete after upload — optionally remove local files after successful upload, with extension-based retain filters (e.g. keep
.rawfiles) - Wi-Fi only mode — optionally restrict uploads to unmetered connections
- Foreground service — continues watching folders even when the app is in the background
- Install the APK from Releases
- Open the app and go to Settings
- Sign in with your Filen account (email + password + 2FA if enabled)
- Go to Rules and add a sync rule:
- Pick a local folder using the folder picker
- Enter a cloud destination path (e.g.
Phone/Camera)
- Tap Start Sync on the Home screen
- Kotlin + Jetpack Compose
- Room (local database)
- WorkManager (background uploads)
- Hilt (dependency injection)
- Ktor (HTTP client)
- DataStore + EncryptedSharedPreferences (settings)
- Foreground Service + FileObserver (folder watching)
./gradlew assembleDebugRequires Android Studio Meerkat or later, JDK 21.
Tagged releases (v*) automatically build and publish a signed APK via GitHub Actions.
- Increment
versionCodeby 1 and updateversionNameto match the tag inapp/build.gradle.kts:versionCode = 2 // always +1 from previous release versionName = "0.0.2" // matches the git tag
- Commit the change:
git commit -am "chore: bump version to x.y.z" - Tag the release:
git tag vx.y.z - Push:
git push && git push origin vx.y.z
GitHub Actions will build, sign, and publish the APK to GitHub Releases automatically.
MIT