selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ackify logo

Self-host ackify

v1.3.12

Cryptographic proof-of-reading for document compliance

ReleaseOpen SourceAGPL-3.0
Updated14 hours ago
LanguageGo
Setup difficultyModerate
ThemeDark mode
Stars
209
Port
8080 (HTTP web interface and API)
Requires
PostgreSQL
Docker
kolapsis/ackify
Install with Docker Compose
Home pageDocument upload screenAdd readers/confirmation request screenIntegrated document readerReading confirmed screenMy confirmations listManage my documentsAdmin settings dashboard

What is ackify?

Ackify is a self-hosted document acknowledgment platform that proves recipients have read important documents using Ed25519 cryptographic signatures. Each reading event generates an immutable, independently verifiable audit certificate suitable for compliance audits and legal disputes. The platform supports flexible authentication via OAuth2 (Google, GitHub, GitLab, or custom providers) or passwordless MagicLink email authentication. Key capabilities include one signature per user per document enforced at the database level, expected signers tracking with automated email reminders, document integrity verification via SHA-256/512 and MD5 checksums, optional document storage on local filesystem or S3-compatible object storage, and public embeddable widgets via iframe and oEmbed for Notion, Outline, and Confluence. The admin dashboard (Vue.js 3 with dark mode) provides document metadata management, signer tracking, and reminder controls. It runs as a Go backend with PostgreSQL 16, deployed via Docker Compose. The project is licensed under AGPL-3.0 and offers a freemium SaaS version with additional features like zero-knowledge mode and SSO on paid plans.

Should you self-host ackify?

ackify scores 50/100 on selfhost.directory (how scoring works) and ranks #28 of 46 in Document Management. It has 209 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.3.12, came out on 22 July 2026. New versions land roughly every 7 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Docuseal (74/100, 18 901 stars). It scores higher overall, so compare the two before you pick. See ackify vs Docuseal side by side.

Features

  • Document checksum verification
  • Ed25519 cryptographic signatures
  • Embeddable widgets (iframe + oEmbed)
  • Expected signers tracking with email reminders
  • Flexible authentication (OAuth2 + MagicLink)
  • Health check endpoint
  • Immutable audit trail
  • Multilingual support (5 languages)
  • One signature per user per document
  • Optional document storage (local or S3)
  • Rate Limiting
  • REST API

ackify README

How to install ackify

Install ackify with Docker Compose

Docker & Docker Compose; at least one authentication method
Environment variables
ACKIFY_BASE_URL, ACKIFY_ORGANISATION, POSTGRES_PASSWORD, ACKIFY_OAUTH_COOKIE_SECRET, ACKIFY_OAUTH_PROVIDER, ACKIFY_OAUTH_CLIENT_ID, ACKIFY_OAUTH_CLIENT_SECRET, ACKIFY_MAIL_HOST (optional)

bash <(curl -fsSL https://raw.githubusercontent.com/kolapsis/ackify/main/install/install.sh) cd ackify-ce nano .env # Edit with your OAuth2 credentials docker compose up -d open http://localhost:8080

Automated installation script downloads compose.yml and .env.example, generates secure secrets

How to configure ackify

  • ACKIFY_ADMIN_EMAILSComma-separated list of admin email addresses

    Comma-separated list of admin email addresses

  • ACKIFY_AUTH_MAGICLINK_ENABLEDfalseEnable MagicLink passwordless authentication (requires SMTP)

    Enable MagicLink passwordless authentication (requires SMTP)

    values: true, false

  • ACKIFY_AUTH_OAUTH_ENABLEDautoForce enable/disable OAuth (default: auto-detected from credentials)

    Force enable/disable OAuth (default: auto-detected from credentials)

    values: true, false

  • ACKIFY_BASE_URLPublic URL of your instance (used for OAuth callbacks)

    Public URL of your instance (used for OAuth callbacks)

  • ACKIFY_ED25519_PRIVATE_KEYEd25519 private key for signing (base64 encoded)

    Ed25519 private key for signing (base64 encoded)

  • ACKIFY_LISTEN_ADDR:8080HTTP listening address

    HTTP listening address

  • ACKIFY_LOG_LEVELinfoLog level: debug, info, warn, error

    Log level: debug, info, warn, error

    values: debug, info, warn, error

  • ACKIFY_MAIL_FROMnoreply@ackify.localFrom email address

    From email address

  • ACKIFY_MAIL_FROM_NAMEAckifyFrom name for emails

    From name for emails

  • ACKIFY_MAIL_HOSTmailhogSMTP server host for email reminders and MagicLink

    SMTP server host for email reminders and MagicLink

  • ACKIFY_MAIL_PASSWORDSMTP password

    SMTP password

  • ACKIFY_MAIL_PORT1025SMTP server port

    SMTP server port

  • ACKIFY_MAIL_USERNAMESMTP username

    SMTP username

  • ACKIFY_OAUTH_ALLOWED_DOMAINRestrict access to a specific email domain

    Restrict access to a specific email domain

  • ACKIFY_OAUTH_CLIENT_IDOAuth2 client ID

    OAuth2 client ID

  • ACKIFY_OAUTH_CLIENT_SECRETOAuth2 client secret

    OAuth2 client secret

  • ACKIFY_OAUTH_COOKIE_SECRETSecret to encrypt session cookies (generate with: openssl rand -base64 32)

    Secret to encrypt session cookies (generate with: openssl rand -base64 32)

  • ACKIFY_OAUTH_PROVIDERgoogleOAuth2 provider (google, github, gitlab, or empty for custom)

    OAuth2 provider (google, github, gitlab, or empty for custom)

    values: google, github, gitlab, custom

  • ACKIFY_ONLY_ADMIN_CAN_CREATEfalseRestrict document creation to admins only

    Restrict document creation to admins only

    values: true, false

  • ACKIFY_ORGANISATIONYour organization name (displayed in the interface)

    Your organization name (displayed in the interface)

  • ACKIFY_STORAGE_LOCAL_PATH/data/documentsLocal filesystem path for document storage

    Local filesystem path for document storage

  • ACKIFY_STORAGE_MAX_SIZE_MB50Maximum document size in MB

    Maximum document size in MB

  • ACKIFY_STORAGE_S3_ACCESS_KEYS3 access key

    S3 access key

  • ACKIFY_STORAGE_S3_BUCKETS3 bucket name

    S3 bucket name

  • ACKIFY_STORAGE_S3_ENDPOINTS3-compatible storage endpoint

    S3-compatible storage endpoint

  • ACKIFY_STORAGE_S3_REGIONS3 region

    S3 region

  • ACKIFY_STORAGE_S3_SECRET_KEYS3 secret key

    S3 secret key

  • ACKIFY_STORAGE_S3_USE_SSLtrueUse SSL for S3 connection

    Use SSL for S3 connection

    values: true, false

  • ACKIFY_STORAGE_TYPEDocument storage type (local or s3)

    Document storage type (local or s3)

    values: local, s3

  • ACKIFY_TELEMETRYfalseEnable telemetry collection

    Enable telemetry collection

    values: true, false

  • POSTGRES_DBackifyPostgreSQL database name

    PostgreSQL database name

  • POSTGRES_PASSWORDPostgreSQL password

    PostgreSQL password

  • POSTGRES_USERackifyrPostgreSQL username

    PostgreSQL username

ackify releases & version history

More in Compliance

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…