Calculate Order Profitability in Real Time, Including Freight Costs

For businesses operating in cost-sensitive industries, tracking profitability in real time is essential to maintaining strong margins and operational efficiency. Freight costs, in particular, can fluctuate based on fuel prices, carrier rates, and shipping distances, making it difficult to assess profitability accurately without a dynamic system in place. Claris FileMaker provides a powerful solution by offering customizable dashboards that calculate real-time profitability, factoring in all associated costs, including freight.

The Need for Real-Time Profitability Calculations

Profitability isn’t static—costs can shift due to supplier pricing, shipping rates, and unexpected surcharges. Without real-time tracking, businesses risk underpricing products or absorbing hidden costs that eat into margins. By integrating profitability calculations into daily operations, businesses can proactively adjust pricing, negotiate better shipping rates, and optimize supply chain decisions. Claris FileMaker helps streamline this process by automating cost calculations, ensuring that every order is assessed with up-to-date cost variables.

Benefits of Including Freight Costs in Profitability Analysis

Freight costs can significantly impact overall profitability, especially for businesses managing high-volume or low-margin orders. Factoring in freight expenses alongside material costs and operational overhead provides a complete financial picture, allowing businesses to:

  • Set accurate pricing that maintains profitability

  • Identify cost-saving opportunities in logistics

  • Improve decision-making on order fulfillment and shipping methods

  • Enhance forecasting and financial planning

For companies handling large-scale logistics or working with 3PL providers, integrating freight costs into real-time profitability calculations prevents unexpected financial losses and improves overall efficiency.

How Claris FileMaker Powers Profitability Tracking

Claris FileMaker simplifies profitability tracking by offering customizable dashboards. These dashboards can pull in real-time cost data and integrate seamlessly with other trucking and cost-generating platforms. Businesses can build systems that automatically update freight costs, material expenses, and other financial variables, providing instant insights into order profitability. Features like automated reporting, dynamic cost adjustments, and integration with external logistics data ensure that decision-makers always have access to accurate financial information. By leveraging Claris FileMaker, businesses can maintain tighter control over costs and adapt to market fluctuations with confidence.

Tracking order profitability in real time—especially when factoring in freight costs—is essential for businesses looking to protect margins and improve operational efficiency. Claris FileMaker provides the tools to automate cost calculations, generate real-time insights, and ensure every order remains profitable. Interested to learn more about how Claris FileMaker can solve for real-time profitability tracking? Reach out to Kyo Logic here.

Installing Local LLM for FileMaker – Made Simple!

🚀 Join Us Live! Want to see this setup in action? We’ll be showcasing the full installation and implementation of Local LLM for FileMaker live at our upcoming CFDG meetup. Don’t miss this hands-on session where you can ask questions and see everything in real time.

 

🔗 Reserve your spot here

 

 

1. Create Ubuntu Server

Below are instructions for creating an Ubuntu 24.04 server using AWS EC2. These instructions should be similar for other cloud services like Microsoft Azure.

Launch a New EC2 Instance

  1. In AWS EC2, click Launch Instance
  2. Select the following options
    • AMI – Ubuntu 24.04 (x86)
    • Instance Type – t3a.large (or your preferred size)
    • Key Pair – Select or create a new key pair
    • Subnet – Choose an appropriate subnet (e.g., us-east-1c)
    • Security Groups – Ensure SSH (port 22), HTTP (port 80), and port 8080 are open
    • Storage – ~30GB recommended
    • IAM Role – If you have an instance profile with needed permissions, select it here (optional but recommended)

Create and Associate an Elastic IP

  1. Reserve a new Elastic IP in AWS
  2. Associate it with your new EC2 instance
  3. In your DNS settings, create an A record pointing to the Elastic IP

Connect to the EC2 Instance

Use AWS Systems Manager Session Manager or SSH

2. Update Ubuntu

After connecting, update your instance
sudo -i
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
sudo shutdown -r now
Reconnect after the reboot.

3. Download Open Source LLM Files

📌 Important – If you’ve upgraded from FileMaker Server v20, ensure you have the latest FileMaker Server v21 version of the Open Source LLM files.
🔗 Download Open_Source_LLM.zip
Download directly to your server
cd ~
sudo apt install zip
sudo wget https://kyologic.com/wp-content/uploads/2025/02/Open_Source_LLM.zip -O /home/ubuntu/Open_Source_LLM.zip
sudo unzip Open_Source_LLM.zip
Set Read & Write Permissions to letsencrypt directory
sudo chown -R ubuntu:ubuntu /home/ubuntu
sudo chmod -R a+rx /home/ubuntu
Remove Unneeded Files
sudo rm Open_Source_LLM.zip
sudo rm -r __MACOSX
OR
Transfer the files to your server from your computer
scp -i "/local/path/to/keypairfile" -r /local/path/to/Open_Source_LLM ubuntu@your-server-ip:/home/ubuntu/

4. Install Certbot for SSL

Use Certbot to manage SSL certificates
cd ~
sudo snap install core && sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo shutdown -r now
Reconnect after the reboot.

5. Configure Firewall

cd ~
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw enable

6. Obtain an SSL Certificate

Ensure DNS is pointed to your server’s IP before running the following
Note – Replace llm.mydomain.com with your domain name.
sudo certbot certonly --standalone --preferred-challenges http -d llm.mydomain.com --dry-run
sudo certbot certonly --standalone --preferred-challenges http -d llm.mydomain.com
Enable auto-renewal
sudo systemctl enable snap.certbot.renew.timer
  Configure Hooks for Auto-Renew
Certbot needs to open port 80 temporarily when renewing.
Create pre- and post-hook scripts
cd /etc/letsencrypt/renewal-hooks/pre
sudo nano pre-hook.sh
  Contents of pre-hook.sh
#!/bin/bash
# Open port 80
ufw allow 80/tcp
Save (Ctrl+O, Enter) and exit (Ctrl+X). Then make executable
sudo chmod +x pre-hook.sh
cd /etc/letsencrypt/renewal-hooks/post
sudo nano post-hook.sh
  Contents of post-hook.sh
#!/bin/bash
# Close port 80
ufw deny 80/tcp
#Reboot Server
sudo shutdown -r now
Save (Ctrl+O, Enter) and exit (Ctrl+X). Then make executable
sudo chmod +x post-hook.sh
  Test renewal
sudo certbot renew --dry-run
This should reboot your server

7. Generate Admin PKI Keypair & JWT for Authentication

  1. Download Soliant’s SSH Key & JWT Tool
  2. Open in FileMaker
  3. Create a new record
  4. Enter a Name & # of expiration days
  5. Press the Generate Keypair & Generate JWT buttons
Add Admin PKI Public Key file
sudo mkdir /etc/letsencrypt/auth_key
sudo nano /etc/letsencrypt/auth_key/localllm.key.pub
Copy the Public Key from SSH Keys & JWT to your clipboard. Paste the Public Key in the localllm.key.pub file. Save (Ctrl+O, Enter) and exit (Ctrl+X).   Add Admin PKI Private Key file
sudo nano /etc/letsencrypt/auth_key/localllm.key
Copy the Private Key from SSH Keys & JWT to your clipboard. Paste the Private Key in the localllm.key file. Save (Ctrl+O, Enter) and exit (Ctrl+X).   Set Read & Write Permissions to letsencrypt directory again
sudo chown -R ubuntu:ubuntu /etc/letsencrypt
sudo chmod -R a+rx /etc/letsencrypt

8. Install Miniconda & Python Environment

Install Miniconda
cd /home/ubuntu
mkdir -p ~/miniconda3
sudo wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
sudo rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all
Create & activate Python environment
conda create --name <name>
conda activate <environment name>
conda install python=3.9.18
pip install jwt && pip uninstall PyJWT && pip install PyJWT
conda install -c conda-forge sentence-transformers
Install Open Source LLM dependencies
pip install -r /home/ubuntu/Open_Source_LLM/requirements.txt
sudo shutdown -r now

9. Run & Test the Local LLM Server

Set environment variables
sudo chown ubuntu:ubuntu /home/ubuntu/ -R
sudo chmod -R 755 /home/ubuntu
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
sudo shutdown -r now
export PKI_KEYFILE="/etc/letsencrypt/auth_key/localllm.key.pub"
export CERTFILE="/etc/letsencrypt/live/llm.mydomain.com/fullchain.pem"
export KEYFILE="/etc/letsencrypt/live/llm.mydomain.com/privkey.pem"
conda activate <environment name>
Run python
python3 /home/ubuntu/Open_Source_LLM/server/fm_LLMOS_StartServer.pyc
📌 Test connection using the Claris Academy AI Fundamentals demo file.
  • Open Meetings_Solution in FileMaker
  • On the initial layout ( Meeting Details), enter Layout Mode and remove the Layout Calculation at the bottom of the page and add the field Details_Embedding to the layout.
  • Open the Script Workspace and find the Configure AI Account script
    • Adjust the Configure AI Account script step
      • Model Provider – Custom
      • Endpoint – https://llm.mydomain.com:8080
      • API key – copy and paste the JWT from SSH Keys & JWT file
  • Now Navigate to the Embedding Details Data script
    • Adjust the Insert Embedding script step
      • Embedding Model – all-MiniLM-L12-v2
  • Clear out the contents of the Details_Embedding field script
  • Run the Embedding Details Data script
  • Check and confirm that there were no errors and you have a new .fve file in the Details_Embedding field.
Keep this file open, we will use it to run a few more tests in the upcoming steps.

10. Automate the LLM Server with PM2

Create a pm2.io account.
Enter a Bucket Name You should now see this screen
Install PM2 and link to your account
If you are still in the conda command, enter ^C to exit.
sudo shutdown -r now
sudo -i
sudo apt install npm -y
npm install -g pm2
pm2 link [[Keys from PM2 Website]]
You should now see a new message on the PM2 web page saying you are linked
shutdown -r now
Start the server process with PM2
conda activate <environment name>
CERTFILE="/etc/letsencrypt/live/llm.mydomain.com/fullchain.pem" KEYFILE="/etc/letsencrypt/live/llm.mydomain.com/privkey.pem" PKI_KEYFILE="/etc/letsencrypt/auth_key/localllm.key.pub" pm2 start python3 --name <environment name> -- /home/ubuntu/Open_Source_LLM/server/fm_LLMOS_StartServer.pyc
  Test
Go to FileMaker, clear Details_Embedding field
Run the Embedding Details Data script
Verify a new .fve file in the Details_Embedding field.
Save the process & enable auto-start
pm2 save
pm2 startup
It will return a command looking something like this: sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu –hp /home/ubuntu
Copy and paste the command and press Enter
sudo shutdown -r now
  Final Test
Go to FileMaker, clear Details_Embedding field
Run the Embedding Details Data script
Verify a new .fve file is created
🎉 Success! Your Local LLM Server is now running on Ubuntu 24.04 with automated startup.

🚀 See This in Action!
Want a live walkthrough of setting up Local LLM for FileMaker on Ubuntu? Join our Connecticut FileMaker Developers Group (CFDG) meetup where we’ll demo this setup step by step and answer all your questions!
🔗 Register here

Manage Dynamic Costing in Low-Margin Commodities with Claris FileMaker

In the world of low-margin commodities, profitability hinges on a business’s ability to adapt to fluctuating costs. Price changes, market volatility, and supply chain disruptions can quickly erode margins, making real-time cost updates a necessity. For businesses and 3PL providers managing these sensitive markets, dynamic costing tools offer a lifeline by enabling real-time updates and ensuring competitive pricing. Claris FileMaker provides a powerful platform for building flexible systems that streamline cost management and protect profitability in even the most volatile environments.

The Need for Dynamic Costing in Low-Margin Markets

Low-margin commodities are inherently unpredictable. From changing material prices to fluctuating freight rates, businesses must adapt quickly to maintain profitability. For 3PL providers, who often operate as intermediaries between suppliers and buyers, the stakes are even higher. Dynamic costing tools are essential in these markets, enabling real-time adjustments that reflect current market conditions. New Claris FileMaker AI tools allow modelling data to analyze trends and optimize decisions. By integrating dynamic costing into their workflows, businesses and 3PL operators can minimize risk and ensure that every transaction remains profitable.

Benefits of Real-Time Costing Tools

Dynamic pricing tools provide critical advantages for businesses navigating low-margin markets. Real-time updates ensure that costs accurately reflect current market conditions, helping businesses maintain their margins. These tools also enable better decision-making by providing visibility into pricing trends, cost breakdowns, and profitability forecasts. For 3PL providers managing logistics and contracts across the supply chain, dynamic costing systems simplify operations and reduce the likelihood of costly miscalculations.

How Claris FileMaker Powers Dynamic Costing

Claris FileMaker is a robust solution for creating dynamic costing tools tailored to the specific needs of businesses and 3PL providers. With FileMaker, businesses can design systems that integrate real-time market data, automatically update costs, and generate detailed pricing reports. The platform’s flexibility allows users to build workflows that account for variables like freight rates, supplier costs, and exchange rates, ensuring that all aspects of cost management are covered. By centralizing and automating the costing process, Claris FileMaker helps businesses protect their margins and stay ahead in competitive markets.

Managing dynamic costs in low-margin commodities requires tools that adapt to market changes in real time. Claris FileMaker empowers businesses and 3PL providers with customizable solutions that streamline cost management, improve visibility, and protect profitability. Interested to learn more about how Claris FileMaker can solve for dynamic costing? Reach out to Kyo Logic here.

 

Track Buyers, Sellers, and Trucking Manifests

Managing commodity logistics involves a complex network of buyers, sellers, and trucking manifests that must work together seamlessly. Without a centralized system, inefficiencies and miscommunication can disrupt the supply chain, leading to delays and increased costs. For 3PL providers, who are often tasked with coordinating multiple clients’ logistics needs, these challenges are even more pronounced. Claris FileMaker offers a powerful, customizable platform that enables businesses to streamline their logistics operations, providing real-time tracking and full visibility across the supply chain.

Streamlining Supply Chain Coordination

Smooth coordination between buyers, sellers, and trucking operations is critical for efficient commodity logistics. Custom systems built with Claris FileMaker allow businesses to centralize logistics data, creating a unified hub for tracking and managing key supply chain elements. For 3PL providers, this is particularly valuable, as they often juggle multiple transactions and shipments simultaneously. By offering a single platform to manage all stakeholders, Claris FileMaker ensures that everyone remains aligned and informed throughout the process.

The Role of Real-Time Tracking

In logistics, timing is everything. Real-time tracking enables businesses to monitor the progress of shipments, update stakeholders promptly, and adjust plans as needed. For 3PL providers, this level of transparency is essential for maintaining client trust and ensuring on-time deliveries. Claris FileMaker integrates real-time data updates into its logistics systems and communicates effectively with other logistics platforms, allowing businesses to track trucking manifests, buyer orders, and seller commitments in one place. This not only boosts efficiency but also provides the visibility needed to anticipate and resolve potential bottlenecks.

How Claris FileMaker Supports Logistics Management

Claris FileMaker excels at simplifying the complexities of logistics and 3PL operations. Its customizable interface enables businesses to design systems tailored to their unique workflows, from tracking trucking manifests to managing buyer and seller data. With FileMaker, companies can integrate third-party tracking tools, automate notifications, and generate detailed reports that improve decision-making. By centralizing all logistics data, FileMaker empowers businesses to optimize their supply chain operations and maintain smooth coordination across the board.

Tracking buyers, sellers, and trucking manifests is essential for efficient commodity logistics, especially for 3PL providers managing diverse client needs. Claris FileMaker offers a robust solution for streamlining logistics operations, providing real-time updates, centralized data, and seamless coordination. Interested to learn more about how Claris FileMaker can solve for logistics and 3PL management? Reach out to Kyo Logic here.

 

Installing Keycloak 26 on Ubuntu 24.04 (AWS)

At Kyo Logic, we specialize in custom software solutions and FileMaker consulting services. During one of our recent internal projects, a team member was experimenting with Keycloak 26 on AWS and decided to create a simple, repeatable guide for future reference. We’d like to thank our friends over at Sound Essentials, who provided instructions for installing Keycloak 17 on Ubuntu 20.04.3 LTS. Our instrcutsions would not be possible without their original guidance, which we’ve modified for our own purposes.
We realized it could be helpful to share this process more broadly. Below you’ll find a step-by-step outline of how to get Keycloak 26 up and running on an Ubuntu 24.04 server in AWS, complete with MySQL and SSL certificates managed by Certbot.
Please note that Keycloak is not a FileMaker-related tool. However, as consultants who often deal with diverse infrastructure solutions—ranging from identity management to custom app deployments—it’s important for us to have guides like this in our internal knowledge base. If you have any questions about this or about our FileMaker consulting services, reach out at www.kyologic.com/contact/.
Keycloak is a powerful open‐source identity and access management solution. In this tutorial, we’ll set up Keycloak 26 on an Ubuntu 24.04 server in AWS, secure it with SSL certificates via Certbot, and configure it to run on port 443. We’ll use MySQL as our database.
Note – This guide assumes you have an AWS account and are comfortable with launching EC2 instances and connecting to them. Replace keycloak.mydomain.com with your actual domain name wherever indicated.

What You Need To Get Started

  • A Linux server running Ubuntu 24.04 (x86) or an account to a server hosting platform such as AWS or Microsoft Azure
  • A Fully Qualified Domain Name (FQDN) and access to your domain’s Domain Name System (DNS)

1. Create Ubuntu Server

  • Below are instructions for creating a server using AWS EC2. The instructions should be similar for other services.

Launch a New EC2 Instance

  1. In AWS EC2, click Launch Instance
    • Select the following options
      1. AMI – Ubuntu 24.04 (x86)
      2. Instance Type – t3a.xlarge (or your preferred size)
      3. Key Pair – Select or create a new key pair
      4. Subnet – Choose an appropriate subnet (e.g., us-east-1c)
      5. Security Groups – Ensure you have rules for SSH (port 22), HTTP (port 80), and HTTPS (port 443 and 8443).
      6. Storage – ~30 GB recommended
      7. IAM Role – If you have an instance profile with needed permissions, select it here (optional but recommended).
  2. Create and Associate Elastic IP
    • Reserve a new Elastic IP in AWS
    • Associate it with your new EC2 instance
  3. In your DNS, create an A record for the IP Address of your Elastic IP using the subdomain of your choosing.
  4. Connect to EC2
    • Use AWS Systems Manager Session Manager or SSH, depending on your preference
      1. If you click on Connect on the Instance, AWS will give you instructions to Connect.

2. Update Ubuntu

When first connecting, it’s best practice to update all packages with the following commands
sudo -i
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo shutdown -r now
After the reboot, reconnect to your instance.

3. Install and Configure MySQL

Keycloak needs a database. Here’s how to install MySQL on Ubuntu
cd ~
sudo apt install mysql-server
sudo mysql
Set the root user’s MySQL password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MYSQL_DATABASE_PASSWORD';
Exit;
Secure the MySQL installation
sudo mysql_secure_installation
Follow the prompts (you can answer “Yes” to remove anonymous users, disallow root remote login, etc.).
Create the Keycloak database and user
sudo mysql -u root -pMYSQL_DATABASE_PASSWORD
In sql
CREATE DATABASE keycloak CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'keycloak'@'localhost' IDENTIFIED BY 'MYSQL_DATABASE_PASSWORD';
GRANT ALL PRIVILEGES ON keycloak.* TO 'keycloak'@'localhost';
FLUSH PRIVILEGES;
exit;
Note – Replace MYSQL_DATABASE_PASSWORD with a strong, unique password.

4. Install Certbot (for SSL Certificates)

We’ll use Certbot (via snap) to generate and manage SSL certificates.
cd ~
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo shutdown -r now
After the reboot, reconnect again.

5. Configure the Firewall

We’ll open only the necessary ports. Ubuntu’s default firewall tool is ufw
cd ~
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 8443/tcp
sudo ufw enable

6. Obtain an SSL Certificate

Choose your domain nameMake sure your DNS is pointed to the IP address of this instance (e.g., keycloak.mydomain.com).
Note – Replace keycloak.mydomain.com with your domain name. Obtain and verify certificate
cd ~
sudo certbot certonly --standalone --preferred-challenges http -d keycloak.mydomain.com --dry-run
If the dry run succeeds, run it again for the actual cert
sudo certbot certonly --standalone --preferred-challenges http -d keycloak.mydomain.com
Deny HTTP traffic (if desired)
sudo ufw deny 80/tcp
Enable auto-renewal
sudo systemctl list-units --type timer
sudo systemctl enable snap.certbot.renew.timer
sudo systemctl status snap.certbot.renew.timer
Configure Hooks for Auto-Renew
Certbot needs to open port 80 temporarily when renewing. Create pre- and post-hook scripts
cd /etc/letsencrypt/renewal-hooks/pre
sudo nano pre-hook.sh
Contents of pre-hook.sh
# Open port 80
ufw allow 80/tcp
Save (Ctrl+O, Enter) and exit (Ctrl+X). Then make executable
sudo chmod +x pre-hook.sh
cd /etc/letsencrypt/renewal-hooks/post
sudo nano post-hook.sh
Contents of post-hook.sh
# Close port 80
ufw deny 80/tcp
#Reboot Server
sudo shutdown -r now
Save and exit, then make executable
sudo chmod +x post-hook.sh

Test renewal
sudo certbot renew --dry-run
This should restart your server

7. Install Java & Other Dependencies

Keycloak 26 requires Java 17 or later. Let’s install OpenJDK 21
sudo apt install openjdk-21-jdk

8. Download and Prepare Keycloak

sudo apt install zip
Create a directory and download Keycloak
sudo mkdir -p /opt/keycloak
cd /opt/keycloak
sudo wget https://github.com/keycloak/keycloak/releases/download/26.1.0/keycloak-26.1.0.zip
sudo unzip keycloak-26.1.0.zip -d /opt/keycloak
sudo rm keycloak-26.1.0.zip
Create Keycloak user and group
sudo groupadd -r keycloak
sudo useradd -r -g keycloak -d /opt/keycloak -s /sbin/nologin keycloak
Give keycloak user ownership and privileges to keycloak and letsencrypt
cd /opt
sudo chown -R keycloak: keycloak
sudo chmod -R 755 /opt/keycloak/keycloak-26.1.0/bin/
sudo chmod -R 755 /etc/letsencrypt



9. Configure Keycloak

Edit Keycloak configuration
sudo nano /opt/keycloak/keycloak-26.1.0/conf/keycloak.conf
Insert/Update
db=mysql
db-username=keycloak
db-password=MYSQL_DATABASE_PASSWORD
Note – (This is the password from above)
https-certificate-file=/etc/letsencrypt/live/keycloak.mydomain.com/fullchain.pem
https-certificate-key-file=/etc/letsencrypt/live/keycloak.mydomain.com/privkey.pem
hostname=keycloak.mydomain.com
Note – (Replace keycloak.mydomain.com with your domain name)
https-port=8443
Build and start Keycloak
cd /opt/keycloak/keycloak-26.1.0
sudo bin/kc.sh build
sudo -E bin/kc.sh bootstrap-admin user
Note – This is to create a temporary user for access to keycloak. Once in keycloak, it is recommended that a permanent user be created and this temporary user deleted.
sudo -E bin/kc.sh start
Keycloak should now be running on https://keycloak.mydomain.com:8443/. Log into keycloak using the account created above and create a new user. Make sure to give this new user all available roles.

10. Configure Keycloak to Start Automatically

Press Ctrl+C to stop Keycloak, then create a systemd service
Create systemd unit file
sudo nano /etc/systemd/system/keycloak.service
Sample Contents (adjust as needed)
# /etc/systemd/system/keycloak.service
[Unit]
Description=Keycloak Server
After=syslog.target network.target mysql.service
Before=httpd.service

[Service]
User=keycloak
Group=keycloak
SuccessExitStatus=0 143
ExecStart=!/opt/keycloak/keycloak-26.1.0/bin/kc.sh start

[Install]
WantedBy=multi-user.target
Enable and Reboot
sudo systemctl daemon-reload
sudo systemctl enable keycloak
sudo shutdown -r now
sudo systemctl status keycloak
Keycloak should now run automatically on system boot.

11. Changing to Port 443

Adjust keycloak.conf
sudo nano /opt/keycloak/keycloak-26.1.0/conf/keycloak.conf
Change (or add)
https-port=443
Rebuild Keycloak
cd /opt/keycloak/keycloak-26.1.0
sudo bin/kc.sh build
Update Firewall Rules
sudo ufw delete allow 8443/tcp
sudo ufw allow 443/tcp
sudo shutdown -r now
Keycloak will now listen on standard HTTPS port 443, accessible at https://keycloak.mydomain.com.
You’ve successfully installed Keycloak 26 on an Ubuntu 24.04 EC2 instance, configured MySQL as the backend, and secured Keycloak with a valid SSL certificate using Certbot. You also set up systemd to ensure Keycloak starts automatically on reboot and moved it to port 443 for a cleaner URL.
Next Steps
Log in to your Keycloak admin console at https://keycloak.mydomain.com using the admin username/password you created.
Configure your realms, clients, and identity providers as needed.
Review Keycloak logs and manage system resources to ensure optimal performance.
For more instructions on how to configure your keycloak account, you can follow the instructions from our CFDG presentation on the topic here – https://youtu.be/-bqww9ggDjA
With your identity and access management solution in place, you can focus on integrating Keycloak into your applications and services! If you have any questions or run into issues, consult the official Keycloak documentation or your AWS documentation for further guidance.
That’s it! You now have a working Keycloak 26 setup in AWS. If you have any questions—or if you’d like to learn more about our FileMaker consulting services—visit us here.

Accelerating FileMaker Development with AI Code Builders

Accelerating FileMaker Development with AI Code Builders

In this post, we’ll explore how AI code builders—specifically ChatGPT Code Copilot—can help you create custom JavaScript widgets for FileMaker. We’ll walk through an example of building a signature pad, discuss best practices for prompting AI, and touch on some ethical and legal considerations involved in using AI-generated code.

Why Use an AI Code Builder?

AI code builders (e.g., ChatGPT Code Copilot, GitHub Copilot, etc.) leverage machine learning models trained on large amounts of programming data. They can assist developers by

  • Generating boilerplate or starter code automatically

  • Suggesting functions and syntax in real time

  • Speeding up iteration on front-end features like HTML, CSS, and JavaScript

AI Code builders allow you to build a widget or page without knowing ANY programming languages.

When used correctly, these tools can save hours of coding and debugging—especially for tasks that don’t necessarily require advanced, custom logic.

Key Considerations – Ethics, Legality, and Privacy

  1. Ethical Impact
    AI-driven tools can automate mid-level coding tasks, potentially affecting developer job roles. While it streamlines certain work, the long-term impact on developer careers is worth watching.

  2. Legal Concerns
    AI generators may source snippets of copyrighted code. While current U.S. legal direction makes direct infringement cases unlikely, it’s prudent to remain cautious about where the code originates.

  3. Privacy
    Anything you share with an AI tool could be integrated into its broader dataset. Never upload confidential information or proprietary code without anonymizing or removing sensitive details.

Best Practices When Prompting ChatGPT

Through trial and error, the webinar revealed a handful of tips to get the best results from AI code builders

  1. Craft a Strong Initial Prompt

    • Be specific about what you want, from the programming language to the functionalities and layout.

    • Bad Example – “Build me a signature pad using Javascript, CSS and HTML with Clear, Undo, Save and Cancel buttons.”

    • Good Example – “Build me a signature pad using HTML, CSS and Javascript. The page should include a header titled "Sign Below" a signing canvas and buttons below the canvas.

The buttons will be the following

Clear – Completely removes all drawings from the canvas

Undo – removes the most recent drawing from the canvas

Submit – Saves the canvas to a .png image and stores it as base64 text. It then should run the function FileMaker.PerformScript("SaveSignature" ; base64code of image);

Cancel – Runs the function FileMaker.PerformScript("CancelSignature" ; "" )

The buttons should have a black background with white writing. They should be on the same row and ordered from left to right Clear, Undo, Submit, Cancel. 

The Clear and Undo buttons should be grouped on the left side of the screen and the Submit and Cancel buttons should be grouped on the right side of the screen.

The background for the page and for the signature pad should be white.

Build me the code for this page in 3 separate files index.html, style.css, script.js“

  1. Provide Existing Code Snippets

    • If you’re modifying existing code, paste that code into ChatGPT’s prompt.

    • AI often “forgets” prior context or overwrites essential lines if you ask it to regenerate the entire codebase.

  2. Make Incremental Requests

    • After generating an initial version, ask for changes in small, specific steps (e.g., “reduce the button size,” “add rounded corners,” or “change the header’s font size”).

    • Requesting many modifications at once can confuse the AI and lead to broken or incomplete solutions.

  3. Ask for Only the Changes

    • Rather than asking for the entire file again, say “Please provide only the lines that need to be updated or added.”

    • This preserves previously working code and reduces the likelihood of accidental regressions.

  4. Avoid Complex Multi-tasking

    • AI code builders can lose track of context during multi-part tasks. Break them down into small, separate requests.

Step-by-Step Example – Building a Signature Pad in FileMaker

Goal – Create a signature pad that captures a user’s drawing, supports undo/clear, and saves the result as a base64-encoded image inside FileMaker.

  1. Outline Requirements

    • HTML – A simple layout with a canvas, header, and four buttons (Clear, Undo, Submit, Cancel).

    • CSS – Basic styling (button size, background color, alignment).

    • JavaScript – Canvas drawing logic (capturing strokes, undo/redo stacks), plus two FileMaker script calls

      • FileMaker.PerformScript("Save Signature", base64Code)

      • FileMaker.PerformScript("Cancel Signature")

  2. Create a Detailed Prompt
    In ChatGPT, specify –
    “Build me a signature pad using HTML, CSS, and JavaScript, including a header titled ‘Sign Below,’ a canvas, and four buttons. The ‘Submit’ button should encode the canvas as base64 and call FileMaker.PerformScript("Save Signature", <base64>), etc.”

  3. Generate Files
    ChatGPT returns – index.html (or combined HTML file)

    • style.css (for layout and styling)

    • script.js (draw logic and button handlers)

  4. Refine & Test

    • If the AI lumps HTML/CSS/JS together, ask for separate files or placeholders for easy inclusion in FileMaker fields.

    • Test your initial code locally (e.g., open the HTML in a browser). Check if Undo/Clear works and if Submit/Cancel behave as expected.

  5. Integrate Into FileMaker

    • Store the HTML, CSS, and JS in FileMaker fields.

    • Use a calculation field or a “web viewer” that substitutes in the CSS/JS code.

    • Ensure “Allow interaction” and “Allow JavaScript to perform FileMaker scripts” are enabled in the web viewer settings.

  6. Add Final Touches

    • Prompt ChatGPT for style updates (e.g., “Make the header smaller and unbold it,” “Group the Clear and Undo buttons on the left,” etc.).

    • Manually adjust any margins or design elements if ChatGPT’s output isn’t pixel-perfect.

Result: A working signature pad that you can open in FileMaker, draw on, and automatically store the output as a base64-encoded image—perfect for e-signatures or doodles.

Beyond Signatures – A Time-Tracking Example

The webinar also showcased a more advanced JavaScript widget – a time-tracking dashboard built entirely via AI-assisted code, then dropped into FileMaker. It features

  • Dynamic plus and delete buttons for line items

  • Light and dark modes

  • Start and Stop Timers

  • The entire front-end (HTML, CSS, JS) generated by ChatGPT with minimal manual intervention

This advanced use case illustrates how quickly you can evolve from small widgets (like a signature pad) to more complex applications—increasing interactivity and user experience within FileMaker, all powered by AI-generated front-end code.

Closing Thoughts

AI tools like ChatGPT can drastically reduce development time and open doors to front-end interactions you might not otherwise build by hand. The key is prompt engineering—learning how to give precise instructions and incremental feedback.

Remember

  • Always keep ethical, legal, and privacy considerations in mind.

  • Triple-check AI-generated code for security issues and correctness.

  • Use a “rinse and repeat” process – prompt, refine, test, and integrate.

By leveraging these best practices, you’ll be well on your way to creating powerful, user-friendly JavaScript widgets that enhance FileMaker’s functionality—without having to become a front-end development expert.

Further Resources

Have questions or want to share your own AI-generated FileMaker widget? Drop a comment or reach out to continue the conversation. Happy coding!



Can Your FileMaker Do This? Enhance Manufacturing Efficiency with AI-Powered Semantic Search

In modern manufacturing, quick and accurate access to data can make the difference between streamlined production and costly delays. Yet, traditional database search methods often fall short, requiring exact keywords and precise input. This is where AI-powered semantic search within Claris FileMaker solutions can transform operations, enabling users to retrieve information using natural language queries.

At Kyo Logic, we’ve implemented semantic search capabilities to revolutionize how manufacturers access and interact with their data. Let’s dive into how this technology works, its applications, and how it can improve your manufacturing processes.

What Is AI-Powered Semantic Search?

Semantic search goes beyond matching exact keywords by understanding the intent and context behind a query. It can also be combined with traditional search for even more uses. Powered by AI and natural language processing (NLP), semantic search interprets phrases, synonyms, and even contextual nuances. In FileMaker, this functionality can be achieved by integrating AI-powered tools like Claris Connect, external AI services (e.g., OpenAI APIs), or scripting custom machine-learning models.

For example:

  • Instead of searching “inventory: steel bolts 2mm,” users could type, “I need small steel bolts for automotive assembly.”

  • Semantic search understands “small” to mean “2mm” and “automotive assembly” to refine results to the relevant inventory category.

Use Case: Intelligent Inventory Management

One of the most impactful applications of semantic search is in inventory management, where manufacturers often deal with thousands of SKUs and components.

Scenario:

A manufacturer needs to locate specific materials—say, heat-resistant steel components for an automotive project. Traditional keyword searches might require exact terms like “steel component heat-resistant.” With semantic search, a user could simply query, “What materials can withstand high heat for automotive use?”

How It Works in FileMaker:

  1. Data Structuring: Inventory data is enriched with metadata, such as material properties, usage, and categories.

  2. AI Model Integration: A pre-trained NLP model is connected to FileMaker via an API or a microservice, such as OpenAI’s GPT API.

  3. Query Processing: When a user inputs a query, the system translates it into structured search parameters (e.g., “find all inventory tagged with ‘heat-resistant’ AND ‘automotive’”).

  4. Results Display: The system provides a ranked list of relevant inventory items, including links to more detailed specifications.

Benefits for Manufacturers

  1. Improved Data Retrieval:

    • Traditional searches depend on exact terms, which can lead to missed results. Semantic search captures broader intent, ensuring the right data is always accessible.

    • Example: A query like “fasteners for aerospace” can return bolts and rivets tagged with “aerospace grade.”

  2. Enhanced Decision-Making:

    • Rapid access to contextualized data allows engineers and managers to make timely and informed decisions, minimizing production bottlenecks.

    • Predictive models can suggest alternatives or complementary components.

  3. Operational Efficiency:

    • By reducing the time spent searching for information, semantic search enables staff to focus on high-value tasks, such as quality assurance or innovation.

Implementing Semantic Search in FileMaker

Here’s how you can get started:

  1. Audit Your Database:

    • Ensure your FileMaker database is well-structured and includes descriptive fields for metadata.

    • Example: Add fields like “material type,” “application,” and “specifications” to inventory tables.

  2. Connect to AI Tools:

    • Use Claris Connect or integrate external AI APIs for semantic processing.

    • Example: OpenAI’s API can process natural language queries and return contextually relevant results.

  3. Develop Custom Scripts:

    • Write FileMaker scripts that send queries to the AI tool, process results, and present them in a user-friendly interface.

    • Use custom layouts to display ranked search results dynamically.

Ready to Transform Your FileMaker System?

Semantic search isn’t just about searching smarter—it’s about enabling faster decisions and boosting operational efficiency. If you’re ready to explore how AI-driven capabilities can integrate into your FileMaker solution, contact us today for a consultation. Let’s take your manufacturing processes to the next level.

 

Customize Production Steps and Requirements

In custom manufacturing, the ability to adapt production workflows to meet unique client requirements is critical for success. Whether the project involves a one-of-a-kind prototype or a series of tailored specifications, flexibility in manufacturing processes ensures top-quality results and satisfied clients. Platforms like Claris FileMaker play a pivotal role in achieving this flexibility, offering manufacturers the tools to design custom workflows and meet specific production needs efficiently.

Tailoring Production Steps for Client Prototypes

Client prototypes often come with detailed specifications that require adjustments to standard production processes. Custom ERP systems, supported by tools like Claris FileMaker, allow manufacturers to design workflows tailored to each project. From automating unique quality checks to managing specialized technical documents and materials , these systems ensure that every step of the process aligns with client requirements. With this level of customization, manufacturers can confidently handle even the most complex prototypes.

Benefits of Meeting Unique Specifications

Tailoring production steps for individual prototypes brings numerous benefits. First, it enhances product quality by ensuring that all specifications are met precisely. Second, it strengthens client relationships by demonstrating a commitment to their unique needs. Finally, customized workflows improve efficiency by eliminating unnecessary steps and focusing on what matters most for each project. In a competitive market, these advantages can set manufacturers apart and foster long-term partnerships with clients.

How Claris FileMaker Powers Custom ERP Solutions

Claris FileMaker provides a versatile platform for creating ERP systems that support prototype-specific manufacturing workflows. Its intuitive design allows manufacturers to develop tailored solutions that adapt to diverse client needs. With Claris FileMaker, companies can integrate real-time data tracking, automate specialized tasks, and generate detailed reports to monitor progress and ensure quality. The platform’s flexibility ensures that each client’s vision is realized efficiently, without compromising on precision or standards.

Customizing production steps and requirements for client prototypes is essential for delivering exceptional results and building strong client relationships. With the support of Claris FileMaker, manufacturers can create tailored ERP solutions that enhance efficiency and meet even the most complex specifications. Interested to learn more about how Claris FileMaker can solve for custom manufacturing needs? Reach out to Kyo Logic here.

Manage Work Order Requirements and Milestones

Managing the production of client prototypes involves juggling numerous work order requirements, process milestones, and dependencies. Without full visibility into these elements, manufacturers risk inefficiencies and missed deadlines. Custom ERP solutions provide the tools needed to streamline these workflows, ensuring that projects stay on track. Claris FileMaker, with its robust customization capabilities, empowers manufacturers to manage prototype production with precision and clarity.

Managing Work Order Requirements

Every client prototype comes with unique specifications that must be carefully managed. Custom ERP systems allow manufacturers to define and track these detailed work order requirements,including technical documents, from material needs to specific production steps. By centralizing this information, manufacturers can ensure that every requirement is accounted for and seamlessly integrated into the production plan. This level of organization reduces errors and ensures that client expectations are consistently met.

Tracking Milestones and Dependencies

Production processes often involve multiple milestones and dependencies that must align for a project to succeed. Custom ERP solutions make it easy to monitor these critical points in the workflow. Whether it’s ensuring materials are available on time or coordinating different teams’ contributions, these systems provide real-time updates that keep production moving smoothly. By tracking milestones, manufacturers can quickly identify and address potential bottlenecks, minimizing delays and keep projects on schedule.

How Claris FileMaker Powers Custom ERP Solutions

Claris FileMaker offers a flexible platform for managing work order requirements, milestones, and dependencies. Its user-friendly interface allows manufacturers to design workflows that fit their unique needs, providing full visibility into prototype production. With features like automated notifications, real-time data tracking, and customizable dashboards, Claris FileMaker helps manufacturers streamline operations and ensure deadlines are consistently met. This comprehensive approach enhances efficiency and strengthens client satisfaction.

Conclusion

Managing work order requirements and milestones is essential for ensuring the success of custom prototype production. Claris FileMaker simplifies this process by providing full production visibility and the tools needed to streamline workflows, minimize delays, and meet deadlines. Interested to learn more about how Claris FileMaker can solve for work order management? Reach out to Kyo Logic here.

Maintain Historical Records for Future Reference and Replication

In custom manufacturing, maintaining detailed historical records is key to ensuring consistency and efficiency in production. These records provide valuable insights, allowing manufacturers to replicate successful production runs and quickly troubleshoot issues when they arise. Over time, this practice supports continuous improvement, helping manufacturers refine processes and deliver high-quality products consistently.

Of course, detailed documentation can be a massive drain on time and resources, especially because it’s oftentimes key personnel required to do it. But with software like Claris Filemaker, aspects of this documentation can be streamlined and even automated.

The Role of Historical Records in Manufacturing

Historical records serve as a roadmap for manufacturers. They document every step of the production process, capturing critical test results and production variables.There’s a record of anything being produced. More data means larger, more detailed libraries and documentation. For example, when a product meets quality standards, these records become a template for future runs, reducing the risk of errors and ensuring consistency. Conversely, when problems occur, historical data offers a clear path to identifying and resolving the root cause. This dual role of replication and troubleshooting makes historical records an indispensable tool in manufacturing. 

Benefits of Systematic Record-Keeping

Systematic record-keeping brings structure and accessibility to historical data, making it easier to analyze and apply. Manufacturers can track long-term trends, identify areas for improvement, and implement best practices based on past successes. Furthermore, accessible records facilitate employee training by providing a reference point for standard operating procedures. This ensures that quality standards are maintained as teams grow or evolve. With well-maintained historical records, manufacturers gain a competitive edge by optimizing efficiency and reducing variability in their processes.

How Claris FileMaker Facilitates Historical Record Management

Claris FileMaker offers a powerful solution for managing historical manufacturing records. Its customizable database platform allows manufacturers to organize, store, and retrieve data effortlessly. Claris FileMaker’s user-friendly interface makes it easy to design workflows tailored to specific production needs, ensuring that all relevant information is captured and readily available. With advanced search capabilities and real-time updates, Claris FileMaker helps manufacturers stay proactive, whether replicating a successful run or addressing an unexpected challenge. By centralizing data, Claris FileMaker streamlines record management and supports long-term operational excellence.

Maintaining historical records is essential for replicating successful production runs, troubleshooting issues, and driving continuous improvement in custom manufacturing. With Claris FileMaker’s customizable solutions, manufacturers can efficiently manage their data and ensure consistent quality over time. Interested to learn more about how Claris FileMaker can solve for historical record management? Reach out to Kyo Logic here.