Self-hosted application server · LGPL-3.0

Give Daptin your tables and relationships. Get a running application server.

Define the tables and relationships your product needs. Daptin creates the database, APIs, access controls, admin interface, files, workflows, events, and integrations.

schema_product.yaml
Tables:
  - TableName: product
    Columns:
      - Name: title
        DataType: varchar(200)
      - Name: price
        DataType: float

POST /api/product     201
GET  /api/product     200
JSON:API + GraphQLPolicy + actionsAdmin + live events
Use common API toolsJSON:API · GraphQL · OpenAPIConnect existing auth librariesOAuth 2.0 · OIDC · PKCE · JWTSubscribe with standard clientsWebSocket · Yjs · SSEKeep using mail and file softwareSMTP · IMAP · FTP/FTPS · WebDAV

What Daptin creates

Define a table once. Daptin runs its API, access, admin, and events.

Daptin uses the same table and relationship definitions for APIs, permissions, files, actions, events, and the admin interface.

See how the components fit together →
One definition
TableName: product
Columns:
  - Name: title
    DataType: varchar(200)
  - Name: photo
    ColumnType: image
01 / modelTables, relations, types, IDs, and timestamps
02 / exposeJSON:API, GraphQL, OpenAPI, and dashboard3
03 / governAccounts, groups, row permissions, and audit
04 / operateActions, schedules, events, storage, and servers

Why Daptin uses established protocols

Works with the SDKs, clients, and tools you already use.

Published protocols let you inspect, replace, and maintain integrations without a Daptin-specific client.

Check the v0.12.36 feature list ↗

Compatibility limits: the CalDAV/CardDAV routes provide basic WebDAV file storage, not the full calendar and contact specifications. Daptin uses JSON:API resource documents, but does not implement the optional include query.

The shipped admin interface

See and edit the live backend in dashboard3.

dashboard3 running on Daptin v0.12.36.

See the product in detail →

Permissions across services

Revoke access once. Every Daptin service honors it.

The former member loses access to records, downloads, actions, and live events. Each service checks the same ownership and group rules.

Read the permission model →
Workspace membership removedgroup relation
Project and ticket rows deniedJSON:API
Attachments and actions deniedfiles + actions
Record events stopWebSocket

Server-side controls

Access checks, secrets, and transactions stay on the server.

Every client and protocol receives the same access decisions. The browser does not hold provider credentials.

Permissions

One access rule covers rows, files, actions, and subscriptions.

Guest, owner, and group permissions cover rows, relationships, assets, actions, WebSocket topics, Yjs rooms, and FTP site paths.

Inspect authorization tests ↗
Authentication

Single-use codes, token rotation, and replay protection.

Actions and scheduled work use database transactions. OAuth codes are single-use, refresh tokens rotate, provider PKCE is required, and OTP attempts are cluster-shared.

Read the token lifecycle →
Operations

Health checks, statistics, audits, and live counters.

/ping reports process liveness; /statistics exposes web, database-pool, host, and resource state. Logs, audit tables, caching, distributed PubSub, and rate counters are built in.

Read the operations guide →

Self-hosted deployment

Run one executable or a container on your infrastructure.

See Deploy for artifact limits.

Define a table, start Daptin, and call its API.