Sign inSign up

senicity/mixql

By senicity

Updated 4 months ago

A TCP-based query language server for hashing, salting, storage and modern encryption operations.

Image
Security
Languages & frameworks
Databases & storage
0

525

senicity/mixql repository overview


███╗   ███╗██╗██╗  ██╗ ██████╗ ██╗     
████╗ ████║██║╚██╗██╔╝██╔═══██╗██║     
██╔████╔██║██║ ╚███╔╝ ██║   ██║██║     
██║╚██╔╝██║██║ ██╔██╗ ██║▄▄ ██║██║     
██║ ╚═╝ ██║██║██╔╝ ██╗╚██████╔╝███████╗
╚═╝     ╚═╝╚═╝╚═╝  ╚═╝ ╚══▀▀═╝ ╚══════╝
                                       
// -- Powered by:

┏┓┏┓┳┓┳┏┓┳┏┳┓┓┏
┗┓┣ ┃┃┃┃ ┃ ┃ ┗┫
┗┛┗┛┛┗┻┗┛┻ ┻ ┗┛
               
// --> https://senicity.com
// --

MixQL Server

TCP-based query language server for hashing, salting, storage and one-way encryption operations. Built with C++17, OpenSSL, and LevelDB.

Quick Start

Pull and run the Alpine variant (smallest image):

docker pull senicity/mixql:alpine
docker run -p 7272:7272 senicity/mixql:alpine

Or use the Ubuntu variant:

docker pull senicity/mixql:ubuntu
docker run -p 7272:7272 senicity/mixql:ubuntu

Test with a basic command:

echo -e "CREATE UUID\n" | nc localhost 7272

Build from Source

Build Options
Alpine (smaller image)
docker build -f Dockerfile.alpine -t mixql:alpine .
Ubuntu
docker build -f Dockerfile.ubuntu -t mixql:ubuntu .
Default (uses Alpine)
docker build -f Dockerfile -t mixql:latest .

Features

  • Query Expressions: Process SELECT statements with parameter substitution
  • Function Support: Built-in functions for data operations
  • Value Generation: Create UUIDs, random strings, and derived values
  • Query Management: Store, retrieve, and execute named queries
  • TCP Interface: Simple text protocol on port 7272

Usage Examples

Basic query with parameter:

echo -e "SELECT <PROCESS>(:input) AS output\nhello" | nc localhost 7272

Generate a UUID:

echo -e "CREATE UUID\n" | nc localhost 7272

Generate multiple random strings:

echo -e "CREATE SALT LIMIT 5\n" | nc localhost 7272

Store a query:

echo -e "SELECT PROCESS(:value) AS output STORE AS myquery\n" | nc localhost 7272

Use a stored query:

echo -e "STORE USE myquery\ntest_value" | nc localhost 7272

Image Variants

VariantBase ImageSizeDescription
alpineAlpine Linux~25MBMinimal production image
ubuntuUbuntu 22.04~90MBFull library support
latestAlpine~25MBLatest stable release

Configuration

The Docker image includes a default config.ini file, but you can override configuration at runtime:

Environment Variables (Highest Priority)

Environment variables override both file and default values:

docker run -p 7272:7272 \
  -e SERVER_PORT=8080 \
  -e SERVER_DBNAME=customdb \
  -e SERVER_AUTH_ENABLED=true \
  senicity/mixql:alpine
Volume Mount for Custom Config File

Mount your own config.ini file to override the default:

docker run -p 7272:7272 \
  -v /path/to/your/config.ini:/app/config/config.ini \
  senicity/mixql:alpine
Combined Example
docker run -p 8080:8080 \
  -v /custom/config.ini:/app/config/config.ini \
  -e SERVER_PORT=8080 \
  -e SERVER_AUTH_ENABLED=true \
  senicity/mixql:alpine

Priority Order: Environment variables > Volume-mounted config file > Default config.ini in image

Documentation

Complete documentation available at:

Maintained by

Senicity Ltdsenicity.com

TCP-based query language server for hashing, salting, storage and one-way encryption operations.

Tag summary

Content type

Image

Digest

sha256:119ed03e9

Size

8.8 MB

Last updated

4 months ago

docker pull senicity/mixql