OutpostApp is a simple file upload web application. It can be use for any of these purposes:
- File upload service to use on your computer as a private inbox.
- A public file upload service.
It may have rough edges, but it did what it was designed for. Feel free to adopt and make it into a rapidshare-like platform. I'll welcome any pull requests.
As an example, OutpostApp can be used to manage client uploads intra-organization:
Outpost - an endpoint you expose towards a client, you can have as many as you wish. Example could be 'Acme Corp'. Location - a folder or topic you wish to set per client, such as 'Acme Corp / Assets', or 'Acme Corp / Documents'.
Each location can have
- File upload limit
- Rolling file location
- Notifications
- Upload files, limit file sizes and types.
- Automatic management/maintenance of uploads
- Define many Outposts
- Each Outpost holds several locations, where a location can be rolling i.e. after 24 hours archive the current location and roll into a new one.
- Automatic notifications (email).
- Web frontend.
- Configurator (
OutpostApp
), a Rails app responsible for configuration of elements and viewing of the activity in the system. - Uploader (
UploaderApp
), a Sinatra app responsible for taking in uploads. Can/should be mounted separately. - Downloader (
DownloaderApp
), a Sinatra app responsible for serving downloads. Can/should be mounted separately if needed.
A public uploads service a-la rapid-*.
- Run
OutpostApp
on one machine to serve all of the different configurations of the system. - Run
UploaderApp
on several machines, several processes to handle big uploads. Optionally also use nginx's features for file uploads (only dispatch toUploaderApp
when file upload complete). - Run
DownloaderApp
on similar setup asUploaderApp
, but it is recommended to make use of CDN.
A private upload service.
- Run
OutpostApp
as is, using thin is recommended. Make sure to open up a port and have a viable DNS mapping. - As a convenience have the root uploads folder on your desktop :)