Skip to main content

Database providers

Hyppot uses an SQL database to store the data. We provide three different database providers compatible with different RDBMS. Each providers comes in separate NuGet package.

Hyppot will automatically initialize database and apply migrations on startup.

Note: In load-balanced environments with multiple instances, the automatic migration process may cause issues if multiple instances start simultaneously. In such scenarios, it's recommended to start instances sequentially.

MS Sql Server

.NET Integration

To use Microsoft SQL Server as the DB provider, install Hyppot.Sqlserver and configure:

using Hyppot.Sqlserver;

builder.Services.AddHyppot(config =>
{
config.DbSetup = new SqlserverDbDetup(connectionString);
});

Docker Configuration

When using the Hyppot Docker image with SQL Server, configure the connection via environment variables:

docker run -p 8080:80 \
-e HYPPOT_DB_PROVIDER=SqlServer \
-e HYPPOT_CONNECTION_STRING="Server=your-sql-server;Database=HyppotDb;User Id=your-user;Password=your-password;" \
ghcr.io/hyppot/hyppot-server:latest

All the tables will be created in Hyppot schema to avoid conflicts with existing tables in the database.

PostgreSQL

.NET Integration

To use PostgreSQL, install package Hyppot.Postgresql. Then configure storage as following:

using Hyppot.Postgresql;

builder.Services.AddHyppot(config =>
{
config.DbSetup = new PostgresqlDbSetup(connectionString);
});

Docker Configuration

When using the Hyppot Docker image with PostgreSQL, configure the connection via environment variables:

docker run -p 8080:80 \
-e HYPPOT_DB_PROVIDER=PostgreSQL \
-e HYPPOT_CONNECTION_STRING="Host=your-postgres-host;Database=hyppot;Username=your-user;Password=your-password" \
ghcr.io/hyppot/hyppot-server:latest

All the tables will be created in Hyppot schema to avoid conflicts with existing tables in the database.

SQLite

.NET Integration

To use SQLite, install package Hyppot.Sqlite. Then configure storage as following:

using Hyppot.Sqlite;

// ...

builder.Services.AddHyppot(config =>
{
config.DbSetup = new SqliteDbSetup("Data Source=/path/to/db/hyppot.db");
});

Docker Configuration

When using the Hyppot Docker image with SQLite, configure the connection via environment variables and mount a volume for data persistence:

docker run -p 8080:80 \
-e HYPPOT_DB_PROVIDER=SQLite \
-e HYPPOT_CONNECTION_STRING="Data Source=/app/data/hyppot.db" \
-v /host/path/to/data:/app/data \
ghcr.io/hyppot/hyppot-server:latest

As SQLite does not support schemas, we suggest to use separate db file for Hyppot to avoid potential table conflict issues.

Tip: For production deployments, consider using Docker secrets or external configuration management tools to securely manage connection strings and sensitive data.