Tagem - A Self-hosted Feature-Rich File Manager for Your Server

Tagem - A Self-hosted Feature-Rich File Manager for Your Server

A single page application, with associated command-line utilities, for the rapid categorising and accessing of files, based on assignable attributes such as (hierarchical) tags, named variables, file sizes, hashes, and audio duration.

Features

  • Supports most common file formats
  • Hashing of local files.
    • Hashes include MD5, SHA256, and DCT (visual hashing of images and video).
    • These hashes can be used in qry to facilitate fast manual de-duplication.
    • Hashing of remote files is planned.
  • Text editor
    • More of a text creator atm, as editing existing files is currently restricted.
  • Ordering, filtering etc. of results in the tables on the page.
  • qry: A simple query language that allows for short and human-friendly queries that automatically translate to complex SQL queries
    • Combine ANDs and ORs (intersections and unions) of many different filters (for attributes like size, views, likes, tags; hashes in common with other files; etc).
    • It can search for all types of things, not just files but also the tags themselves.
    • See the full documentation.
  • Heirarchical tags
    • Any tag can have any number of parent tags and any number of child tags.
  • Everything can be tagged
    • Eras, files, directories, devices, and even tags themselves (as parent tags)
    • For instance, the directory https://www.youtube.com/watch?v- could be tagged Video, and that tag will be applied to all files within.
  • Support for remote files
    • Remote files are as accessible as local files (except for some sites that tell the browser not to display them within iframes - though there's a relatively simple workaround for that).
    • You can add files from the server's attached storage devices, and also from remote websites (including an option for downloading with youtube-dl). Local copies of remote files are treated as backups, and are listed on the remote file's page.
    • With the view filesystem option, this means that - provided the server has access to a script written for the specific website - a website's contents could be easily viewable in the table view.
  • Eras
    • Tagged time intervals of audio and video files.
    • These can be searched for, and used in playlists interchangeably with files themselves.
    • Eras can be downloaded (from a local file or remote URL) into their own file.
      • NOTE: This currently requires ffmpeg to be installed alongside this server. However, it will eventually be combined into the server itself.
  • Playlists
    • Playlists can be created on the fly out of any selection of files and/or eras (in any combination).
  • Support for other databases
    • Files can be associated with posts from other databases, so long as those databases follow a strict structure.
    • For instance, a Reddit post could be scraped, and associated with the URL of the linked article, as here
    • Each external database can, if it includes the necessary tables, display a lot more information than just the comments under a post, even listing all the posts (translated to our files) that a single user has commented on.
    • An example script for scraping Reddit posts is included in this project
  • Tag thumbnails
    • These thumbnails are inherited from their parents, unless the child has a thumbnail of its own.
  • file2 values
    • Files can be assigned arbitrary values, currently integers and datetimes.
    • For instance, you could have a Score attribute for each user to assign to files.
  • Permissions system
    • Different users can be assigned different blocklists of tags, and will not be able to view any era/file/directory/device with such a tag, or a descendant of such a tag.
    • Different users can have different allowed actions, such as viewing files, editing tags, creating eras, assigning tags, and adding files.
    • A big caveat here is that the login system is currently only a placeholder - it does not yet even ask for a password.
  • Low footprint
    • Almost all executed JavaScript was written by hand - only one 3rd party library is loaded
    • On Firefox, each page consumes 10-15MB - comparable to a Google search results page
    • The CSS is designed to avoid unnecessarily moving parts

Supported Systems

  • Linux

License

The app is released under the GPL-3.0 License

Resources

GitHub - NotCompsky/tagem: A broad family of utilities for organising files based on hierarchical tagging, from web server to a computer vision dataset creation pipeline.
A broad family of utilities for organising files based on hierarchical tagging, from web server to a computer vision dataset creation pipeline. - NotCompsky/tagem







Open-source Apps

9,500+

Medical Apps

500+

Lists

450+

Dev. Resources

900+

Read more