9track is a personal content indexer. Think a card-catalog for your files.

The idea is that there should be a good way to index all your pictures, music, files, etc. that you have stored on other machines, and a way to retrieve that information as needed and inspect it.

What I ended up building is a file browser for directory groups, with previews and other sorts of fun things. Its goal is to be the other half of something like Dropbox, where Syncthing is providing the actual file-hauling, 9track is there to deliver you a browsable index (and sharable index) of files that you’ve got stored away on some central server somewhere.

Design

9track is built around a central index. This central index, originally built around SQLite but likely moving to a better index later on, is a simple form of a file browser.

One web front end, written in Flask, handles the whole file browsing experience. A crawler back-end handles finding files and indexing them via inotify and through complete filesystem indexing.