Integrating Node-RED with FileMaker via OpenVPN on Raspberry Pi

Recently, I had a practical need: to write data into FileMaker directly from Node-RED, which I run on a Raspberry Pi at home. FileMaker is on my company network, so I needed a secure and stable link between the two environments. The answer was OpenVPN.

Starting point

In my infrastructure, the company firewall already had an OpenVPN server configured. From the NethSecurity platform, I created a user with login credentials and downloaded the related .ovpn configuration (with certificates). That file, once copied to the Raspberry Pi, was all I needed for the client setup.

Install & configure on Raspberry Pi

sudo apt update
sudo apt install openvpn

Then I placed the .ovpn file and the credential file auth.txt in /etc/openvpn/client/. I protected auth.txt and referenced it inside the .ovpn configuration:

sudo chmod 600 /etc/openvpn/client/auth.txt

Finally, I enabled and started the client so the VPN always comes up at boot:

sudo systemctl enable openvpn-client@client.service
sudo systemctl start openvpn-client@client.service

Automatic monitoring (every 5 minutes)

To guarantee reliability, I added a simple watchdog that checks if the VPN interface is up and restarts it if needed.

Script /usr/local/bin/check_vpn.sh:

#!/bin/bash
# Simple VPN watchdog for OpenVPN client
if ! ip a | grep -q "tun0"; then
  echo "$(date): VPN down, restarting..." >> /var/log/vpn_monitor.log
  systemctl restart openvpn-client@client.service
fi

Make it executable and run it every 5 minutes via cron:

sudo chmod +x /usr/local/bin/check_vpn.sh
(crontab -l; echo "*/5 * * * * /usr/local/bin/check_vpn.sh") | crontab -

Integration tests with FileMaker

After the VPN tunnel was established, I tested the connection using Node-RED and the node-red-contrib-filemaker package. These nodes make it easy to send API requests to FileMaker from Node-RED flows.

Test 1: List available databases

I used the node fm-list-databases to query the FileMaker Server. The flow was very simple:

  • inject node – to trigger the request
  • fm-list-databases node – configured with FileMaker server address and credentials
  • debug node – to view the JSON response

The result was a JSON array with all accessible databases, for example:

{
  "databases": [
    "timbrature",
    "utenti",
    "schede",
    "test"
  ]
}

Test 2: List tables of a specific database

Then I used the node fm-list-layouts to check which layouts (tables) were available in a chosen database, e.g. timbrature.

  • inject node – with payload = “timbrature”
  • fm-list-layouts node – connected to FileMaker server
  • debug node – to show the output

The result showed the list of layouts (tables) in the database:

{
  "layouts": [
    "timbrature",
    "utenti",
    "schede"
  ]
}

Next step

With these nodes, I confirmed that Node-RED was able to connect, authenticate, and read from FileMaker via the Data API. The next step will be to use the fm-create-record node to insert new records directly from Node-RED flows.

Future applications

  • Build a Node-RED platform for my home automation control.
  • Use FileMaker as a central log repository for home events.
  • Extend later to analytics and dashboards.

Conclusion

This setup gives me a secure, stable, and self-monitoring connection between my home Raspberry Pi and the corporate FileMaker. With OpenVPN and Node-RED (plus node-red-contrib-filemaker), I can manage and exchange data without extra FileMaker Pro seats, while keeping flexibility, security, and service continuity.


Tags:


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *