- 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.git
command. - On your web server set
public
directory as a document root. - Install application dependencies using
composer install
command. - Configure pathing on your web server as described here.
- Set your database credentials in
config.ini
andsphinx.conf
. - Import
filehosting.sql
into your database. - Edit your Sphinx configuration file or replace it with already configured
sphinx.conf
file. - Initialize search indexes with the
indexer --all
command. - In order to enable automatic reindexing add
cli-tools/reindex/reindex.sh
to your crontab. - For production usage, change
dispaly_errors
option to0
in yourphp.ini
To run the testsuite, you'll need phpunit.
$ phpunit
If 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.