PHP + MySQL Flat File Server and Web App
NOTE: Sandpiper is still in development. Use at your own risk.
Sandpiper is a simple, flat, and responsive web app for uploading and downloading your files. It has a minimalist web interface built with MaterializeCSS and AngularJS that let you quickly search through and manage your uploads.
- Simple: Sandpiper strives to accomplish the goal of hosting files through a web interface with as few frills as possible.
- Flat: To keep things simple, folders are intentionally omitted from Sandpiper. Instead, files are described using text tags.
- Responsive: The Sandpiper UI is built on MaterializeCSS, making it just as usable on mobile devices as it is on desktop.
Sandpiper is designed for and tested on LAMP configurations. The following dependencies are provided for installations on LAMP platforms:
- Apache >= 2.4.7 (not tested on previous versions)
- Rewrite module (
mod_rewrite
) enabled .htaccess
permission allowed
- Rewrite module (
- PHP >= 5.5
mysqli
extension enabledgd
extension enabled, >=1.8
- Place into desired server directory.
- Go to
install/
, runeasy_install.sh
and follow the prompts. - Run
new_user.sh
to create an administrative user. - Copy
config.php.example
toconfig.php
, and edit the MySQL connection arguments therein. - Ensure that your server user (eg,
www-data
orhttp
) and group have read and write permissions in theuploads/
directory and everything within it - Run
bower install
to download the necessary dependencies. - Create a scheduled job on your server to empty the
uploads/.trash
directory on a regular interval.
Log into the web interface with the login credentials you supplied in the
easy_install.sh
script. User accounts may be managed through the web
interface.
Sandpiper by Alex Arendsen, licensed under GPLv2.0 (see LICENSE
).
File type icons found in static/img/filetypes
is Teambox's
Free-file-icons, licensed under
the MIT license.
CAPTCHA is provided by Claviska's simple-php-captcha. It is licensed under the MIT license.
Front-end hashing provided by nevins-b's
javascript-bcrypt, which
includes Yves-Marie K. Rinquin's random number generator issac.js
.