diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5138c56 Binary files /dev/null and b/.DS_Store differ diff --git a/.docker/Dockerfile b/.docker/Dockerfile new file mode 100644 index 0000000..b4c3e57 --- /dev/null +++ b/.docker/Dockerfile @@ -0,0 +1,12 @@ +FROM php:7.4-apache + +# Set working directy at web server root +WORKDIR /var/www/html + +# Manually installs Lockbox +COPY ../lockbox/* / +COPY ../config/env.example.php ./php/env.php +COPY ../config/key.public . + +RUN mkdir /var/www/data +RUN chmod 666 /var/www/data \ No newline at end of file diff --git a/.gitignore b/.gitignore index dfb8373..f0772f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -php/env.php +lockbox/php/env.php diff --git a/README.md b/README.md index a58375c..2de18fb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ -![](./img/logo.png) +![](lockbox/img/logo.png) -This is the PHP/webserver component for Lockbox. For instructions visit [the Lockbox app's main repository](https://git.openprivacy.ca/openprivacy/lockbox). \ No newline at end of file +This is the PHP/webserver component for Lockbox. For instructions visit [the Lockbox app`s main repository](https://git.openprivacy.ca/openprivacy/lockbox). + + +## Docker Install Instructions +Right now, there is a very basic process to building and deploying a Docker image of Lockbox in a container that contains php and an instance of apache webserver. The image has been tested on linux base OS and will need to be run of a host that already has the OS installed. Future development will aim to have a more robust install. + +Note: This version of the Docker deployment is using an `env.php` file instead of environment variables due to some of the nuances with how php handles environment variables. + +The `.docker` directory contains a Dockerfile to build an image for your deployment. Do the following before building the image: +* Modify `config/env.example.php` based on any customizations +* Generate a keypair (you can use the script in the `cmd` folder (`genkeys.php.txt`, which needs to be renamed to `genkeys.php` prior to use, or use a key pair you have already generated) and place the public key in the `config` folder as `key.public` \ No newline at end of file diff --git a/php/env.example.php b/config/env.example.php similarity index 67% rename from php/env.example.php rename to config/env.example.php index a73f928..96318f7 100644 --- a/php/env.example.php +++ b/config/env.example.php @@ -3,7 +3,7 @@ $conf_vars = [ 'LB_DL_PASS' => '', 'LB_FILE' => '/var/www/data/lockbox.dat', // This is the submissions file -- it should not be in your web directory!!! - 'LB_PUBKEY_FILE' => 'lockbox-web/key.public' // Public key file location relative to the website root (i.e., $_SERVER['DOCUMENT_ROOT']) + 'LB_PUBKEY_FILE' => '/var/www/html/key.public' // Absolute parth of public key file ]; // restrict the (optional) admin form to these IPs diff --git a/admin.php b/lockbox/admin.php similarity index 100% rename from admin.php rename to lockbox/admin.php diff --git a/css/custom.css b/lockbox/css/custom.css similarity index 100% rename from css/custom.css rename to lockbox/css/custom.css diff --git a/css/normalize.css b/lockbox/css/normalize.css similarity index 100% rename from css/normalize.css rename to lockbox/css/normalize.css diff --git a/css/skeleton.css b/lockbox/css/skeleton.css similarity index 100% rename from css/skeleton.css rename to lockbox/css/skeleton.css diff --git a/img/logo.png b/lockbox/img/logo.png similarity index 100% rename from img/logo.png rename to lockbox/img/logo.png diff --git a/index.php b/lockbox/index.php similarity index 99% rename from index.php rename to lockbox/index.php index 4aa3908..d2f1188 100755 --- a/index.php +++ b/lockbox/index.php @@ -1,4 +1,4 @@ -