Fluree Core Knowledge Graph Intelligent Database
Fluree Sense Structured Data AI Golden Record Pipeline
Fluree CAM Unstructured Data Auto Content Tagging
Fluree ITM Taxonomy Manager Controlled Vocabularies
Fluree HQ 486 Patterson Ave Ste 221 Winston-Salem, NC 27101 – – –
Fluree NY 11 Park Place New York, NY, 10007 – – –
Fluree India 5th Floor, Trifecta Adatto, c/o 91 Springboard Business Hub Pvt Ltd, 21 ITPL Main Rd, Garudachar Palya, Near Phoenix Mall, Karnataka-560048 India
Fluree CO 14143 Denver West Parkway, Suite 100 Golden, CO 80401 – – –
Fluree EMEA 18, rue de Londres 76009 Paris, France
Managing dependencies is a pain in the tuchus. Whether in the cloud, in a private data center, or just on your laptop, ensuring that you have the correct version of Java or Node or whatever other runtime works properly with both the application and the OS and all of the other dependencies can quickly turn into a nightmare. Docker solves this by bundling all of the dependencies together in a single image such that as long as the Docker runtime is deployed on the target infra, your app should function as desired. No muss, no fuss.
Let’s walk through the setup necessary to get your Fluree backend up and running. (Deployment to a public cloud will be out of scope for this post). This will be the first of a 3 part series on working with Fluree in Docker. The next one will be about setting up a Transactor Group!
To begin with, you will need to have Docker on your machine. Please visit the Docker Getting Started Docs to get it set up, if you don’t have it configured already.Once Docker is installed and running you will need to grab the Fluree ledger image from DockerHub. The Docker CLI is a great tool for managing images on your machine. We will use the docker pull command to grab the fluree/ledger image. Open a terminal and run:
docker pull
docker pull fluree/ledger:latest
At the time of writing, this will pull the 1.0.0 beta 15 ledger image from Docker Hub, which is the most up-to-date version of Fluree. Once the Fluree ledger 1.0.0 is released, beta releases will go under their own tag. At any time, you can pull a specific release, if that is needed. You would simply define the image to pull using the tag like this: fluree/ledger:1.0.0-beta14.
fluree/ledger:1.0.0-beta14
You can see all of the release tags for Fluree in our Github Repo.
Ok, you have the image, now what?
There are a couple of parameters which Fluree needs in order to start up correctly. These can be passed in when starting the container using the docker run command.
docker run
You can simply start the image by calling docker run fluree/ledger, but this will not expose the ports you will need to have in order to use the HTTP endpoints. Internally, Fluree listens on port 8090 for the HTTP calls, so this port will need to be mapped to an exposed, public port on the container. This can be done with:
docker run fluree/ledger
docker run -p 8090:8090 fluree/ledger
The ports correspond to ExternalPort:InternalPort. So, if you have 2 containers running, you will need to map the first of the two to a different port and leave the second number as-is because that is the port which Fluree is listening on. So for your second container, you would pass -p 8091:8090 or some other port number of your choosing.
-p 8091:8090
This spins up Fluree inside of your container, you will see the default configs print to the terminal and some messages about the consensus and state of the server. You can see the container and some metadata by running docker ps in another terminal.
docker ps
By default, Docker will assign your container both a CONTAINER_ID and a NAME, which you can see via the docker ps command or in the Docker Desktop UI. The name will be 2 randomly assigned words, but you can name your container when you initialize it with the docker run command. This is useful because you can then use that name to restart your container, if you stop it for whatever reason. (At this point stopping the container will lose any data, but in a bit, we will connect the container’s file system to a local directory for data persistence). You can do this by adding the --name flag to the run command, like this:
--name
run
docker run -p 8090:8090 –name ledger1 fluree/ledger
Now, when you run docker ps, the NAMES field will be ledger1 instead of a randomized pair of words.
ledger1
Now that your ledger is up and running on your machine, there are a few ways for you to interact with the ledger.
Every instance of Fluree contains a small utility for working with the ledgers, called the AdminUI. This is a browser based UI maintained by the Fluree team for working with instances of Fluree, whether as a single instance or in a transactor group. Once you have your Fluree instance ready with the HTTP port exposed, you can start the Admin UI by going to localhost:[EXPOSED PORT] in your browser.If you used the command above to start up your instance, use 8090 for the [EXPOSED PORT].
localhost:[EXPOSED PORT]
[EXPOSED PORT]
We have a YouTube video walkthrough of the AdminUI coming soon.
Fluree also contains an HTTP client which exposes several HTTP endpoints for programmatically working with Fluree. Any of these endpoints can be hit by calling http://localhost:8090/fdb/[endpoint] or if the endpoint is ledger specific http://localhost:8090/fdb/[network]/[db][endpoint].
At startup, there are no dbs on your instance, so it is recommended to start by using the /new-db endpoint first.
Fluree is a ledger and database. Both of these things require persisting data, which Docker does by default, but we’ll want to configure it ourselves. To do that, we will need to do what is called mounting a volume to the container. This volume will live on after the container is spun down or goes offline for some reason in the place where we told it to be.
Fluree already has a mechanism for writing to a file system. In fact, there is a customizable parameter which enables you to specify the path in the file system where you would like Fluree to write its data. You can see all of the configuration options in the docs. The config we are interested in now is fdb-storage-file-directory. By default, this is set to /var/lib/fluree whether Fluree is being run in a container or in a JVM directly on a server. This means we can use some functionality in the Docker CLI to bind a directory in our local filesystem to this directory inside the container. Docker run has a flag called –volume (aliased to -v) where you can specify the two directories to be bound together. It will look like this -v "[local/path/to/dir]:[container/path/to/dir]".
fdb-storage-file-directory
/var/lib/fluree
-v "[local/path/to/dir]:[container/path/to/dir]"
For my example, I will tell my container to bind to Users/treybotard/Projects/fluree-data/docker-blog/. To put this together with the run command from above; your command should look like this:
Users/treybotard/Projects/fluree-data/docker-blog/
docker run -p 8090:8090 -v “/Users/treybotard/Projects/fluree-data/docker-blog/:/var/lib/fluree” fluree/ledger
Now that I’ve run this command, I can open up the AdminUI, add a new ledger to my Fluree instance, and when I path to my docker-blog folder, I will see 2 folders, group/ and ledger/. These are the folders Fluree uses to maintain raft logs (in group/) and the encrypted indexes (in ledger/). I’m not going to go into too much detail here about this structure. If you are interested in reading more about how Fluree maintains the indexes or how Fluree interacts with the file system you can read more in the docs.
group/
ledger/
When using the --volume command to persist your data outside of the container, if a private key is not provided on start-up, Fluree will create a default private key. This key (whether provided or generated at startup) is used for a few access controls in developement mode. What this means is that if you want to reuse the same identity to access the persisted data, you will need to store your key outside of the container and pass it in when spinning up a fresh container. This can be done a few different ways, but for simplicity’s sake, we’ll just look at passing the private key into the container as an environment variable with -e. Using an environment variable requires passing in -e FDB_GROUP_PRIVATE_KEY=[PRIVATE_KEY] when starting the container.
--volume
-e
-e FDB_GROUP_PRIVATE_KEY=[PRIVATE_KEY]
Now our command looks like this:
docker run -p 8090:8090 -v “/Users/treybotard/Projects/fluree-data/Docker-blog/:/var/lib/fluree” –name ledger1 -e FDB_GROUP_PRIVATE_KEY=123456789 fluree/ledger:latest
One very convenient way to maintain my development environment is to use the --name flag on a container with a volume mounted on it. What this enables is the stop and start functionality in the Docker CLI. If i have a container specifically for a client project or a demo I am working on, I give it a meaningful name “docker-blog” and mount it to a volume stored next to the source code where I am working. I can then conveniently run docker start docker-blog when I am ready to work on the container. It knows which ports to use and can spin up the container exactly the way it was when I ran docker stop docker-blog when I stopped working on it before.
stop
start
docker start docker-blog
docker stop docker-blog
–rm: If you are just testing out some some ledgers and are making some throw-away ledgers, I recommend adding the --rm flag. Going to spin up a named container which you forgot to spin down, but getting an error that the container name already exists gets old quickly. This will remove the container when you either CTRL+C or send SIGINT to the container some other way.
--rm
-d and attach: If you have been spun up a Fluree container before, you will have seen that the output is relatively chatty. One easy way to not have to see that in your terminal is to pass the -d flag when starting up the container. This will run Fluree in a detached process and not print to the console. You can run docker attach [container name] to reattach to the console and see the logs in your terminal. If you didn’t give the container a name, you can look it up with docker ps -a to see all the containers, including the ones which are stopped.
-d
docker attach [container name]
docker ps -a
docker exec: Sometimes, it can be very useful to have a bash terminal inside a running container while Fluree is running. You can use the docker exec command to run a command inside a running container. One useful way which I use this is to run docker exec -it [container name] /bin/bash. This opens a bash terminal in the working directory of my container where Fluree is running.
docker exec
docker exec -it [container name] /bin/bash
It can also be useful to access the file system in a container with Fluree inside it, even when Fluree is not running. To startup a container without initializing Fluree, you need to use docker run, but override the --entrypoint. That looks like this:
--entrypoint
docker run -it –entrypoint=bash fluree/ledger
This will start up a container and give you a bash terminal with which to explore.
With these commands, a large percentage of the functionality needed to work with Fluree locally can be achieved. Next week, we’ll take a look at how to set up a Transactor Group (several Fluree instances networked together) in Docker using similar commands and Docker compose!
Semantic Partners, with its headquarters in London and a team across Europe and the US, is known for its expertise in implementing semantic products and data engineering projects. This collaboration leverages Fluree’s comprehensive suite of solutions, including ontology modeling, auto-tagging, structured data conversion, and secure, trusted knowledge graphs.
Visit Partner Site
Report: Decentralized Knowledge Graphs Improve RAG Accuracy for Enterprise LLMs
Fluree just completed a report on reducing hallucinations and increasing accuracy for enterprise production Generative AI through the use of Knowledge Graph RAG (Retrieval Augmented Generation). Get your copy by filling out the form below.
"*" indicates required fields
Fill out the form below to schedule a call.
Fluree is integrated with AWS, allowing users to build sophisticated applications with increased flexibility, scalability, and reliability.
Semiring’s natural language processing pipeline utilizes knowledge graphs and large language models to bring hidden insights to light.
Industry Knowledge Graph LLC is a company that specializes in creating and utilizing knowledge graphs to unlock insights and connections within complex datasets, aiding businesses in making informed decisions and optimizing processes.
Cobwebb specializes in providing comprehensive communication and networking solutions, empowering businesses with tailored services to enhance efficiency and connectivity.
Deploy and Manage Fluree Nodes on Zeeve’s Cloud Infrastructure.
Visit Partner Site More Details
Sinisana provides food traceability solutions, built with Fluree’s distributed ledger technology.
Lead Semantics provides text-to-knowledge solutions.
TextDistil, powered by Fluree technology, targets the cognitive corner of the technology landscape. It is well-positioned to deliver novel functionality by leveraging the power of Large Language Models combined with the robust methods of Semantic Technology.
Project Logosphere, from Ikigai, is a decentralized knowledge graph that empowers richer data sets and discoveries.
Cibersons develops and invests in new technologies, such as artificial intelligence, robotics, space technology, fintech, blockchain, and others.
Powered by Fluree, AvioChain is an aviation maintenance platform built from the ground up for traceability, security, and interoperability.
Thematix was founded in 2011 to bring together the best minds in semantic technologies, business and information architecture, and traditional software engineering, to uniquely address practical problems in business operations, product development and marketing.
Opening Bell Ventures provides high-impact transformational services to C-level executives to help them shape and successfully execute on their Omni-Channel Digital Strategies.
Datavillage enables organizations to combine sensitive, proprietary, or personal data through transparent governance. AI models are trained and applied in fully confidential environments ensuring that only derived data (insights) is shared.
Vitality Technet has partnered with Fluree to accelerate drug discovery processes and enable ongoing collaboration across internal departments, external partners, and regulatory offices through semantics, knowledge graphs, and digital trust technologies.
SSB Digital is a dynamic and forward-thinking IT company specializing in developing bespoke solutions tailored to meet the unique needs and challenges of clients, ranging from predictive analytics and smart automation to decentralized applications and secure transactions.
Marzex is a bespoke Web3 systems development firm. With the help of Fluree technology, Marzex completed one of the first successful blockchain-based online elections in history.
Semantic Arts delivers data-centric transformation through a model-driven, semantic knowledge graph approach to enterprise data management.
Intigris, a leading Salesforce implementation partner, has partnered with Fluree to help organizations bridge and integrate multiple Salesforce instances.
Follow us on Linkedin
Join our Mailing List
Subscribe to our LinkedIn Newsletter
Subscribe to our YouTube channel
Partner, Analytic Strategy Partners; Frederick H. Rawson Professor in Medicine and Computer Science, University of Chicago and Chief of the Section of Biomedical Data Science in the Department of Medicine
Robert Grossman has been working in the field of data science, machine learning, big data, and distributed computing for over 25 years. He is a faculty member at the University of Chicago, where he is the Jim and Karen Frank Director of the Center for Translational Data Science. He is the Principal Investigator for the Genomic Data Commons, one of the largest collections of harmonized cancer genomics data in the world.
He founded Analytic Strategy Partners in 2016, which helps companies develop analytic strategies, improve their analytic operations, and evaluate potential analytic acquisitions and opportunities. From 2002-2015, he was the Founder and Managing Partner of Open Data Group (now ModelOp), which was one of the pioneers scaling predictive analytics to large datasets and helping companies develop and deploy innovative analytic solutions. From 1996 to 2001, he was the Founder and CEO of Magnify, which is now part of Lexis-Nexis (RELX Group) and provides predictive analytics solutions to the insurance industry.
Robert is also the Chair of the Open Commons Consortium (OCC), which is a not-for-profit that manages and operates cloud computing infrastructure to support scientific, medical, health care and environmental research.
Connect with Robert on Linkedin
Founder, DataStraits Inc., Chief Revenue Officer, 3i Infotech Ltd
Sudeep Nadkarni has decades of experience in scaling managed services and hi-tech product firms. He has driven several new ventures and corporate turnarounds resulting in one IPO and three $1B+ exits. VC/PE firms have entrusted Sudeep with key executive roles that include entering new opportunity areas, leading global sales, scaling operations & post-merger integrations.
Sudeep has broad international experience having worked, lived, and led firms operating in US, UK, Middle East, Asia & Africa. He is passionate about bringing innovative business products to market that leverage web 3.0 technologies and have embedded governance risk and compliance.
Connect with Sudeep on Linkedin
CEO, Data4Real LLC
Julia Bardmesser is a technology, architecture and data strategy executive, board member and advisor. In addition to her role as CEO of Data4Real LLC, she currently serves as Chair of Technology Advisory Council, Women Leaders In Data & AI (WLDA). She is a recognized thought leader in data driven digital transformation with over 30 years of experience in building technology and business capabilities that enable business growth, innovation, and agility. Julia has led transformational initiatives in many financial services companies such as Voya Financial, Deutsche Bank Citi, FINRA, Freddie Mac, and others.
Julia is a much sought-after speaker and mentor in the industry, and she has received recognition across the industry for her significant contributions. She has been named to engatica 2023 list of World’s Top 200 Business and Technology Innovators; received 2022 WLDA Changemaker in AI award; has been named to CDO Magazine’s List of Global Data Power Wdomen three years in the row (2020-2022); named Top 150 Business Transformation Leader by Constellation Research in 2019; and recognized as the Best Data Management Practitioner by A-Team Data Management Insight in 2017.
Connect with Julia on Linkedin
Senior Advisor, Board Member, Strategic Investor
After nine years leading the rescue and turnaround of Banco del Progreso in the Dominican Republic culminating with its acquisition by Scotiabank (for a 2.7x book value multiple), Mark focuses on advisory relationships and Boards of Directors where he brings the breadth of his prior consulting and banking/payments experience.
In 2018, Mark founded Alberdi Advisory Corporation where he is engaged in advisory services for the biotechnology, technology, distribution, and financial services industries. Mark enjoys working with founders of successful businesses as well as start-ups and VC; he serves on several Boards of Directors and Advisory Boards including MPX – Marco Polo Exchange – providing world-class systems and support to interconnect Broker-Dealers and Family Offices around the world and Fluree – focusing on web3 and blockchain. He is actively engaged in strategic advisory with the founder and Executive Committee of the Biotechnology Institute of Spain with over 50 patents and sales of its world-class regenerative therapies in more than 30 countries.
Prior work experience includes leadership positions with MasterCard, IBM/PwC, Kearney, BBVA and Citibank. Mark has worked in over 30 countries – extensively across Europe and the Americas as well as occasional experiences in Asia.
Connect with Mark on Linkedin
Chair of the Board, Enterprise Data Management Council
Peter Serenita was one of the first Chief Data Officers (CDOs) in financial services. He was a 28-year veteran of JPMorgan having held several key positions in business and information technology including the role of Chief Data Officer of the Worldwide Securities division. Subsequently, Peter became HSBC’s first Group Chief Data Officer, focusing on establishing a global data organization and capability to improve data consistency across the firm. More recently, Peter was the Enterprise Chief Data Officer for Scotiabank focused on defining and implementing a data management capability to improve data quality.
Peter is currently the Chairman of the Enterprise Data Management Council, a trade organization advancing data management globally across industries. Peter was a member of the inaugural Financial Research Advisory Committee (under the U.S. Department of Treasury) tasked with improving data quality in regulatory submissions to identify systemic risk.
Connect with Peter on Linkedin
Turn Data Chaos into Data Clarity
Enter details below to access the whitepaper.
Pawan came to Fluree via its acquisition of ZettaLabs, an AI based data cleansing and mastering company.His previous experiences include IBM where he was part of the Strategy, Business Development and Operations team at IBM Watson Health’s Provider business. Prior to that Pawan spent 10 years with Thomson Reuters in the UK, US, and the Middle East. During his tenure he held executive positions in Finance, Sales and Corporate Development and Strategy. He is an alumnus of The Georgia Institute of Technology and Georgia State University.
Connect with Pawan on Linkedin
Andrew “Flip” Filipowski is one of the world’s most successful high-tech entrepreneurs, philanthropists and industry visionaries. Mr. Filipowski serves as Co-founder and Co-CEO of Fluree, where he seeks to bring trust, security, and versatility to data.
Mr. Filipowski also serves as co-founder, chairman and chief executive officer of SilkRoad Equity, a global private investment firm, as well as the co-founder, of Tally Capital.
Mr. Filipowski was the former COO of Cullinet, the largest software company of the 1980’s. Mr. Filipowski founded and served as Chairman and CEO of PLATINUM technology, where he grew PLATINUM into the 8th largest software company in the world at the time of its sale to Computer Associates for $4 billion – the largest such transaction for a software company at the time. Upside Magazine named Mr. Filipowski one of the Top 100 Most Influential People in Information Technology. A recipient of Entrepreneur of the Year Awards from both Ernst & Young and Merrill Lynch, Mr. Filipowski has also been awarded the Young President’s Organization Legacy Award and the Anti-Defamation League’s Torch of Liberty award for his work fighting hate on the Internet.
Mr. Filipowski is or has been a founder, director or executive of various companies, including: Fuel 50, Veriblock, MissionMode, Onramp Branding, House of Blues, Blue Rhino Littermaid and dozens of other recognized enterprises.
Connect with Flip on Linkedin
Brian is the Co-founder and Co-CEO of Fluree, PBC, a North Carolina-based Public Benefit Corporation.
Platz was an entrepreneur and executive throughout the early internet days and SaaS boom, having founded the popular A-list apart web development community, along with a host of successful SaaS companies. He is now helping companies navigate the complexity of the enterprise data transformation movement.
Previous to establishing Fluree, Brian co-founded SilkRoad Technology which grew to over 2,000 customers and 500 employees in 12 global offices. Brian sits on the board of Fuel50 and Odigia, and is an advisor to Fabric Inc.
Connect with Brian on Linkedin
Eliud Polanco is a seasoned data executive with extensive experience in leading global enterprise data transformation and management initiatives. Previous to his current role as President of Fluree, a data collaboration and transformation company, Eliud was formerly the Head of Analytics at Scotiabank, Global Head of Analytics and Big Data at HSBC, head of Anti-Financial Crime Technology Architecture for U.S.DeutscheBank, and Head of Data Innovation at Citi.
In his most recent role as Head of Analytics and Data Standards at Scotiabank, Eliud led a full-spectrum data transformation initiative to implement new tools and technology architecture strategies, both on-premises as well as on Cloud, for ingesting, analyzing, cleansing, and creating consumption ready data assets.
Connect with Eliud on Linkedin
Get the right data into the right hands.
Build your Verifiable Credentials/DID solution with Fluree.
Wherever you are in your Knowledge Graph journey, Fluree has the tools and technology to unify data based on universal meaning, answer complex questions that span your business, and democratize insights across your organization.
Build real-time data collaboration that spans internal and external organizational boundaries, with protections and controls to meet evolving data policy and privacy regulations.
Fluree Sense auto-discovers data fitting across applications and data lakes, cleans and formats them into JSON-LD, and loads them into Fluree’s trusted data platform for sharing, analytics, and re-use.
Transform legacy data into linked, semantic knowledge graphs. Fluree Sense automates the data mappings from local formats to a universal ontology and transforms the flat files into RDF.
Whether you are consolidating data silos, migrating your data to a new platform, or building an MDM platform, we can help you build clean, accurate, and reliable golden records.
Our enterprise users receive exclusive support and even more features. Book a call with our sales team to get started.
Download Stable Version Download Pre-Release Version
Register for Alpha Version
By downloading and running Fluree you agree to our terms of service (pdf).
Hello this is some content.