Skip to content
/ server Public

HTTP server for GPGL console client remote push and pull

License

Notifications You must be signed in to change notification settings

gpgl/server

Repository files navigation

GPL PHP GPG Locker Server

This is the HTTP server for console client remote push and pull.

Docker Installation

The best way to install is with docker and docker-compose.

First download docker-compose.yml.

Then run the setup script.

docker-compose run --rm gpglserver setup

Finally bring up the network:

docker-compose up -d

There are also default environment variables which you can override.

GPGL_SERVER_PORT_SSL=4343 docker-compose up -d

Note that the server is configured to always redirect http to https, so if you override GPGL_SERVER_PORT_SSL then you should always connect directly to that port number.

The setup script generates a self-signed SSL certificate key pair. If you would like to use your own certificate, then you can copy it into the running container and it will be persisted to volume storage.

docker-compose up -d
docker cp /path/to/public.pem  gpgl_server:/var/www/html/storage/ssl-public.pem
docker cp /path/to/private.key gpgl_server:/var/www/html/storage/ssl-private.key
docker-compose restart

Manual Installation

Follow the documentation for installing a Laravel application.

tl;dr

  • create a MySQL database and user account
  • cp .env.example .env
  • update credentials in .env
  • composer install
  • npm install
  • npm run prod
  • php artisan migrate
  • php artisan key:generate
  • php artisan passport:install
  • generate SSL certificate key-pair
  • proxy nginx
  • enable firewall rules

Testing

The API endpoints are all covered within integration tests in gpgl console.

For the web interface, I just opened up a can of Laravel and dished it out. It's very simple and built with stock components, so there are no tests.

The Laravel framework is open-sourced software licensed under the MIT license.