add glitchtip

This commit is contained in:
Andras Bacsai
2022-10-19 14:59:38 +02:00
parent b4c6f80e1c
commit 21f3a70788
5 changed files with 289 additions and 31 deletions

View File

@@ -16,6 +16,7 @@ export async function migrateServicesToNewTemplate() {
if (service.type === 'meilisearch' && service.meiliSearch) await meilisearch(service)
if (service.type === 'umami' && service.umami) await umami(service)
if (service.type === 'hasura' && service.hasura) await hasura(service)
if (service.type === 'glitchtip' && service.glitchTip) await glitchtip(service)
await createVolumes(service);
}
} catch (error) {
@@ -23,6 +24,39 @@ export async function migrateServicesToNewTemplate() {
}
}
async function glitchtip(service: any) {
const { postgresqlUser, postgresqlPassword, postgresqlDatabase, secretKeyBase, defaultEmail, defaultUsername, defaultPassword, defaultEmailFrom, emailSmtpHost, emailSmtpPort, emailSmtpUser, emailSmtpPassword, emailSmtpUseTls, emailSmtpUseSsl, emailBackend, mailgunApiKey, sendgridApiKey, enableOpenUserRegistration } = service.glitchTip
const secrets = [
`POSTGRES_PASSWORD@@@${postgresqlPassword}`,
`SECRET_KEY@@@${secretKeyBase}`,
`DATABASE_URL@@@${encrypt(`postgres://${postgresqlUser}:${decrypt(postgresqlPassword)}@$$generate_fqdn:5432/${postgresqlDatabase}`)}`,
`REDIS_URL@@@${encrypt(`redis://$$generate_fqdn:6379`)}`,
`EMAIL_HOST_PASSWORD@@@${emailSmtpPassword}`,
`MAILGUN_API_KEY@@@${mailgunApiKey}`,
`SENDGRID_API_KEY@@@${sendgridApiKey}`,
`DJANGO_SUPERUSER_PASSWORD@@@${defaultPassword}`,
]
const settings = [
`POSTGRES_USER@@@${postgresqlUser}`,
`POSTGRES_DB@@@${postgresqlDatabase}`,
`DEFAULT_FROM_EMAIL@@@${defaultEmailFrom}`,
`EMAIL_HOST@@@${emailSmtpHost}`,
`EMAIL_PORT@@@${emailSmtpPort}`,
`EMAIL_HOST_USER@@@${emailSmtpUser}`,
`EMAIL_USE_TLS@@@${emailSmtpUseTls}`,
`EMAIL_USE_SSL@@@${emailSmtpUseSsl}`,
`EMAIL_BACKEND@@@${emailBackend}`,
`ENABLE_OPEN_USER_REGISTRATION@@@${enableOpenUserRegistration}`,
`DJANGO_SUPERUSER_EMAIL@@@${defaultEmail}`,
`DJANGO_SUPERUSER_USERNAME@@@${defaultUsername}`,
]
await migrateSecrets(secrets, service);
await migrateSettings(settings, service);
// Remove old service data
// await prisma.service.update({ where: { id: service.id }, data: { wordpress: { delete: true } } })
}
async function hasura(service: any) {
const { postgresqlUser, postgresqlPassword, postgresqlDatabase, graphQLAdminPassword } = service.hasura

View File

@@ -1,4 +1,218 @@
export default [
{
"templateVersion": "1.0.0",
"serviceDefaultVersion": "v2.0.6",
"name": "glitchtip",
"displayName": "GlitchTip",
"description": "",
"services": {
"$$id": {
"name": "GlitchTip",
"depends_on": [
"$$id-postgresql"
],
"image": "glitchtip/glitchtip:$$core_version",
"volumes": [],
"environment": [
"PORT=3000",
"GLITCHTIP_DOMAIN=$$config_glitchtip_domain",
"SECRET_KEY=$$secret_secret_key",
"DATABASE_URL=$$secret_database_url",
"REDIS_URL=$$secret_redis_url",
"DEFAULT_FROM_EMAIL=$$config_default_from_email",
"EMAIL_HOST=$$config_email_host",
"EMAIL_PORT=$$config_email_port",
"EMAIL_HOST_USER=$$config_email_host_user",
"EMAIL_HOST_PASSWORD=$$secret_email_host_password",
"EMAIL_USE_TLS=$$config_email_use_tls",
"EMAIL_USE_SSL=$$config_email_use_ssl",
"EMAIL_BACKEND=$$config_email_backend",
"MAILGUN_API_KEY=$$secret_mailgun_api_key",
"SENDGRID_API_KEY=$$secret_sendgrid_api_key",
"ENABLE_OPEN_USER_REGISTRATION=$$config_enable_open_user_registration",
"DJANGO_SUPERUSER_EMAIL=$$config_django_superuser_email",
"DJANGO_SUPERUSER_PASSWORD=$$secret_django_superuser_password",
"DJANGO_SUPERUSER_USERNAME=$$config_django_superuser_username",
],
"ports": [
"8000"
]
},
"$$id-postgresql": {
"name": "PostgreSQL",
"depends_on": [],
"image": "postgres:12-alpine",
"volumes": [
"$$id-postgresql-data:/var/lib/postgresql/data",
],
"environment": [
"POSTGRES_USER=$$config_postgres_user",
"POSTGRES_PASSWORD=$$secret_postgres_password",
"POSTGRES_DB=$$config_postgres_db",
],
"ports": []
},
"$$id-redis": {
"name": "Redis",
"depends_on": [],
"image": "redis:7-alpine",
"volumes": [
"$$id-postgresql-redis-data:/data",
],
"environment": [],
"ports": []
}
},
"variables": [
{
"id": "$$config_glitchtip_domain",
"name": "GLITCHTIP_DOMAIN",
"label": "GLITCHTIP_DOMAIN URL",
"defaultValue": "$$generate_fqdn",
"description": "",
},
{
"id": "$$secret_database_url",
"name": "DATABASE_URL",
"label": "Database URL for PostgreSQL",
"defaultValue": "postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db",
"description": "",
},
{
"id": "$$secret_redis_url",
"name": "REDIS_URL",
"label": "Redis URL",
"defaultValue": "redis://$$id-redis:6379/0",
"description": "",
},
{
"id": "$$config_default_from_email",
"name": "DEFAULT_FROM_EMAIL",
"label": "Default Email Address",
"defaultValue": "noreply@example.com",
"description": "",
},
{
"id": "$$config_email_host",
"name": "EMAIL_HOST",
"label": "Email SMTP Host",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_email_port",
"name": "EMAIL_PORT",
"label": "Email SMTP Port",
"defaultValue": "25",
"description": "",
},
{
"id": "$$config_email_host_user",
"name": "EMAIL_HOST_USER",
"label": "Email SMTP User",
"defaultValue": "",
"description": "",
},
{
"id": "$$secret_email_host_password",
"name": "EMAIL_HOST_PASSWORD",
"label": "Email SMTP Password",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_email_use_tls",
"name": "EMAIL_USE_TLS",
"label": "Email Use TLS",
"defaultValue": "false",
"description": "",
},
{
"id": "$$config_email_use_ssl",
"name": "EMAIL_USE_SSL",
"label": "Email Use SSL",
"defaultValue": "false",
"description": "",
},
{
"id": "$$secret_email_smtp_password",
"name": "EMAIL_SMTP_PASSWORD",
"label": "SMTP Password",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_email_backend",
"name": "EMAIL_BACKEND",
"label": "Email Backend",
"defaultValue": "",
"description": "",
},
{
"id": "$$secret_mailgun_api_key",
"name": "MAILGUN_API_KEY",
"label": "Mailgun API Key",
"defaultValue": "",
"description": "",
},
{
"id": "$$secret_sendgrid_api_key",
"name": "SENDGRID_API_KEY",
"label": "Sendgrid API Key",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_enable_open_user_registration",
"name": "ENABLE_OPEN_USER_REGISTRATION",
"label": "Enable Open User Registration",
"defaultValue": "true",
"description": "",
},
{
"id": "$$config_django_superuser_email",
"name": "DJANGO_SUPERUSER_EMAIL",
"label": "Django Superuser Email",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_django_superuser_username",
"name": "DJANGO_SUPERUSER_USERNAME",
"label": "Django Superuser Username",
"defaultValue": "",
"description": "",
},
{
"id": "$$secret_django_superuser_password",
"name": "DJANGO_SUPERUSER_PASSWORD",
"label": "Django Superuser Password",
"defaultValue": "$$generate_password",
"description": "",
},
{
"id": "$$config_postgres_user",
"name": "POSTGRES_USER",
"label": "PostgreSQL User",
"defaultValue": "$$generate_username",
"description": "",
},
{
"id": "$$secret_postgres_password",
"name": "POSTGRES_PASSWORD",
"label": "PostgreSQL Password",
"defaultValue": "",
"description": "",
},
{
"id": "$$config_postgres_db",
"name": "POSTGRES_DB",
"label": "PostgreSQL Database",
"defaultValue": "hasura",
"description": "",
},
]
},
{
"templateVersion": "1.0.0",
"serviceDefaultVersion": "v2.13.0",
@@ -755,7 +969,7 @@ export default [
"BASE_URL=$$config_base_url",
"JWT_SECRET=$$secret_jwt_secret",
"EMAIL_NOREPLY=$$config_email_noreply",
"EMAIL_MAILGUN_API_KEY=$$secret_email_mailgun_api_key",
"EMAIL_MAILGUN_API=$$secret_email_mailgun_api",
"EMAIL_MAILGUN_REGION=$$config_email_mailgun_region",
"EMAIL_MAILGUN_DOMAIN=$$config_email_mailgun_domain",
"EMAIL_SMTP_HOST=$$config_email_smtp_host",
@@ -813,8 +1027,8 @@ export default [
"description": "",
},
{
"id": "$$secret_email_mailgun_api_key",
"name": "EMAIL_MAILGUN_API_KEY",
"id": "$$secret_email_mailgun_api",
"name": "EMAIL_MAILGUN_API",
"label": "Mailgun API Key",
"defaultValue": "",
"description": "",