About this project
Intrakill (InternalStorageOverkill) is a local, encrypted media storage application written in Kotlin Multiplatform. It targets JVM desktop and Android; iOS is not supported. The author notes it is best suited to grouped media attachments such as manga and comics.
Data model and storage
- Storage is a list of entries; each entry has a name, attachments and tags.
- The database is a SQLCipher-encrypted SQLite file named secured.db.
- Desktop path: ~/.Intrakill/databases/secured.db (Windows: c:\Users\%username%\.Intrakill\databases\secured.db).
- Android path: context.getDatabasePath("secured.db"), managed by the OS.
- The app is intended mainly for images and video.
Import/export
- A desktop instance can export its storage over the local network.
- The importer supplies the origin device's IP and password; after import, the same password unlocks the storage on the importing device.
- The design deliberately avoids cloud sharing.
Password behavior
- There is no password reset. Forgetting the password means losing the storage; brute force feasibility depends on password strength.
- There is no dedicated feature to recreate a storage; deleting the database file or reinstalling the app is suggested.
Build and run
- Android debug build: ./gradlew :composeApp:assembleDebug (or gradlew.bat on Windows).
- Desktop run: ./gradlew :composeApp:run (or gradlew.bat on Windows).
- IDE run configurations are also supported.
Implementation notes
- The UI/state architecture is built around the Decompose library, which the author credits with making state handling straightforward.
- The author states AI assistants influenced parts of the implementation and that Kotlin Multiplatform had a steep learning curve compared to Flutter and React.
Contributions are welcome via issues or pull requests.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.