feat(install): add telemetry option to installation script

- Add interactive telemetry prompt with GDPR compliance explanation
- Document collected metrics (documents, signatures, webhooks, reminders)
- Add ACKIFY_TELEMETRY to .env.example, compose.yml and compose-traefik.yml
- Update README.md with telemetry documentation
- Default to disabled but encourage users to opt-in
This commit is contained in:
Benjamin
2025-12-22 20:37:45 +01:00
parent bc53b3ece9
commit 3f745405c7
7 changed files with 102 additions and 2 deletions

View File

@@ -68,4 +68,5 @@ ACKIFY_ED25519_PRIVATE_KEY=your_base64_encoded_ed25519_private_key
# ACKIFY_ONLY_ADMIN_CAN_CREATE=false
# Server Configuration
ACKIFY_LISTEN_ADDR=:8080
ACKIFY_LISTEN_ADDR=:8080
ACKIFY_TELEMETRY=false

View File

@@ -258,7 +258,7 @@ func Load() (*Config, error) {
config.App.ImportMaxSigners = getEnvInt("ACKIFY_IMPORT_MAX_SIGNERS", 500)
// Telemetry configuration
config.Telemetry = getEnv("ACKIFY_TELEMETRY", "") != "false" && getEnv("DO_NOT_TRACK", "") != "1"
config.Telemetry = getEnv("ACKIFY_TELEMETRY", "false") != "false" && getEnv("DO_NOT_TRACK", "") != "1"
// Validation: At least one authentication method must be enabled
if !config.Auth.OAuthEnabled && !config.Auth.MagicLinkEnabled {

View File

@@ -112,6 +112,16 @@ ACKIFY_OAUTH_CLIENT_SECRET=your_oauth_client_secret
# When enabled, only admins can create new documents
# ACKIFY_ONLY_ADMIN_CAN_CREATE=false
# ==========================================
# Telemetry Configuration
# ==========================================
# Anonymous usage metrics to help improve Ackify
# - GDPR compliant (no personal data collected)
# - Business metrics only: documents, signatures, webhooks, reminders count
# - Non-intrusive (background collection)
# Set to true to help us improve Ackify!
ACKIFY_TELEMETRY=false
# ==========================================
# CONFIGURATION INSTRUCTIONS
# ==========================================

View File

@@ -144,6 +144,40 @@ MagicLink provides passwordless authentication via email. Users receive a secure
- Internal applications where email domain is trusted
- Combination with OAuth for flexible authentication
## 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
```env
# 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:
@@ -193,6 +227,7 @@ ADMIN_EMAILS=admin@your-domain.com
- `MAIL_*` - SMTP configuration for email features
- `AUTH_MAGICLINK_ENABLED` - Force enable/disable MagicLink
- `ONLY_ADMIN_CAN_CREATE` - Restrict document creation to admins only (default: false)
- `ACKIFY_TELEMETRY` - Enable anonymous usage metrics (default: false)
## Troubleshooting

View File

@@ -68,6 +68,7 @@ services:
ACKIFY_CHECKSUM_MAX_REDIRECTS: "${ACKIFY_CHECKSUM_MAX_REDIRECTS:-3}"
ACKIFY_CHECKSUM_ALLOWED_TYPES: "${ACKIFY_CHECKSUM_ALLOWED_TYPES:-}"
ACKIFY_IMPORT_MAX_SIGNERS: "${ACKIFY_IMPORT_MAX_SIGNERS:-500}"
ACKIFY_TELEMETRY: "${ACKIFY_TELEMETRY:-false}"
depends_on:
ackify-migrate:
condition: service_completed_successfully

View File

@@ -68,6 +68,7 @@ services:
ACKIFY_CHECKSUM_MAX_REDIRECTS: "${ACKIFY_CHECKSUM_MAX_REDIRECTS:-3}"
ACKIFY_CHECKSUM_ALLOWED_TYPES: "${ACKIFY_CHECKSUM_ALLOWED_TYPES:-}"
ACKIFY_IMPORT_MAX_SIGNERS: "${ACKIFY_IMPORT_MAX_SIGNERS:-500}"
ACKIFY_TELEMETRY: "${ACKIFY_TELEMETRY:-false}"
depends_on:
ackify-migrate:
condition: service_completed_successfully

View File

@@ -306,6 +306,41 @@ if [ "$ENABLE_OAUTH" = false ] && [ "$ENABLE_MAGICLINK" = false ]; then
exit 1
fi
# ==========================================
# Telemetry Configuration
# ==========================================
print_header "📊 Anonymous Telemetry"
echo ""
print_info "Ackify can collect anonymous usage metrics to help improve the project."
echo ""
print_info "What is collected (business metrics only):"
print_info " - Number of documents created"
print_info " - Number of signatures/confirmations"
print_info " - Number of webhooks configured"
print_info " - Number of email reminders sent"
echo ""
print_info "What is NOT collected:"
print_info " - No personal data"
print_info " - No user information"
print_info " - No document content"
print_info " - No email addresses"
print_info " - No IP addresses"
echo ""
print_info "This telemetry is:"
print_success " ✓ GDPR compliant"
print_success " ✓ Non-intrusive (background only)"
print_success " ✓ Helps us improve Ackify for everyone"
echo ""
ENABLE_TELEMETRY=false
if prompt_yes_no "Enable anonymous telemetry to help improve Ackify?" "y"; then
ENABLE_TELEMETRY=true
print_success "Thank you for helping improve Ackify!"
else
print_info "Telemetry disabled. You can enable it later in .env (ACKIFY_TELEMETRY=true)"
fi
echo ""
# ==========================================
# Admin Configuration
# ==========================================
@@ -498,6 +533,16 @@ APP_DNS=${APP_DNS}
EOF
fi
# Telemetry configuration
cat >> .env <<EOF
# ==========================================
# Telemetry Configuration
# ==========================================
# Anonymous usage metrics (GDPR compliant, no personal data)
ACKIFY_TELEMETRY=${ENABLE_TELEMETRY}
EOF
print_success ".env file created successfully"
echo ""
@@ -548,6 +593,13 @@ else
fi
echo ""
if [ "$ENABLE_TELEMETRY" = true ]; then
print_success "Telemetry: Enabled (thank you!)"
else
print_info "Telemetry: Disabled"
fi
echo ""
# ==========================================
# Next Steps
# ==========================================