1*1c60b9acSAndroid Build Coastguard Worker# lws minimal http server deaddrop
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates how you can leverage the lws deaddrop plugin to make a
4*1c60b9acSAndroid Build Coastguard Workersecure, modern html5 file upload and sharing application.
5*1c60b9acSAndroid Build Coastguard Worker
6*1c60b9acSAndroid Build Coastguard WorkerThe demo is protected by basic auth credentials defined in the file at
7*1c60b9acSAndroid Build Coastguard Worker./ba-passwords - by default the credentials are user: user1, password: password;
8*1c60b9acSAndroid Build Coastguard Workerand user: user2, password: password again.
9*1c60b9acSAndroid Build Coastguard Worker
10*1c60b9acSAndroid Build Coastguard WorkerYou can upload files and have them appear on a shared, downloadable list that
11*1c60b9acSAndroid Build Coastguard Workeris dynamically updated to all clients open on the page.  Only the authenticated
12*1c60b9acSAndroid Build Coastguard Workeruploader is able to delete the files he uploaded.
13*1c60b9acSAndroid Build Coastguard Worker
14*1c60b9acSAndroid Build Coastguard WorkerMultiple simultaneous ongoing file uploads are supported.
15*1c60b9acSAndroid Build Coastguard Worker
16*1c60b9acSAndroid Build Coastguard Worker## build
17*1c60b9acSAndroid Build Coastguard Worker
18*1c60b9acSAndroid Build Coastguard WorkerTo build this standalone, you must tell cmake where the lws source tree
19*1c60b9acSAndroid Build Coastguard Worker./plugins directory can be found, since it relies on including the source
20*1c60b9acSAndroid Build Coastguard Workerof the raw-proxy plugin.
21*1c60b9acSAndroid Build Coastguard Worker
22*1c60b9acSAndroid Build Coastguard Worker```
23*1c60b9acSAndroid Build Coastguard Worker $ cmake . -DLWS_PLUGINS_DIR=~/libwebsockets/plugins && make
24*1c60b9acSAndroid Build Coastguard Worker```
25*1c60b9acSAndroid Build Coastguard Worker
26*1c60b9acSAndroid Build Coastguard Worker## usage
27*1c60b9acSAndroid Build Coastguard Worker
28*1c60b9acSAndroid Build Coastguard Worker```
29*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-http-server-deaddrop
30*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:09:7108] USER: LWS minimal http server deaddrop | visit https://localhost:7681
31*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:09:8511] NOTICE: Creating Vhost 'default' port 7681, 1 protocols, IPv6 off
32*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:09:8522] NOTICE:  Using SSL mode
33*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:0755] NOTICE:  SSL ECDH curve 'prime256v1'
34*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:2562] NOTICE: lws_tls_client_create_vhost_context: doing cert filepath localhost-100y.cert
35*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:2581] NOTICE: Loaded client cert localhost-100y.cert
36*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:2583] NOTICE: lws_tls_client_create_vhost_context: doing private key filepath
37*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:2593] NOTICE: Loaded client cert private key localhost-100y.key
38*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:2596] NOTICE: created client ssl context for default
39*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:5290] NOTICE:   deaddrop: vh default, upload dir ./uploads, max size 10000000
40*1c60b9acSAndroid Build Coastguard Worker[2018/12/01 10:31:10:5376] NOTICE:    vhost default: cert expiry: 730203d
41*1c60b9acSAndroid Build Coastguard Worker...
42*1c60b9acSAndroid Build Coastguard Worker```
43*1c60b9acSAndroid Build Coastguard Worker
44*1c60b9acSAndroid Build Coastguard WorkerVisit https://localhost:7681, and follow the link there to the secret area.
45*1c60b9acSAndroid Build Coastguard Worker
46*1c60b9acSAndroid Build Coastguard WorkerGive your browser "user1" and "password" as the credentials.  For testing to
47*1c60b9acSAndroid Build Coastguard Workerconfirm what a different user sees, you can also log in as "user2" and
48*1c60b9acSAndroid Build Coastguard Worker"password".
49*1c60b9acSAndroid Build Coastguard Worker
50