No description
  • TypeScript 63.2%
  • Dockerfile 27.6%
  • Shell 9.2%
Find a file
2026-04-11 18:32:23 +00:00
.github chore(deps): update dargmuesli/github-actions action to v5.1.1 2026-04-01 05:33:29 +00:00
.vscode feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
src feat(jwt)!: use ecdsa key 2026-03-14 06:43:08 +01:00
.dockerignore feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
.editorconfig chore(configuration): add editorconfig 2025-01-22 09:58:25 +01:00
.gitignore feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
.prettierrc.json feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
.releaserc fix(ci): update package version 2026-04-02 23:21:39 +02:00
.renovaterc.json feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
AGENTS.md chore(agents): add instructions 2026-04-03 00:19:46 +02:00
CHANGELOG.md chore(release): 2.0.1 [skip ci] 2026-04-07 19:34:47 +00:00
CODEOWNERS chore(git): add code owner 2026-02-20 05:10:16 +01:00
CONTRIBUTING.md docs: add readme and contributing 2026-04-03 01:10:26 +02:00
docker-entrypoint.sh refactor(docker): simplify trailing newline handling 2026-04-03 03:15:15 +02:00
Dockerfile chore(deps): update ghcr.io/maevsi/sqitch docker tag to v11.1.0 2026-04-11 18:32:23 +00:00
eslint.config.ts feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00
graphile-postgis-v0.2.0.tgz fix(deps): update postgraphile 2026-03-13 03:43:07 +01:00
LICENSE docs: add license 2025-12-26 11:59:23 +01:00
package.json chore(deps): update dependency typescript-eslint to v8.58.1 2026-04-11 01:46:44 +00:00
pnpm-lock.yaml chore(deps): update dependency typescript-eslint to v8.58.1 2026-04-11 01:46:44 +00:00
README.md docs: add readme and contributing 2026-04-03 01:10:26 +02:00
tsconfig.json feat(postgraphile)!: upgrade to v5 2026-02-20 05:00:31 +01:00

🚀 @maevsi/postgraphile

A blazing-fast GraphQL API layer for PostgreSQL, powering the Vibetype event community platform.

Overview

This is a production-ready PostGraphile v5 server that automatically generates a powerful GraphQL API directly from your PostgreSQL schema. It's a core service of the Vibetype platform, seamlessly converting database changes into a secure, performant GraphQL interface.

Key Features

  • 🔄 Auto-Generated GraphQL API: Full CRUD operations from your PostgreSQL schema
  • 🌍 PostGIS Support: Built-in geospatial capabilities with @graphile/postgis
  • 🔐 JWT Authentication: ES256 ECDSA-signed tokens with claim-based authorization
  • Grafast Optimizations: Deep SQL query optimization and N+1 prevention
  • 🎨 Amber Preset: Sensible defaults for a modern development experience
  • 📦 TypeScript Ready: Full type safety from database to API
  • 🐳 Docker Native: Containerized with automatic pnpm setup

Quick Start

Prerequisites

Node.js, PostgreSQL with Vibetype schema migrations applied via sqitch, and pnpm.

Development

pnpm install    # Install dependencies
pnpm run lint   # Lint code

# Docker
docker build -t maevsi/postgraphile .

Architecture

This service is part of the Vibetype platform, an event community ecosystem:

┌─────────────────────────────────────────────┐
│     Frontend (Nuxt)                         │
└──────────────┬──────────────────────────────┘
               │ GraphQL
┌──────────────▼──────────────────────────────┐
│     GraphQL API (PostGraphile)              │
└──────────────┬──────────────────────────────┘
               │ SQL queries and mutations
┌──────────────▼──────────────────────────────┐
│     Database (PostgreSQL)                   │
└──────────────▲──────────────────────────────┘
               │ SQL schema
┌──────────────┴──────────────────────────────┐
│     Migrations (Sqitch)                     │
└─────────────────────────────────────────────┘

See maevsi/stack for the full Docker setup.

Project Structure

src/
├── graphile.config.ts    # Main PostGraphile configuration
├── graphile.ts           # Scripted logic
└── environment.ts        # Type-safe environment utilities

Authentication

Authentication uses ES256 (ECDSA) for signing JWTs; tokens use postgraphile as both issuer and audience and are represented in PostgreSQL by the composite type vibetype.jwt.

The signing keys and related secrets are best configured via environment variables in maevsi/stack.

Docker

The included docker-entrypoint.sh automatically:

  • Loads environment variables from /run/environment-variables (Docker secrets)
  • Installs dependencies in development mode
  • Passes control to the postgraphile command

Resources


Questions or Issues? Open an issue, we're here to help!