Ackify CE - Installation Guide
This directory contains the installation scripts and configuration files for Ackify Community Edition.
Quick Start
Interactive Installation (Recommended)
The interactive installation script will guide you through the entire configuration process:
bash <(curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/install.sh)
The script will prompt you for:
-
Basic Configuration
- Application Base URL (e.g.,
https://ackify.example.com) - Organization Name
- Application Base URL (e.g.,
-
OAuth2 Authentication (Optional)
- Enable/disable OAuth
- OAuth Provider (Google, GitHub, GitLab, or custom)
- Client ID and Client Secret
- Email domain restriction (optional)
- Auto-login configuration (optional)
-
SMTP Configuration (Optional)
- Enable/disable SMTP for email notifications
- SMTP server settings (host, port, credentials)
- Email sender configuration
- TLS/STARTTLS settings
-
MagicLink Authentication (Optional)
- Auto-enabled when SMTP is configured
- Option to disable if needed
-
Admin Users (Required)
- Configure at least one admin email address
- Admins have access to document management and reminder features
-
Document Storage (Optional)
- None (URL-only mode)
- Local filesystem storage
- S3-compatible storage (AWS, MinIO, Wasabi, etc.)
The script will automatically:
- Download the necessary configuration files (docker compose & .env.example)
- Generate secure secrets (cookie secret, Ed25519 key, database password)
- Create a ready-to-use
.envfile - Validate that at least one authentication method is enabled
After Installation
-
Review the configuration:
cd ackify-ce cat .env -
Start Ackify:
docker compose up -d -
Check logs:
docker compose logs -f ackify-ce -
Access the application: Open your browser and navigate to the configured base URL
-
Verify health:
curl http://localhost:8080/health
Manual Installation
If you prefer to configure manually:
-
Download configuration files:
mkdir ackify-ce && cd ackify-ce curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/compose.yml -o compose.yml curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/.env.example -o .env -
Generate secrets:
# Cookie secret (for session encryption) openssl rand -base64 32 # Ed25519 private key (for signatures) openssl rand 64 | base64 -w 0 # Database password openssl rand -base64 24 -
Edit
.envfile:- Configure your application URL and organization name
- Set up at least one authentication method (OAuth or MagicLink)
- Add the generated secrets
- Configure at least one admin user (required)
- Configure optional features (SMTP for email reminders and MagicLink)
-
Start the application:
docker compose up -d
Authentication Methods
Ackify CE supports two authentication methods. At least one must be enabled.
OAuth2 Authentication
OAuth allows users to sign in using existing accounts from popular providers.
Supported Providers:
- GitHub
- GitLab (including self-hosted)
- Custom OAuth2 provider
Required Variables:
OAUTH_PROVIDER=google
OAUTH_CLIENT_ID=your_client_id
OAUTH_CLIENT_SECRET=your_client_secret
Setup Links:
MagicLink Authentication
MagicLink provides passwordless authentication via email. Users receive a secure link to sign in.
Requirements:
- SMTP server configuration (MAIL_HOST must be set)
When to use:
- Simplified user experience (no password management)
- Internal applications where email domain is trusted
- Combination with OAuth for flexible authentication
Document Storage
Ackify CE can optionally store uploaded documents, allowing users to upload files directly instead of providing URLs.
Storage Options
None (Default):
- Users must provide document URLs
- No local storage required
- Simplest configuration
Local Storage:
- Documents stored on the server filesystem
- Uses Docker volume for persistence
- Best for single-server deployments
ACKIFY_STORAGE_TYPE=local
ACKIFY_STORAGE_LOCAL_PATH=/data/documents
ACKIFY_STORAGE_MAX_SIZE_MB=50
S3-Compatible Storage:
- Works with AWS S3, MinIO, Wasabi, DigitalOcean Spaces, etc.
- Best for scalable/distributed deployments
- Supports any S3-compatible provider
ACKIFY_STORAGE_TYPE=s3
ACKIFY_STORAGE_MAX_SIZE_MB=50
ACKIFY_STORAGE_S3_ENDPOINT=https://s3.amazonaws.com
ACKIFY_STORAGE_S3_BUCKET=ackify-documents
ACKIFY_STORAGE_S3_ACCESS_KEY=your_access_key
ACKIFY_STORAGE_S3_SECRET_KEY=your_secret_key
ACKIFY_STORAGE_S3_REGION=us-east-1
ACKIFY_STORAGE_S3_USE_SSL=true
Using MinIO (Self-hosted S3)
MinIO is a popular open-source S3-compatible storage solution:
ACKIFY_STORAGE_TYPE=s3
ACKIFY_STORAGE_S3_ENDPOINT=http://minio:9000
ACKIFY_STORAGE_S3_BUCKET=ackify-documents
ACKIFY_STORAGE_S3_ACCESS_KEY=minioadmin
ACKIFY_STORAGE_S3_SECRET_KEY=minioadmin
ACKIFY_STORAGE_S3_REGION=us-east-1
ACKIFY_STORAGE_S3_USE_SSL=false
Supported File Types
- PDF documents (.pdf)
- Images (.png, .jpg, .jpeg, .gif, .webp)
- Office documents (.doc, .docx)
- Text files (.txt)
- HTML files (.html, .htm)
Anonymous Telemetry
Ackify can collect anonymous usage metrics to help improve the project.
What is collected
Business metrics only:
- Number of documents created
- Number of signatures/confirmations
- Number of webhooks configured
- Number of email reminders sent
What is NOT collected
- No personal data
- No user information (names, emails, IPs)
- No document content
- No authentication details
Privacy
- GDPR compliant - No personal data is ever collected
- Non-intrusive - Runs in background, no impact on performance
- Opt-in - Disabled by default, you choose to enable it
Configuration
# Enable anonymous telemetry (default: false)
ACKIFY_TELEMETRY=true
We encourage you to enable telemetry to help us improve Ackify for everyone!
SMTP Configuration
SMTP is used for:
- Email reminders for document signatures
- MagicLink authentication
Popular SMTP Providers:
Gmail:
- Enable 2FA on your Google account
- Create an App Password at https://myaccount.google.com/apppasswords
- Use settings:
MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your-email@gmail.com MAIL_PASSWORD=your-app-password
SMTP2GO: https://www.smtp2go.com/ SendGrid: https://sendgrid.com/ Mailgun: https://www.mailgun.com/
Configuration Variables Reference
See .env.example for a complete list of configuration variables with detailed comments.
Required Variables
APP_BASE_URL=https://your-domain.com
APP_ORGANISATION="Your Organization"
POSTGRES_USER=ackifyr
POSTGRES_PASSWORD=generated_password
POSTGRES_DB=ackify
OAUTH_COOKIE_SECRET=generated_secret
ED25519_PRIVATE_KEY_B64=generated_key
ADMIN_EMAILS=admin@your-domain.com
Note: At least one authentication method (OAuth or MagicLink) must also be configured.
Optional Variables
OAUTH_ALLOWED_DOMAIN- Restrict sign-ins to specific email domainOAUTH_AUTO_LOGIN- Automatically log in if OAuth session existsMAIL_*- SMTP configuration for email featuresAUTH_MAGICLINK_ENABLED- Force enable/disable MagicLinkONLY_ADMIN_CAN_CREATE- Restrict document creation to admins only (default: false)ACKIFY_TELEMETRY- Enable anonymous usage metrics (default: false)ACKIFY_STORAGE_TYPE- Document storage type:localors3(default: disabled)ACKIFY_STORAGE_MAX_SIZE_MB- Maximum upload file size in MB (default: 50)ACKIFY_STORAGE_S3_*- S3-compatible storage configuration
Troubleshooting
No authentication method enabled
Error: "At least ONE authentication method must be enabled!"
Solution: Configure either:
- OAuth (set
OAUTH_CLIENT_IDandOAUTH_CLIENT_SECRET) - MagicLink (set
MAIL_HOSTand SMTP credentials)
OAuth not working
-
Verify redirect URI in OAuth provider settings:
https://your-domain.com/auth/callback -
Check OAuth credentials are correct in
.env -
Verify
APP_BASE_URLmatches your domain
MagicLink emails not sending
- Verify SMTP credentials are correct
- Check SMTP host and port settings
- Review logs:
docker compose logs -f ackify-ce - Test SMTP connection with your provider's tools
Permission denied errors
Make sure Docker has necessary permissions:
sudo usermod -aG docker $USER
newgrp docker
Updating Ackify
To update to the latest version:
cd ackify-ce
docker compose pull
docker compose up -d
Support
- Documentation: https://github.com/btouchard/ackify-ce
- Issues: https://github.com/btouchard/ackify-ce/issues