On Premise
Docker allows you to run anywhere, as long as Docker is installed. This also means that you can run our Fonto Connectors Docker image on your own server. This tutorial describes a minimal way to get Fonto Connectors up and running on your local server. Since Connectors runs on the default Docker infrastructure, you can use any Docker compliant monitoring and scaling tools.
You need to enable scaling in order to use scaling tools.
-
Docker client which supports Linux containers
-
An SSL certificate (
server.crt
&privatekey.key
file) -
A built Docker image of Fonto Connectors
This guide shows an example on running Fonto Connectors using Docker Compose with the NGINX web server to handle SSL offloading. But you can use any other web server that supports SSL offloading.
Using a web server to handle SSL offloading for Fonto Connectors also gives you the option to use other features of the web server, like HTTP Compression/Content-Encoding, caching etc. These features are not in scope of this guide.
Do not turn on HTTP Compression/Content-Encoding on your web server for urls starting with /api
. This is not supported in the current version of Fonto Connectors.
Docker Compose with Nginx
By completing the following steps you create a Docker image containing the minimal requirements you need to perform SSL offloading for Fonto Connectors using Nginx and run it using Docker Compose.
-
Create a directory on your local machine.
-
Copy the
privatekey.key
file and theserver.crt
file to the created directory. -
Create a file
default.conf
in the created directory. -
Configure SSL offloading in the
default.conf
.Other
server { listen 80; return 301 https://$http_host$request_uri; } server { listen 443 ssl; server_name fontoxml-connector; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/privatekey.key; location / { # Microsoft authentication uses large headers when connecting with OneDrive. For this we have to increase the buffers. proxy_buffering on; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; # The service name "my-connectors-instance" is configured in the docker-compose.yml. proxy_pass http://my-connectors-instance:80; proxy_set_header Host $http_host; # Forward the protocol and port. proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
-
Create a file
Dockerfile
in the created directory.Other
FROM nginx # copy nginx configuration COPY default.conf /etc/nginx/conf.d/default.conf # copy certificates RUN mkdir /etc/nginx/ssl COPY privatekey.key /etc/nginx/ssl/privatekey.key COPY server.crt /etc/nginx/ssl/server.crt
-
Create a file
docker-compose.yml
in the created directory. -
Configure the
docker-compose.yml
with your instance and the Nginx image.Other
version: '3' services: # This instance name must be equal to the one in the default.conf and depends_on of the reverse-proxy service. my-connectors-instance: image: my-connectors-instance:0.0.1 # Replace this with your image name. environment: # The configuration below is not valid, replace it with your own. - fc__cmis__enabled=true - fc__googleDrive__clientId=xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com - fc__googleDrive__clientSecret=xxxxxxxxxxxxxxxxxxxxxxxx - fc__googleDrive__enabled=true - fc__microsoftOneDrive__clientId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - fc__microsoftOneDrive__clientSecret=xxxxxxxxxxxxxxxxxxxxxxx - fc__microsoftOneDrive__enabled=true - fc__view__pageTitle=Fonto My Instance - fc__view__topBarTitle=My Instance - fc__webdav__enabled=true reverse-proxy: build: . depends_on: # This ensures that "docker-compose up" and "docker-compose down" will create and remove the containers in the correct order. - my-connectors-instance ports: - "443:443" - "80:80"
Your directory should now have the following files:
-
default.conf
-
docker-compose.yml
-
dockerfile
-
privatekey.key
-
server.crt
You can run the instance using docker-compose up
.