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
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
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)
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