Skip to content
kleejaPublic

About

⬇️ File Upload/sharing application, used by thousands of webmasters since 2007.

Topics

Resources

Stars

193 stars

Watchers

16 watching

Forks

Latest commit

 

History

577 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English · العربية

Kleeja

The easiest way to run your own file upload and sharing service. Self-hosted, PHP-powered, and trusted by webmasters since 2007.

Latest release PHP License: MIT Code style: Prettier Discord

Download · Documentation · Features · Changelog · Report a bug

Kleeja upload page

Important

To run Kleeja on a live site, download a packaged build from the releases page. Don't deploy a clone of this repository: it tracks in-progress development.

Features

  • Uploads and sharing: visitors and members upload files and get shareable links.
  • Admin control panel: manage files, users, bans and settings from the browser.
  • One-click updates: update Kleeja itself from the admin panel.
  • Plugins and styles store: download, install, update and remove plugins and themes in one click.
  • Multilingual: ships with English and Arabic.

See the full feature list on the wiki.

Kleeja file sharing page

Requirements

  • PHP 8.0 or later with the pdo_mysql or pdo_sqlite extension (gd and zip recommended)
  • MySQL or MariaDB
  • A web server such as Apache or IIS (sample htaccess.txt and web.config included)

Installation

  1. Download the latest archive from the releases page and upload its contents to your web server.
  2. Make the cache/ and uploads/ directories writable by the web server.
  3. Open https://your-site.example/install/ in a browser and follow the installer.

The wiki covers web server configuration, upgrades and troubleshooting.

Local development

Run with Docker

The included Compose file starts Kleeja on Apache with PHP 8.2, a MySQL 8 database, and Mailpit to catch outgoing mail.

docker compose up -d --build
Service Address
Kleeja http://localhost:8080 (installer at /install/)
Mailpit UI http://localhost:8025/mailpit
MySQL 127.0.0.1:3306

When the installer asks for database details, use these values:

Setting Value
Host mysql
Database appdb
User appuser
Password apppass

To send mail through Mailpit, set the SMTP host to mailpit and the port to 1025.

Code formatting

The codebase is formatted with Prettier and @prettier/plugin-php. CI rejects pull requests that aren't formatted.

npm install                            # install the toolchain
npm run format                         # format everything
npm run format:check                   # check only (what CI runs)
git config core.hooksPath .githooks    # enable the pre-commit and commit-msg hooks

Templates (*.html) and vendored assets are excluded; see .prettierignore.

Contributing

Contributions are welcome. Before you open a pull request:

  1. Run npm run format so the Prettier check passes.
  2. Write commit messages in the Conventional Commits format, for example fix(auth): sign the whole login cookie payload. The commit-msg hook enforces this.

For questions, join the Discord server or open an issue.

License

Kleeja is released under the MIT License.

About

⬇️ File Upload/sharing application, used by thousands of webmasters since 2007.

Topics

Resources

Stars

193 stars

Watchers

16 watching

Forks

Releases

Packages

Used by

Contributors

Languages