We publish our sql-over-http images to a private repository on Docker Hub: https://hub.docker.com/repository/docker/tines/sql-over-http
You can create your own (free) account at https://hub.docker.com/ and send us the Docker ID for that account. Alternatively, if you already have an appropriate account, you can send us on the Docker ID.
We'll then grant your user access to the appropriate repositories.
Here's an example of using docker-compose to quickly get the service up and running:
**> ls**
docker-compose.yml your-ssl-cert.crt your-ssl-cert.key
**> cat docker-compose.yml**
version: "2.2"
services:
sql-over-http:
container_name: sql-over-http
image: tines/sql-over-http:latest
volumes:
- ./your-ssl-cert.crt:/ssl/tls.crt
- ./your-ssl-cert.key:/ssl/tls.key
ports:
- "80:80"
- "443:443"
environment:
API_KEY: "your-secret-api-key"
DISABLE_POSTGRESQL_QUERIES: "false"
**> docker login**
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: your-docker-id
Password:
Login Succeeded
**> docker-compose pull**
Pulling sql-over-http ... done
**> docker-compose up -d**
Starting sql-over-http ... done
**> curl --insecure -X POST \
-H "X-API-Key: your-secret-api-key" \
-H "Content-Type: application/json" \
https://localhost/postgresql/query \
-d '{"your": "request here"}'**
The docker-compose.yml
file:
version: "2.2"
services:
sql-over-http:
container_name: sql-over-http
image: tines/sql-over-http:latest
volumes:
- ./your-ssl-cert.crt:/ssl/tls.crt
- ./your-ssl-cert.key:/ssl/tls.key
ports:
- "80:80"
- "443:443"
environment:
API_KEY: "your-secret-api-key"
DISABLE_POSTGRESQL_QUERIES: "false"
You'll need to separately get your own .crt
and .key
files for a SSL cert corresponding to the hostname you'll be be making sql-over-http available from.
You can disable queries to Postgres databases by setting the DISABLE_POSTGRESQL_QUERIES
enviromnent variable to "true"
Here's a simple one liner to generate an insecure self-signed cert for quick testing:
openssl req -x509 -out your-ssl-cert.crt -keyout your-ssl-cert.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")