Self-hosted agent

Instructions for deploying Fillout with an on-premise agent. Process and store all respondent data on your own private cloud, like Azure, GCP, AWS or others.

Overview

The Fillout self-hosted agent lets you process and store all respondent data on your own private cloud, like Azure, GCP, AWS or others.
The Fillout on-premise agent is best suited for companies with highly sensitive data requirements. Fillout also offers a managed offering where our team will manage a dedicated instance on your behalf. If you have any questions, please contact us here.
Note: The self-hosted agent is available on Fillout’s Enterprise plan.
Note: The self-hosted agent is available on Fillout’s Enterprise plan.

Getting started

  1. Login to your Enterprise Fillout account
  1. Navigate to the "Agent" tab and add an agent. You can leave the host and port blank if you don't know them yet. 
    1. notion image
  1. Choose a deployment option and follow the necessary steps below. You'll need the Fillout agent key obtained on the screen from step #2.
  1. Once you've deployed the agent, press "Check health" to confirm that the agent was connected successfully.

Deployment options

  • AWS EC2
  • Aptible
  • Microsoft Azure
  • GCP
  • Render
  • Any cloud provider that supports pre-built Docker images
 
EC2 (docker compose)
  1. Add the following secrets to your docker.env
    1. FILLOUT_AGENT_KEY=<obtained from your fillout.com account, e.g. agent_key_xyzabc> DB_NAME=<postgres-db-name> DB_HOST=<postgres-host> DB_USER=<postgres-username> DB_PASSWORD=<postgres-user-password> ENCRYPTION_SECRET=<some-random-string> DB_PORT=<optional-postgres-port>
  1. Run docker-compose up
 
Aptible
  1. Install the Aptible CLI and authenticate into your account with aptible login.
  1. Clone this Github repository: git clone https://github.com/fillout/onpremise-agent
  1. cd onpremise-agent
  1. Create a new app on Aptible aptible apps:create <app-name>
  1. Create a postgres database aptible db:create <db-name> --type postgresql --version 14
  1. Set the necessary environment variables with the command below. You'll find the database connection details in the Aptible dashboard and the FILLOUT_AGENT_KEY from the Getting started steps.
    1. aptible config:set --app <app-name> \ FILLOUT_AGENT_KEY=<fillout-key-from-fillout-agent-dashboard> \ DB_NAME=<postgres-db-name> \ DB_HOST=<postgres-host> \ DB_USER=<postgres-username> \ DB_PORT=<optional-postgres-port> \ DB_PASSWORD=<postgres-user-password> \ ENCRYPTION_SECRET=$(cat /dev/urandom | base64 | head -c 64)
  1. Set your git remote: git remote add aptible your-git-url You can find the git url in the Aptible dashboard.
  1. If you're not on the master branch, switch to the master branch or run git checkout -b master to create it. Aptible deploys based on changes to the master branch.
  1. If you haven't already, add a public SSH key to your Aptible account. Then run git push aptible.
  1. Create an Aptible endpoint