feat: on-click deploy on elestio, render or digitalocean

This commit is contained in:
Benjamin
2026-01-19 00:19:48 +01:00
parent de1d9cd5e5
commit f65ebb0b07
5 changed files with 323 additions and 0 deletions

114
.do/deploy.template.yaml Normal file
View File

@@ -0,0 +1,114 @@
# DigitalOcean App Platform Deployment Template
# Deploy: https://cloud.digitalocean.com/apps/new?repo=https://github.com/btouchard/ackify-ce
#
# After deployment:
# 1. Configure OAuth2 credentials OR SMTP for MagicLink authentication
# 2. Set ACKIFY_BASE_URL to your DigitalOcean app URL
spec:
name: ackify-ce
region: fra
features:
- buildpack-stack=ubuntu-22
services:
- name: ackify-ce
dockerfile_path: Dockerfile
github:
repo: btouchard/ackify-ce
branch: main
deploy_on_push: false
health_check:
http_path: /api/v1/health
initial_delay_seconds: 30
period_seconds: 10
timeout_seconds: 5
success_threshold: 1
failure_threshold: 3
http_port: 8080
instance_count: 1
instance_size_slug: basic-xxs
envs:
# Application
- key: ACKIFY_BASE_URL
scope: RUN_TIME
value: ${APP_URL}
- key: ACKIFY_ORGANISATION
scope: RUN_TIME
value: "My Organization"
- key: ACKIFY_LOG_LEVEL
scope: RUN_TIME
value: info
- key: ACKIFY_LISTEN_ADDR
scope: RUN_TIME
value: ":8080"
# Database connection (auto-generated from dev database)
- key: ACKIFY_DB_DSN
scope: RUN_TIME
value: ${db.DATABASE_URL}
# Security secrets
- key: ACKIFY_OAUTH_COOKIE_SECRET
scope: RUN_TIME
type: SECRET
value: CHANGE_ME_GENERATE_WITH_OPENSSL_RAND_BASE64_32
- key: ACKIFY_ED25519_PRIVATE_KEY
scope: RUN_TIME
type: SECRET
value: ""
# OAuth2 Configuration (optional - configure for OAuth auth)
- key: ACKIFY_OAUTH_PROVIDER
scope: RUN_TIME
value: ""
- key: ACKIFY_OAUTH_CLIENT_ID
scope: RUN_TIME
type: SECRET
value: ""
- key: ACKIFY_OAUTH_CLIENT_SECRET
scope: RUN_TIME
type: SECRET
value: ""
- key: ACKIFY_OAUTH_ALLOWED_DOMAIN
scope: RUN_TIME
value: ""
# Admin Configuration (optional)
- key: ACKIFY_ADMIN_EMAILS
scope: RUN_TIME
value: ""
# Email/SMTP Configuration (optional - configure for MagicLink auth)
- key: ACKIFY_MAIL_HOST
scope: RUN_TIME
value: ""
- key: ACKIFY_MAIL_PORT
scope: RUN_TIME
value: "587"
- key: ACKIFY_MAIL_USERNAME
scope: RUN_TIME
value: ""
- key: ACKIFY_MAIL_PASSWORD
scope: RUN_TIME
type: SECRET
value: ""
- key: ACKIFY_MAIL_FROM
scope: RUN_TIME
value: ""
- key: ACKIFY_MAIL_TLS
scope: RUN_TIME
value: "true"
# Storage Configuration (optional)
- key: ACKIFY_STORAGE_TYPE
scope: RUN_TIME
value: ""
databases:
- name: db
engine: PG
production: false
cluster_name: ackify-db
db_name: ackify
db_user: ackify

View File

@@ -143,6 +143,26 @@ See [docs/en/configuration.md](docs/en/configuration.md) for all options.
---
## ☁️ One-Click Deploy
Deploy Ackify CE in one click on your preferred cloud platform:
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/btouchard/ackify-ce)
[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/btouchard/ackify-ce)
[![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://dash.elest.io/deploy?source=cicd&social=Github&url=https://github.com/btouchard/ackify-ce)
| Platform | PostgreSQL | Notes |
|----------|------------|-------|
| **Render** | ✅ Included | Free tier 90 days |
| **DigitalOcean** | ✅ Dev DB | App Platform PaaS |
| **Elestio** | ✅ Included | Managed hosting EU |
> **Post-deployment**: Configure OAuth2 or SMTP (MagicLink) via the platform's environment variables.
---
## 📸 Screenshots
<table>

View File

@@ -143,6 +143,26 @@ Voir [docs/fr/configuration.md](docs/fr/configuration.md) pour toutes les option
---
## ☁️ Déploiement One-Click
Déployez Ackify CE en un clic sur votre plateforme cloud préférée :
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/btouchard/ackify-ce)
[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/btouchard/ackify-ce)
[![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://dash.elest.io/deploy?source=cicd&social=Github&url=https://github.com/btouchard/ackify-ce)
| Plateforme | PostgreSQL | Notes |
|------------|------------|-------|
| **Render** | ✅ Inclus | Free tier 90 jours |
| **DigitalOcean** | ✅ Dev DB | App Platform PaaS |
| **Elestio** | ✅ Inclus | Hébergement managé EU |
> **Post-déploiement** : Configurez OAuth2 ou SMTP (MagicLink) via les variables d'environnement de la plateforme.
---
## 📸 Screenshots
<table>

82
elestio.yml Normal file
View File

@@ -0,0 +1,82 @@
# Elestio Deployment Configuration
# Deploy: https://dash.elest.io/deploy?source=cicd&social=Github&url=https://github.com/btouchard/ackify-ce
#
# After deployment:
# 1. Configure OAuth2 credentials OR SMTP for MagicLink authentication
# 2. Access your instance at the provided Elestio URL
config:
runTime: dockerCompose
version: "1"
ports:
- protocol: HTTPS
targetProtocol: HTTP
listeningPort: "443"
targetPort: "8080"
targetIP: 172.17.0.1
public: true
path: /
isAuth: false
environments:
# Application
- key: ACKIFY_BASE_URL
value: https://[CI_CD_DOMAIN]
- key: ACKIFY_ORGANISATION
value: "[ORGANISATION_NAME]"
- key: ACKIFY_LOG_LEVEL
value: info
# Database
- key: POSTGRES_PASSWORD
value: "[ADMIN_PASSWORD]"
- key: ACKIFY_APP_PASSWORD
value: random_password
# Security
- key: ACKIFY_OAUTH_COOKIE_SECRET
value: random_password
- key: ACKIFY_ED25519_PRIVATE_KEY
value: ""
# Admin (optional - uses Elestio admin email)
- key: ACKIFY_ADMIN_EMAILS
value: "[ADMIN_EMAIL]"
# OAuth2 Configuration (optional - configure for OAuth auth)
- key: ACKIFY_OAUTH_PROVIDER
value: ""
- key: ACKIFY_OAUTH_CLIENT_ID
value: ""
- key: ACKIFY_OAUTH_CLIENT_SECRET
value: ""
- key: ACKIFY_OAUTH_ALLOWED_DOMAIN
value: ""
# Email/SMTP Configuration (optional - configure for MagicLink auth)
- key: ACKIFY_MAIL_HOST
value: ""
- key: ACKIFY_MAIL_PORT
value: "587"
- key: ACKIFY_MAIL_USERNAME
value: ""
- key: ACKIFY_MAIL_PASSWORD
value: ""
- key: ACKIFY_MAIL_FROM
value: ""
- key: ACKIFY_MAIL_TLS
value: "true"
# Storage Configuration (optional)
- key: ACKIFY_STORAGE_TYPE
value: local
- key: ACKIFY_STORAGE_LOCAL_PATH
value: /data/documents
lifeCycle:
postInstallCommand: |
# Wait for database to be ready
sleep 10
echo "Ackify CE deployed successfully!"
echo "Configure OAuth2 or SMTP in the environment variables to enable authentication."

87
render.yaml Normal file
View File

@@ -0,0 +1,87 @@
# Render Blueprint
# Deploy: https://render.com/deploy?repo=https://github.com/btouchard/ackify-ce
#
# After deployment:
# 1. Configure OAuth2 credentials OR SMTP for MagicLink authentication
# 2. Set ACKIFY_BASE_URL to your Render URL (e.g., https://ackify-ce.onrender.com)
services:
- type: web
name: ackify-ce
runtime: docker
dockerfilePath: ./Dockerfile
dockerContext: .
plan: free
autoDeploy: false
healthCheckPath: /api/v1/health
envVars:
# Application
- key: ACKIFY_BASE_URL
sync: false
- key: ACKIFY_ORGANISATION
value: "My Organization"
- key: ACKIFY_LOG_LEVEL
value: info
- key: ACKIFY_LISTEN_ADDR
value: ":8080"
# Database (auto-generated from PostgreSQL service)
- key: ACKIFY_DB_DSN
fromDatabase:
name: ackify-db
property: connectionString
# Security secrets (must be configured manually)
- key: ACKIFY_OAUTH_COOKIE_SECRET
generateValue: true
- key: ACKIFY_ED25519_PRIVATE_KEY
sync: false
# OAuth2 Configuration (optional - configure for OAuth auth)
- key: ACKIFY_OAUTH_PROVIDER
sync: false
- key: ACKIFY_OAUTH_CLIENT_ID
sync: false
- key: ACKIFY_OAUTH_CLIENT_SECRET
sync: false
- key: ACKIFY_OAUTH_ALLOWED_DOMAIN
sync: false
# Admin Configuration (optional)
- key: ACKIFY_ADMIN_EMAILS
sync: false
# Email/SMTP Configuration (optional - configure for MagicLink auth)
- key: ACKIFY_MAIL_HOST
sync: false
- key: ACKIFY_MAIL_PORT
sync: false
- key: ACKIFY_MAIL_USERNAME
sync: false
- key: ACKIFY_MAIL_PASSWORD
sync: false
- key: ACKIFY_MAIL_FROM
sync: false
- key: ACKIFY_MAIL_TLS
value: "true"
# Storage Configuration (optional)
- key: ACKIFY_STORAGE_TYPE
sync: false
- key: ACKIFY_STORAGE_S3_ENDPOINT
sync: false
- key: ACKIFY_STORAGE_S3_BUCKET
sync: false
- key: ACKIFY_STORAGE_S3_ACCESS_KEY
sync: false
- key: ACKIFY_STORAGE_S3_SECRET_KEY
sync: false
- key: ACKIFY_STORAGE_S3_REGION
sync: false
databases:
- name: ackify-db
plan: free
databaseName: ackify
user: ackify
ipAllowList: []