Skip to content

singhalkarun/postgres

 
 

Repository files navigation

WarpSQL

Opinionated extensions to Postgres packaged as a single docker deployment. Why install 10 DBs when you can have everything at once (maybe not everything).

Certified as Indie Hacker's best friend!!!

Current and future supported extensions

Bootstrapped from TimescaleDB

Usage with Compose

version: '3.6'
services:
  warpsql:
    container_name: warpsql
    image: samagragovernance/postgres:latest-pg15
    restart: always
    ports:
      - "5432:5432"
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: warpSQLUser
      POSTGRES_PASSWORD: warpSQLPass

WarpSQL is a powerful solution that provides opinionated extensions to Postgres, conveniently packaged as a single Docker deployment. It eliminates the need to install multiple separate databases by offering a comprehensive set of features in one place (although not everything, as some features might not be included).

By utilizing WarpSQL, you can benefit from the following:

  • Simplified setup: With WarpSQL, you can have all the necessary extensions for your Postgres database in one go, saving you time and effort.
  • Seamless integration: WarpSQL includes popular extensions like PgVector, TimescaleDB, Citus, and PostGIS, allowing you to leverage their functionality seamlessly.
  • Enhanced performance: The included extensions are carefully selected to optimize database performance, enabling you to work efficiently with large datasets.
  • Extensibility: While WarpSQL already supports a range of extensions, it aims to expand its offerings to include even more powerful tools in the future, such as ZomboDB, PLV8, and Pg Repack. Get started with WarpSQL today and experience the convenience of a comprehensive Postgres solution.

PostgreSQL Image Packer Template

This repository contains a Packer template for building the WarpSQL image with multiple sources and provisioners. The template supports building images based on both the Alpine and Bitnami PostgreSQL images.

Prerequisites

Before using this Packer template, ensure that you have the following prerequisites installed:

Usage

To build the WarpSQL image using the Packer template, follow these steps:

  1. Clone this repository and navigate to the packer directory:

     git clone https://github.com/Samagra-Development/WarpSQL.git
     cd WarpSQL/packer
  2. Build the images:

      packer build warpsql.pkr.hcl

To build only the Alpine image, you can use the -only option:

packer build -only=warpsql.docker.alpine warpsql.pkr.hcl

By default, all supported extensions are installed. If you want to install specific extensions, you can provide the extensions variable:

packer build -var extentions='pg_repack,hll'  -only warpsql.docker.alpine warpsql.pkr.hcl  

Note that currently only the Docker source has been added to the template.

You can further customize the image repository and tags by providing values for the image_repository and image_tags variables using the -var option. Here's an example command:

packer build -var="image_repository=your_value" -var="image_tags=[tag1,tag2]" warpsql.pkr.hcl

List of supported extensions

Extension Identifier
PgVector pgvector
TimescaleDB timescaledb
Citus citus
PostGIS postgis
ZomboDB zombodb
PgRepack pg_repack
PG Auto Failover pgautofailover
HyperLogLog hll

Contribution

You can contribute to the development of WarpSQL using both Gitpod and Codespaces. Follow the steps below to set up your development environment and make contributions:

Gitpod

Click the "Open in Gitpod" button above or use the following link:Open in Gitpod

Open in Gitpod

  • Wait for the Gitpod environment to be created and initialized.
  • Once the environment is ready, you can start working on the project.
  • Make your desired changes or additions.
  • Test your changes and ensure they meet the project's guidelines.
  • Commit and push your changes to your forked repository.
  • Create a pull request from your forked repository to the main WarpSQL repository.

GitHub Codespaces

You can use GitHub Codespaces to develop this project in the cloud.

GitHub Codespaces

  • Click on the "Code" button.
  • Select "Open with Codespaces" from the dropdown menu.
  • Choose the appropriate Codespace configuration.
  • Wait for the environment to be provisioned.

Once the environment is ready, you can start working on the project.

  • Make your desired changes or additions.
  • Test your changes and ensure they meet the project's guidelines.
  • Commit and push your changes to your forked repository.
  • Create a pull request from your forked repository to the main WarpSQL repository.
  • We welcome contributions from the community and appreciate your support in improving WarpSQL!

Ensure CI passes

Before merging any contributions or changes, it's essential to ensure that the continuous integration (CI) tests pass successfully. CI helps maintain code quality standards and prevents the introduction of regressions. To ensure a smooth integration process, follow these steps:

  • Make your desired changes or additions to the codebase.
  • Run the relevant tests locally to verify that your changes are functioning as expected.
  • Push your changes to the branch you're working on.
  • The CI system will automatically run tests and checks on your code.
  • Monitor the CI build status to ensure that all tests pass successfully.
  • If the CI build fails, review the error messages and make the necessary fixes.
  • Repeat steps 3-6 until the CI build passes successfully.
  • Once the CI build is successful, you can proceed with merging your changes into the main WarpSQL repository.

Maintainers

Jayanth Kumar
Jayanth Kumar
💻

About

Samagra Postgres on Steroids

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 45.0%
  • Dockerfile 32.8%
  • Makefile 10.0%
  • JavaScript 7.9%
  • HCL 4.3%