Today I would like to cover installing InfluxDB on a Windows computer. In case you did not know "InfluxDB is a high-performance data store written specifically for time series data", and this is extremely useful when working with
Home Automation data like system up-time, temperature, etc.
1 - Download and first run
Downloading InfluxDB is as simple as going to the downloads page and clicking the
InfluxDB download link as shown below (at the time of writing this was for version 1.7.2).
Once downloaded you will need to make a folder on your computer to extract and tune everything from - there are no installers for the TICK stack, rather a zip file containing everything that you need to get up and running. For the purposes of this tutorial I will be using the following folder (
c:\Program Files\InfluxData\) as my root directory.
1.1 - Extract the ZIP file
Let's create a folder called
influxdb and extract the contents of the
influxdb.1.7.2_windows_amd64.zip file into it.
Once done it should look something like this:
1.2 - Configuring InfluxDB
Next we will need to edit the
influxdb.conf in order to set the relevant folders and settings when running on Windows. I would recommend creating a folder outside of the main InfluxDB directory to store your data as it will make upgrading and backups a lot easier (in my case this is
c:\Program Files\InfluxData\influx-data\). You will need to make the following changes to your
influxdb.conf file (along with creating the folder paths).
Change the META dir
Locate and change the
meta directory as shown below (remember to create the folder if it is missing).
[meta] # Where the metadata/raft database is stored dir = "D:/Program Files/InfluxData/influxdb-data/meta"
Change the DATA + WAL dir
Locate and change the
data directory as shown below:
[data] # The directory where the TSM storage engine stores TSM files. dir = "D:/Program Files/InfluxData/influxdb-data/data" ... wal-dir = "D:/Program Files/InfluxData/influxdb-data/wal"
Configure logging (if you want it)
If you would like to enable \ configure logging below are some of the most common settings you will need to modify.
logging-enabled = true trace-logging-enabled = false query-log-enabled = true
Enable the HTTP endpoint
If you would like to make use of the HTTP endpoint (in most cases you do), you can enable it via the below configuration key:
[http] # Determines whether HTTP endpoint is enabled. enabled = true
1.3 - First Time Run
Provided that the HTTP Endpoint was enabled above, you can test to see if everything is configured correctly by simply running the
influxd.exe from your installation directory.
Watch the launched console for any errors relating to the configuration properties you have changed, once everything is happy you can navigate to 'http://localhost:8086/query' in your browser and should be greeted with some form of response from InfluxDB.
Success, it seems that everything is configured correctly.
2 - Running as a service
To run InfluxDB as a Windows service I find it easiest to use nssm (the Non-Sucking Service Manager) with the configuration detailed below.
To install the service you will need to copy
nssm.exe to a location on your PC (I suggest placing it in the root InfluxData directory we created earlier
c:\Program Files\InfluxData\nssm.exe) and launching the installer through an elevated command prompt window using this command:
On the Application tab enter in the following:
- Startup Directory:
-config "C:\Program Files\InfluxData\influxdb\influxdb.conf"
- Service Name:
On the Details tab enter in the following:
- Description: anything you would like
- Startup Type:
Once done, click Install Service - that's it!
You should now be able to start the
influxdb service as you would any other Windows service and you should still have access to the HTTP endpoint (http://localhost:8086/query/).
3 - Windows Firewall
If you are planning on running InfluxDB on a remote server (like I am doing) you will need to add a firewall rule to allow connections to it (default port
8086) - this is as simple as opening the advanced firewall rules in windows and completing the new rule wizard as follows:
Port based rule ...
... specifying the port as
... allowing the connection from your selected domains ...
... and giving the rule a meaningful name :)
This should allow remote access to InfluxDB:
Setting up InfluxDB is super simple (albeit there are a few steps to follow) and should take you no longer than 10 min if following this guide.
InfluxDB is an awesome time-series database and performs fast even on the oldest hardware \ single board computers, and when paired with Grafana makes an awesome addition to my home automation monitoring.
As always I welcome any feedback, questions or comments on my posts and will do my best to respond in a timely manner. I hope you found this post helpful!