Install self-hosted TimescaleDB from source
You can host TimescaleDB yourself, on any system, by downloading the source code and compiling it. These instructions do not require the use of a package manager or installation tool.
Before you start, make sure you have installed:
- PostgreSQL 12 or later, with a development environment. For more information about PostgreSQL installation, including downloads and instructions, see the PostgreSQL documentation.
- CMake version 3.11 or later. For more information about CMake installation, including downloads and instructions, see the CMake documentation.
- C language compiler for your operating system, such as
gcc
orclang
.
If you are installing from source on a Microsoft Windows system, you also need:
- Visual Studio 2015 or later, packaged with CMake version 3.11 or later, and Git components.
Installing self-hosted TimescaleDB from source
At the command prompt, clone the Timescale GitHub repository:
git clone https://github.com/timescale/timescaledb.git
Change into the cloned directory:
cd timescaledb
Checkout the latest release. You can find the latest release tag on our Releases page:
git checkout 2.5.1
Bootstrap the build system:
Build the extension:
Install TimescaleDB:
Configure PostgreSQL after installing from source
When you install TimescaleDB from source, you need to do some additional PostgreSQL configuration to add the TimescaleDB library.
important
If you have more than one version of PostgreSQL installed, TimescaleDB can only be associated with one of them. The TimescaleDB build scripts use pg_config
to find out where PostgreSQL stores its extension files, so you can use pg_config
to find out which PostgreSQL installation TimescaleDB is using.
Configuring PostgreSQL after installing from source
Locate the
postgresql.conf
configuration file:psql -d postgres -c "SHOW config_file;"
Open the
postgresql.conf
file in your preferred text editor, and locate theshared_preload_libraries
parameter. Uncomment the line, and addtimescaledb
:shared_preload_libraries = 'timescaledb'
If you use other preloaded libraries, make sure they are comma separated.
Restart the PostgreSQL instance:
When you have completed the installation, you need to configure your database so that you can use it. The easiest way to do this is to run the timescaledb-tune
script, which is included with the timescaledb-tools
package. For more information, see the configuration section.
Set up the TimescaleDB extension
When you have PostgreSQL and TimescaleDB installed, you can connect to it from your local system using the psql
command-line utility. This is the same tool you might have used to connect to PostgreSQL before, but if you haven’t installed it yet, check out our installing psql section.
Setting up the TimescaleDB extension
On your local system, at the command prompt, connect to the PostgreSQL instance as the
postgres
superuser:psql -U postgres -h localhost
If your connection is successful, you’ll see a message like this, followed by the
psql
prompt:psql (13.3, server 12.8 (Ubuntu 12.8-1.pgdg21.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
tsdb=>
At the
psql
prompt, create an empty database. Our database is calledexample
:CREATE database example;
Connect to the database you created:
\c example
Add the TimescaleDB extension:
CREATE EXTENSION IF NOT EXISTS timescaledb;
You can now connect to your database using this command:
psql -U postgres -h localhost -d example
You can check that the TimescaleDB extension is installed by using the \dx
command at the psql
prompt. It looks like this:
tsdb=> \dx
List of installed extensions
-[ RECORD 1 ]------------------------------------------------------------------
Name | pg_stat_statements
Version | 1.7
Schema | public
Description | track execution statistics of all SQL statements executed
-[ RECORD 2 ]------------------------------------------------------------------
Name | plpgsql
Version | 1.0
Schema | pg_catalog
Description | PL/pgSQL procedural language
-[ RECORD 3 ]------------------------------------------------------------------
Name | timescaledb
Version | 2.5.1
Schema | public
Description | Enables scalable inserts and complex queries for time-series data
-[ RECORD 4 ]------------------------------------------------------------------
Name | timescaledb_toolkit
Version | 1.3.1
Schema | public
Description | timescaledb_toolkit
tsdb=>
Where to next
Now that you have your first TimescaleDB database up and running, you can check out the TimescaleDB section in our documentation, and find out what you can do with it.
If you want to work through some tutorials to help you get up and running with TimescaleDB and time-series data, check out our tutorials section.
You can always contact us if you need help working something out, or if you want to have a chat.