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:
injectnode – to trigger the requestfm-list-databasesnode – configured with FileMaker server address and credentialsdebugnode – 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.
injectnode – with payload = “timbrature”fm-list-layoutsnode – connected to FileMaker serverdebugnode – 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.
Leave a Reply