mirror of
https://github.com/Dokploy/templates.git
synced 2026-11-11 13:38:07 -06:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6786237720 |
@@ -1,29 +1,58 @@
|
||||
services:
|
||||
db-migration:
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
image: infisical/infisical:v0.135.0-postgres
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- ENCRYPTION_KEY
|
||||
- AUTH_SECRET
|
||||
- SITE_URL
|
||||
- DB_CONNECTION_URI=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- SMTP_HOST
|
||||
- SMTP_PORT
|
||||
- SMTP_FROM_NAME
|
||||
- SMTP_USERNAME
|
||||
- SMTP_PASSWORD
|
||||
- SMTP_SECURE=true
|
||||
command: npm run migration:latest
|
||||
pull_policy: always
|
||||
|
||||
backend:
|
||||
image: infisical/infisical:v0.162.6
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_started
|
||||
db-migration:
|
||||
condition: service_completed_successfully
|
||||
image: infisical/infisical:v0.135.0-postgres
|
||||
pull_policy: always
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
|
||||
- AUTH_SECRET=${AUTH_SECRET}
|
||||
- SITE_URL=${SITE_URL}
|
||||
- ENCRYPTION_KEY
|
||||
- AUTH_SECRET
|
||||
- SITE_URL
|
||||
- DB_CONNECTION_URI=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- SMTP_HOST=${SMTP_HOST}
|
||||
- SMTP_PORT=${SMTP_PORT}
|
||||
- SMTP_FROM_ADDRESS=${SMTP_FROM_ADDRESS}
|
||||
- SMTP_FROM_NAME=${SMTP_FROM_NAME}
|
||||
- SMTP_USERNAME=${SMTP_USERNAME}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_HOST
|
||||
- SMTP_PORT
|
||||
- SMTP_FROM_NAME
|
||||
- SMTP_USERNAME
|
||||
- SMTP_PASSWORD
|
||||
- SMTP_SECURE=true
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:7.4.1
|
||||
env_file: .env
|
||||
restart: always
|
||||
environment:
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
|
||||
volumes:
|
||||
- redis_infisical_data:/data
|
||||
|
||||
@@ -31,11 +60,12 @@ services:
|
||||
image: postgres:14-alpine
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
- POSTGRES_DB=${POSTGRES_DB}
|
||||
- POSTGRES_PASSWORD
|
||||
- POSTGRES_USER
|
||||
- POSTGRES_DB
|
||||
volumes:
|
||||
- pg_infisical_data:/var/lib/postgresql/data
|
||||
|
||||
healthcheck:
|
||||
test: "pg_isready --username=${POSTGRES_USER} && psql --username=${POSTGRES_USER} --list"
|
||||
interval: 5s
|
||||
@@ -45,3 +75,6 @@ services:
|
||||
volumes:
|
||||
pg_infisical_data:
|
||||
redis_infisical_data:
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "infisical",
|
||||
"name": "Infisical",
|
||||
"version": "0.162.6",
|
||||
"version": "0.135.0",
|
||||
"description": "All-in-one platform to securely manage application configuration and secrets across your team and infrastructure.",
|
||||
"logo": "infisical.jpg",
|
||||
"links": {
|
||||
|
||||
@@ -3,27 +3,56 @@ main_domain = "${domain}"
|
||||
postgres_password = "${password}"
|
||||
postgres_user = "infisical"
|
||||
postgres_db = "infisical"
|
||||
encryption_key = "${hash:32}"
|
||||
auth_secret = "${base64:32}"
|
||||
|
||||
[config]
|
||||
env = [
|
||||
"ENCRYPTION_KEY=${encryption_key}",
|
||||
"AUTH_SECRET=${auth_secret}",
|
||||
"ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218",
|
||||
"AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=",
|
||||
"POSTGRES_PASSWORD=${postgres_password}",
|
||||
"POSTGRES_USER=${postgres_user}",
|
||||
"POSTGRES_DB=${postgres_db}",
|
||||
"SITE_URL=http://${main_domain}",
|
||||
"SITE_URL=http://${main_domain}:8080",
|
||||
"SMTP_HOST=",
|
||||
"SMTP_PORT=587",
|
||||
"SMTP_FROM_ADDRESS=",
|
||||
"SMTP_FROM_NAME=Infisical",
|
||||
"SMTP_PORT=",
|
||||
"SMTP_NAME=",
|
||||
"SMTP_USERNAME=",
|
||||
"SMTP_PASSWORD=",
|
||||
"CLIENT_ID_HEROKU=",
|
||||
"CLIENT_ID_VERCEL=",
|
||||
"CLIENT_ID_NETLIFY=",
|
||||
"CLIENT_ID_GITHUB=",
|
||||
"CLIENT_ID_GITHUB_APP=",
|
||||
"CLIENT_SLUG_GITHUB_APP=",
|
||||
"CLIENT_ID_GITLAB=",
|
||||
"CLIENT_ID_BITBUCKET=",
|
||||
"CLIENT_SECRET_HEROKU=",
|
||||
"CLIENT_SECRET_VERCEL=",
|
||||
"CLIENT_SECRET_NETLIFY=",
|
||||
"CLIENT_SECRET_GITHUB=",
|
||||
"CLIENT_SECRET_GITHUB_APP=",
|
||||
"CLIENT_SECRET_GITLAB=",
|
||||
"CLIENT_SECRET_BITBUCKET=",
|
||||
"CLIENT_SLUG_VERCEL=",
|
||||
"CLIENT_PRIVATE_KEY_GITHUB_APP=",
|
||||
"CLIENT_APP_ID_GITHUB_APP=",
|
||||
"SENTRY_DSN=",
|
||||
"POSTHOG_HOST=",
|
||||
"POSTHOG_PROJECT_API_KEY=",
|
||||
"CLIENT_ID_GOOGLE_LOGIN=",
|
||||
"CLIENT_SECRET_GOOGLE_LOGIN=",
|
||||
"CLIENT_ID_GITHUB_LOGIN=",
|
||||
"CLIENT_SECRET_GITHUB_LOGIN=",
|
||||
"CLIENT_ID_GITLAB_LOGIN=",
|
||||
"CLIENT_SECRET_GITLAB_LOGIN=",
|
||||
"CAPTCHA_SECRET=",
|
||||
"NEXT_PUBLIC_CAPTCHA_SITE_KEY=",
|
||||
"PLAIN_API_KEY=",
|
||||
"PLAIN_WISH_LABEL_IDS=",
|
||||
"SSL_CLIENT_CERTIFICATE_HEADER_KEY=",
|
||||
]
|
||||
mounts = []
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "backend"
|
||||
port = 8080
|
||||
port = 8_080
|
||||
host = "${main_domain}"
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
zitadel:
|
||||
restart: 'always'
|
||||
image: 'ghcr.io/zitadel/zitadel:latest'
|
||||
image: 'ghcr.io/zitadel/zitadel:v4.16.0'
|
||||
command: 'start-from-init --masterkey "${ZITADEL_MASTERKEY}" --tlsMode disabled'
|
||||
environment:
|
||||
# Database Configuration
|
||||
@@ -17,33 +15,37 @@ services:
|
||||
ZITADEL_DATABASE_POSTGRES_ADMIN_PASSWORD: "${POSTGRES_PASSWORD}"
|
||||
ZITADEL_DATABASE_POSTGRES_ADMIN_SSL_MODE: disable
|
||||
|
||||
# External Configuration for HTTP only - TLS mode disabled
|
||||
ZITADEL_EXTERNALSECURE: false
|
||||
ZITADEL_EXTERNALPORT: 8080
|
||||
ZITADEL_EXTERNALDOMAIN: "${EXTERNAL_DOMAIN}"
|
||||
# External access configuration. These MUST match the domain configured
|
||||
# in the Domains tab and the scheme/port it is served on, otherwise
|
||||
# Zitadel answers {"code":5,"message":"Not Found"}.
|
||||
# HTTP -> ZITADEL_EXTERNALPORT=80, ZITADEL_EXTERNALSECURE=false
|
||||
# HTTPS -> ZITADEL_EXTERNALPORT=443, ZITADEL_EXTERNALSECURE=true
|
||||
ZITADEL_EXTERNALDOMAIN: "${ZITADEL_EXTERNALDOMAIN}"
|
||||
ZITADEL_EXTERNALPORT: "${ZITADEL_EXTERNALPORT}"
|
||||
ZITADEL_EXTERNALSECURE: "${ZITADEL_EXTERNALSECURE}"
|
||||
ZITADEL_TLS_ENABLED: false
|
||||
|
||||
# Disable Email Notifications
|
||||
ZITADEL_NOTIFICATIONS_SMTP_HOST: ""
|
||||
ZITADEL_NOTIFICATIONS_SMTP_PORT: ""
|
||||
|
||||
# Custom Admin User Configuration
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME: "${ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD: "${ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_EMAIL_ADDRESS: "${ZITADEL_FIRSTINSTANCE_ORG_HUMAN_EMAIL_ADDRESS}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_FIRSTNAME: "${ZITADEL_FIRSTINSTANCE_ORG_HUMAN_FIRSTNAME}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_LASTNAME: "${ZITADEL_FIRSTINSTANCE_ORG_HUMAN_LASTNAME}"
|
||||
|
||||
# Default Instance Features
|
||||
|
||||
# Use the login UI built into the API container (no extra login-v2 service needed)
|
||||
ZITADEL_DEFAULTINSTANCE_FEATURES_LOGINV2_REQUIRED: false
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "/app/zitadel", "ready"]
|
||||
interval: '10s'
|
||||
timeout: '30s'
|
||||
retries: 12
|
||||
start_period: '30s'
|
||||
depends_on:
|
||||
db:
|
||||
condition: 'service_healthy'
|
||||
ports:
|
||||
- '8080'
|
||||
volumes:
|
||||
- zitadel_data:/app/data
|
||||
expose:
|
||||
- 8080
|
||||
|
||||
db:
|
||||
restart: 'always'
|
||||
@@ -63,4 +65,3 @@ services:
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
zitadel_data:
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "zitadel",
|
||||
"name": "Zitadel",
|
||||
"version": "latest",
|
||||
"version": "4.16.0",
|
||||
"description": "Open-source identity and access management platform with multi-tenancy, OpenID Connect, SAML, and OAuth 2.0 support.",
|
||||
"logo": "zitadel.png",
|
||||
"links": {
|
||||
|
||||
@@ -7,6 +7,8 @@ admin_email = "${email}"
|
||||
admin_password = "AdminPassword123!"
|
||||
|
||||
[config]
|
||||
mounts = []
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "zitadel"
|
||||
port = 8080
|
||||
@@ -16,7 +18,15 @@ path = "/"
|
||||
[config.env]
|
||||
POSTGRES_PASSWORD = "${postgres_password}"
|
||||
ZITADEL_MASTERKEY = "${zitadel_masterkey}"
|
||||
EXTERNAL_DOMAIN = "${main_domain}"
|
||||
|
||||
# ZITADEL_EXTERNALDOMAIN must always match the domain configured in the
|
||||
# Domains tab. If you change the domain, update this variable too (and do it
|
||||
# BEFORE the first deploy — Zitadel binds its instance to this domain on
|
||||
# first start). For a domain served over HTTPS set ZITADEL_EXTERNALPORT=443
|
||||
# and ZITADEL_EXTERNALSECURE=true.
|
||||
ZITADEL_EXTERNALDOMAIN = "${main_domain}"
|
||||
ZITADEL_EXTERNALPORT = "80"
|
||||
ZITADEL_EXTERNALSECURE = "false"
|
||||
|
||||
# Custom Admin User Configuration
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME = "${admin_username}"
|
||||
@@ -24,5 +34,3 @@ ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD = "${admin_password}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_EMAIL_ADDRESS = "${admin_email}"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_FIRSTNAME = "Admin"
|
||||
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_LASTNAME = "User"
|
||||
|
||||
[[config.mounts]]
|
||||
|
||||
Reference in New Issue
Block a user