- Twitter Bootstrap
- Slim micro framework
- Redis key-value NoSQL database
- Pimple dependency injection container
- Twig template engine
- Sphinx search engine
- jQuery javascript library
- GetId3 media file parser
- Codeception testing PHP framework
- Selenium automates browsers
- PHP >= 7.1 and extensions:
mbstringPDOpdo_mysqlpdo_pgsqlpgsqlredisgd - PostgreSQL
- Sphinx
- Redis
- Composer
- Use the
git clone https://github.com/Qevg/filehosting.gitcommand to clone the repository - Use the
cd filehostingcommand to go to the project directory - Use the
composer installcommand to install dependencies
- Use the
make configure-docker-productioncommand to configure production enviroment - Start the containers
docker-compose -f docker-compose.production.yml up - Restore database dump
docker exec -i $(docker-compose -f docker-compose.production.yml ps -q postgres) psql -U filehosting -d filehosting_production < filehosting.sql
- Install php extensions:
mbstringPDOpdo_mysqlpdo_pgsqlpgsqlredisgd - Change configuration in the
config/config_production.jsonandconfig/sphinx.conf - Сonfigure the web server as specified here
- Set
publicdirectory as a document root on your web server - Configure params
file_uploads,upload_max_filesize,post_max_size,max_file_uploads,client_max_body_size,sendfile, etc. - Import database
filehosting.sqlon your database - Initialize search indexes with the
indexer --config config/sphinx.conf --allcommand - Start sphinx service with the
searchd --config config/sphinx.confcommand
If your server has XSendFile module installed and configured, then you can enable it in the config/config_production.json file, setting the XSendFile option to on. If you're using Nginx don't forget to set storage folder as internal in your config file.
Example:
location /storage {
internal;
root /path/to/project;
}
- Use the
composer installcommand to install dependencies - Use the
make configure-docker-testingcommand to configure testing enviroment - Use the
docker-compose -f docker-compose.testing.yml run --rm codecept runcommand to start containers and run tests
This application is licensed under the MIT license. For more information refer to License file.