|- .devcontainer <- VSCode setup files for Codespaces
|- .github <- GitHub-specific files
| |- action-run-tests <- Run the LRR Test Suite
| |- ISSUE_TEMPLATE <- Template for bug reports
| |- workflows <- GitHub Actions workflows
| |- CD <- Continuous Delivery, Nightly builds
| +- Release <- Build latest and upload .zip to release post on GH
| +- FUNDING.yml <- GitHub Sponsors file
|- content <- Default content folder
|- lib <- Core application code
| |- LANraragi.pm <- Entrypoint for the app, contains basic startup code and routing to Controllers
| |- Shinobu.pm <- Background Worker (see below)
| |- Controller <- One Controller per page
| | |- Api <- API implementation
| +- *.pm <- Index, Config, Reader, etc.
| |- Model <- Application code that doesn't rely on Mojolicious
| |- Archive.pm <- Serve files from archives and OPDS catalog
| |- Backup.pm <- Encodes/Decodes Backup JSONs
| |- Category.pm <- Save/Read Category data
| |- Config.pm <- Communicates with the Redis DB to store/retrieve Configuration
| |- Plugins.pm <- Executes Plugins on archives
| |- Reader.pm <- Archive Extraction
| |- Search.pm <- Search Engine
| |- Stats.pm <- Tag Cloud and Statistics
| +- Upload.pm <- Handle incoming files (Download System)
| +- Plugin <- LRR Plugins are stored here
| +- Utils <- Generic Functions
| +- Minion.pm <- Minion jobs are implemented here
|- log <- Application Logs end up here
|- public <- Files available to Web Clients
| |- css <- Global CSS sheets
| +- vendor <- Third-party CSS sheets obtained through NPM
| |- img <- Image resources
| |- js <- JavaScript functions
| +- vendor <- Third-party JS obtained through NPM
| |- temp <- Archives are extracted in this folder to be served to clients. Also used for thumbnail creation.
| | |- server.pid <- PID of the currently running Prefork Manager process, if existing
| | |- shinobu.pid <- Last known PID of the Shinobu File Watcher (Serialized Proc::Simple object)
| | +- minion.pid <- Last known PID of the Minion Job Queue (Serialized Proc::Simple object)
| +- themes <- Contains CSS sheets for Themes.
| |- backup <- Standalone script for running database backups.
| |- launcher.pl <- Launcher, uses either Morbo or Prefork to run the bootstrap script
| +- lanraragi <- Bootstrap script, starts LANraragi.pm
|- tests <- Tests go here
|- templates <- Templates for Web pages
|- tools <- Contains scripts for building and installing LRR.
| |- _screenshots <- Screenshots
| |- Documentation <- What you're reading right now
| |- build <- Build tools and scrpits
| |- windows <- Windows build script and submodule link to the Karen WPF Bootstrapper
| |- docker <- Dockerfile and configuration files for LRR Docker Container
| |- homebrew <- Script and configuration files for the LRR Homebrew cask
| |- cpanfile <- Perl dependencies description
| |- install.pl <- LANraragi Installer
| +- lanraragi-systemd.service <- Example SystemD service
|- lrr.conf <- Mojolicious configuration file
|- .perltidy.rc <- PerlTidy config file to match the coding style
|- .eslintrc.json <- ESLint config file to match the coding style
+- package.json <- NPM file, contains front-end dependency listing and shortcuts