mirror of
https://github.com/btouchard/ackify.git
synced 2026-02-06 05:49:38 -06:00
feat: on-click deploy on elestio, render or digitalocean
This commit is contained in:
114
.do/deploy.template.yaml
Normal file
114
.do/deploy.template.yaml
Normal 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
|
||||
20
README.md
20
README.md
@@ -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:
|
||||
|
||||
[](https://render.com/deploy?repo=https://github.com/btouchard/ackify-ce)
|
||||
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/btouchard/ackify-ce)
|
||||
|
||||
[](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>
|
||||
|
||||
20
README_FR.md
20
README_FR.md
@@ -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 :
|
||||
|
||||
[](https://render.com/deploy?repo=https://github.com/btouchard/ackify-ce)
|
||||
|
||||
[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/btouchard/ackify-ce)
|
||||
|
||||
[](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
82
elestio.yml
Normal 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
87
render.yaml
Normal 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: []
|
||||
Reference in New Issue
Block a user