Sign inSign up

8kit/8kit

By 8kit

•Updated 10 months ago

A lightweight service for data synchronization, and a built-in admin dashboard

Image
Integration & delivery
0

1.6K

8kit/8kit repository overview

8kit Logo

⁠8kit Service – Automation Memory for Every Workflow

Discord


Part of the 8kit⁠ n8n integration framework. See 8kit.io⁠⁠ for full details.


⁠Overview

8kit is a comprehensive automation toolkit that allows you to build bulletproof n8n workflows with proven patterns making 8kit + n8n a fully fledged iPaas Solution.

The 8kit docker image allows you to create your own 8kit server which you can use to connect from our community n8n node. It provides the underlying 8kit service with admin UI to manage your 8kit data.

⁠Highlights
  • Persistent automation state – Track processed IDs, cross-system mappings, and "last run" timestamps.
  • Duplicate prevention – Deterministic checks stop the same payload from running twice across retries.
  • Distributed Transactions – Ensure only one worker handles a critical section at a time.

⁠Getting Started

⁠Quick Start (Docker Compose)

Complete setup with PostgreSQL database included:

services:
  db:
    image: postgres:16-alpine
    container_name: 8kit-postgres
    environment:
      - POSTGRES_DB=service_db
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 --auth-local=trust
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d service_db"]
      interval: 5s
      timeout: 3s
      retries: 20
    restart: unless-stopped
    volumes:
      - 8kit_data:/var/lib/postgresql/data

  app:
    image: 8kit/8kit:latest
    container_name: 8kit
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://postgres:postgres@db:5432/service_db?schema=public
      # - JWT_SECRET=your-custom-minimum-32-char-secret
      # - [email protected]
      # - SUPER_ADMIN_PASSWORD=demo123
      # - LOG_LEVEL=error
      # - JWT_EXPIRES_IN=7d
      # - MAX_REQUEST_SIZE=100kb
      # - DATABASE_CONNECTION_POOL_SIZE=5
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "/health-check.sh"]
      interval: 30s
      timeout: 3s
      start_period: 40s
      retries: 3

volumes:
  8kit_data:

Run with: docker compose up -d

For more configuration options visit 8kit.io/docs⁠.


⁠Configuration

⁠Minimum Required

Only one environment variable is required:

VariableRequiredDefaultPurpose
DATABASE_URL✅(none)PostgreSQL connection string (database, credentials, schema).

That's it! Everything else has smart defaults.

⁠Optional Configuration

Customize these for production deployments:

VariableDefaultPurpose
JWT_SECRETauto-generatedSecret for dashboard auth tokens. Auto-generates a secure 64-char hex string if not provided.
SUPER_ADMIN_EMAIL[email protected]Bootstrap admin account email for dashboard login.
SUPER_ADMIN_PASSWORDdemo123Bootstrap admin account password.
NODE_ENVproductionRuntime mode (production/development/test).
PORT3000HTTP port inside the container. Map externally via -p host:container.
LOG_LEVELerrorWinston log levels: error, warn, info, debug, silly.
MAX_REQUEST_SIZE100kbMaximum JSON payload size.
TEST_DATAfalseSet true to seed demo data.
DATABASE_CONNECTION_POOL_SIZE5The max connection the database accepts.
⁠Security Best Practices

⚠️ For Production: Set custom JWT_SECRET, SUPER_ADMIN_EMAIL, and SUPER_ADMIN_PASSWORD values.

Generate secure secrets:

# Generate JWT_SECRET (32+ characters)
openssl rand -hex 32

# Or use: https://jwtsecrets.com/#generator

Default credentials:

⚠️ Change these in production!


⁠What's Included

This single Docker image contains:

  • ✅ Express API - RESTful backend service
  • ✅ React Dashboard - Built-in admin UI (served at /)
  • ✅ PostgreSQL Client - Prisma ORM pre-configured
  • ✅ Health Checks - Built-in monitoring endpoints
  • ✅ Auto-migrations - Database schema updates on startup

⁠Data & Persistence

The application itself is stateless; all data lives in PostgreSQL:

StoragePurpose
PostgreSQL DatabaseRequired - Stores all automation data (uniqs, lookups, locks, lastUpdates).

⁠Networking & Health

  • Default Port: 3000 (configurable via PORT env var)
  • Dashboard: http://localhost:3000/
  • API: http://localhost:3000/api/v1
  • API Docs: http://localhost:3000/api/docs
  • Health Check: GET /health (returns 200 when ready)

Health Check Response:

{
  "status": "healthy",
  "timestamp": "2025-10-01T12:00:00.000Z",
  "uptime": 123.45,
  "environment": "production",
  "version": "1.0.1"
}

⁠Upgrading

Tags follow semantic releases (X.Y.Z). Pin to a specific version in production and upgrade intentionally:

docker pull 8kit/8kit:1.4.0

⁠Resources & Support


⁠Documentation

  • Service documentation – https://8kit.io/docs⁠ provides deployment guides, API references, and operations playbooks.

⁠Database Compatibility

  • Recommended: postgres:16-alpine - Lightweight and production-ready
  • Supported: PostgreSQL 14, 15, 16+
  • Schema: Managed automatically via Prisma migrations

⁠License

Built and maintained by Stratagems⁠.

Tag summary

Content type

Image

Digest

sha256:b598880c1…

Size

407.9 MB

Last updated

12 months ago

docker pull 8kit/8kit