- Anonymous file upload
- Downloads counter for each file
- For uploader - ability to delete a file from the app
- Thumbnails for images on the download page
- Application is available in multiple languages
- Player for audio and video files on the download page
- Additional info for images, audio and video files on the download page
- Ability to post comments for files without reloading the page
- Tree-like comments for files
- Fulltext search in files names
- Ability to set maximum file size for uploaded files through configuration file
- Simple command line interface for administrators, that allows to add/delete files and comments
- Twitter Bootstrap
- Slim micro framework
- Twig template engine
- jQuery javascript library
- video.js video player
- PHPUnit
- GetId3
- Web server with PHP >=5.6 support.
- PostgreSQL database.
- Sphinx search engine.
- Composer packet manager.
- Cron
- Clone the repository using
git clone https://github.com/foobar1643/filehosting.gitcommand. - On your web server set
publicdirectory as a document root. - Install application dependencies using
composer installcommand. - Configure pathing on your web server as described here.
- Set your database credentials in
config.iniandsphinx.conf. - Import
filehosting.sqlinto your database. - Edit your Sphinx configuration file or replace it with already configured
sphinx.conffile. - Initialize search indexes with the
indexer --allcommand. - In order to enable automatic reindexing add
cli-tools/reindex/reindex.shto your crontab. - For production usage, change
dispaly_errorsoption to0in yourphp.ini
To run the testsuite, you'll need phpunit.
$ phpunitIf your server has X-Sendfile module installed and configured, you can enable file downloading with the use of X-Sendfile.
To do that you'll need to set enableXsendfile option in config.ini to 1. If you're using Nginx don't forget to set storage folder as internal in your nginx.conf.
Proper file downloading with the use of X-Sendfile guaranteed only for Apache and Nginx servers.
If you want Sphinx to store its logs and indices in a different directory, you can specify the path using
SPHINX_ROOT environment variable. Default value is /var/sphinx/.
If you want to contribute a translation, please refer to CONTRIBUTING for details.
This application is licensed under the MIT license. For more information refer to License file.