{
  "manifest_version": "1.0.0",
  "template": {
    "id": "045541cb-30e7-4ba8-b1a1-9f2a3ced390d",
    "slug": "mautic-mysql-worker-cron",
    "name": "Mautic + MySQL - Open-Source HubSpot Alternative",
    "description": "Mautic marketing automation with MySQL plus worker and cron services.",
    "url": "https://railway.com/deploy/mautic-mysql-worker-cron",
    "upstream": {
      "image": "mautic/mautic:5-apache"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "mautic-cron",
      "source": {
        "image": "mautic/mautic:5-apache"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "mautic-worker",
      "source": {
        "image": "mautic/mautic:5-apache"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "mysql",
      "source": {
        "image": "mysql:lts"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/mysql",
      "http": false
    },
    {
      "name": "mautic-web",
      "source": {
        "image": "mautic/mautic:5-apache"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/www/html/config",
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "MAUTIC_DB_HOST",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_DB_HOST.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PORT",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_DB_PORT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_USER",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_DB_USER.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_SITE_URL",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DOCKER_MAUTIC_ROLE",
      "service": "mautic-cron",
      "description": "Provide a value for DOCKER_MAUTIC_ROLE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_DATABASE",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_DB_DATABASE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PASSWORD",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_DB_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MAUTIC_VOLUME_LOGS",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_VOLUME_LOGS.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_MEDIA",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_VOLUME_MEDIA.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_CONFIG",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_VOLUME_CONFIG.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_HIT",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_HIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_EMAIL",
      "service": "mautic-cron",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_EMAIL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "PHP_INI_VALUE_MEMORY_LIMIT",
      "service": "mautic-cron",
      "description": "Provide a value for PHP_INI_VALUE_MEMORY_LIMIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_HOST",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_DB_HOST.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PORT",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_DB_PORT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_USER",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_DB_USER.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_SITE_URL",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DOCKER_MAUTIC_ROLE",
      "service": "mautic-worker",
      "description": "Provide a value for DOCKER_MAUTIC_ROLE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_DATABASE",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_DB_DATABASE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PASSWORD",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_DB_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MAUTIC_VOLUME_LOGS",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_VOLUME_LOGS.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_MEDIA",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_VOLUME_MEDIA.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_CONFIG",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_VOLUME_CONFIG.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_HIT",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_HIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_EMAIL",
      "service": "mautic-worker",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_EMAIL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "PHP_INI_VALUE_MEMORY_LIMIT",
      "service": "mautic-worker",
      "description": "Provide a value for PHP_INI_VALUE_MEMORY_LIMIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MYSQL_USER",
      "service": "mysql",
      "description": "Provide a value for MYSQL_USER.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MYSQL_DATABASE",
      "service": "mysql",
      "description": "Provide a value for MYSQL_DATABASE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MYSQL_PASSWORD",
      "service": "mysql",
      "description": "Provide a value for MYSQL_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MYSQL_ROOT_PASSWORD",
      "service": "mysql",
      "description": "Provide a value for MYSQL_ROOT_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "PORT",
      "service": "mautic-web",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_HOST",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_DB_HOST.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PORT",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_DB_PORT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_USER",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_DB_USER.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_SITE_URL",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_SITE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DOCKER_MAUTIC_ROLE",
      "service": "mautic-web",
      "description": "Provide a value for DOCKER_MAUTIC_ROLE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_DATABASE",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_DB_DATABASE.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_DB_PASSWORD",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_DB_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MAUTIC_VOLUME_LOGS",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_VOLUME_LOGS.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_MEDIA",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_VOLUME_MEDIA.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_VOLUME_CONFIG",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_VOLUME_CONFIG.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_HIT",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_HIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MAUTIC_MESSENGER_DSN_EMAIL",
      "service": "mautic-web",
      "description": "Provide a value for MAUTIC_MESSENGER_DSN_EMAIL.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "PHP_INI_VALUE_MEMORY_LIMIT",
      "service": "mautic-web",
      "description": "Provide a value for PHP_INI_VALUE_MEMORY_LIMIT.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "DOCKER_MAUTIC_LOAD_TEST_DATA",
      "service": "mautic-web",
      "description": "Provide a value for DOCKER_MAUTIC_LOAD_TEST_DATA.",
      "secret": false,
      "strategy": "ask_user"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "mautic-mysql-worker-cron"
      }
    },
    "cli": "railway deploy --template mautic-mysql-worker-cron",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "045541cb-30e7-4ba8-b1a1-9f2a3ced390d",
            "serializedConfig": {
              "buckets": {},
              "services": {
                "3a9f53b8-d95b-4b9a-bc0e-f7834719823d": {
                  "icon": null,
                  "name": "mautic-cron",
                  "deploy": {
                    "startCommand": "/bin/bash -lc 'echo IyEvYmluL2Jhc2gKc2V0IC1lCmlmIFsgLWYgL3N0YXJ0dXAvbG9nZ2VyLnNoIF07IHRoZW4gc291cmNlIC9zdGFydHVwL2xvZ2dlci5zaDsgZWxzZSBsb2coKXsgZWNobyAiJCoiOyB9OyBmaQpDT1VOVEVSPTAKdW50aWwgbWFyaWFkYiAtLXByb3RvY29sPVRDUCAtLWhvc3Q9IiR7TUFVVElDX0RCX0hPU1R9IiAtLXBvcnQ9IiR7TUFVVElDX0RCX1BPUlR9IiAtLXVzZXI9IiR7TUFVVElDX0RCX1VTRVJ9IiAtLXBhc3N3b3JkPSIke01BVVRJQ19EQl9QQVNTV09SRH0iICIke01BVVRJQ19EQl9EQVRBQkFTRX0iIC0tc2tpcC1jb2x1bW4tbmFtZXMgLS1leGVjdXRlPSJTRUxFQ1QgQ09VTlQoKikgRlJPTSB1c2VyczsiID4vZGV2L251bGwgMj4mMTsgZG8KICBpZiAoKCBDT1VOVEVSICUgNiA9PSAwICkpOyB0aGVuIGxvZyAiWyR7RE9DS0VSX01BVVRJQ19ST0xFfV06IFdhaXRpbmcgZm9yIE1hdXRpYyBkYXRhYmFzZSBpbnN0YWxsLCBjdXJyZW50IGF0dGVtcHQ6ICR7Q09VTlRFUn0uIjsgZmkKICBDT1VOVEVSPSQoKENPVU5URVIgKyAxKSkKICBzbGVlcCA1CmRvbmUKbG9nICJbJHtET0NLRVJfTUFVVElDX1JPTEV9XTogTWF1dGljIGRhdGFiYXNlIGluc3RhbGwgZGV0ZWN0ZWQuIgpwaHAgPDwnUEhQJwo8P3BocAokZmlsZSA9IGdldGVudignTUFVVElDX1ZPTFVNRV9DT05GSUcnKSAuICcvbG9jYWwucGhwJzsKJHBhcmFtZXRlcnMgPSBbXTsKaWYgKGlzX2ZpbGUoJGZpbGUpKSB7IGluY2x1ZGUgJGZpbGU7IH0KJHBhcmFtZXRlcnNbJ2RiX2RyaXZlciddID0gJHBhcmFtZXRlcnNbJ2RiX2RyaXZlciddID8/ICdwZG9fbXlzcWwnOwokcGFyYW1ldGVyc1snZGJfaG9zdCddID0gJHBhcmFtZXRlcnNbJ2RiX2hvc3QnXSA/PyBnZXRlbnYoJ01BVVRJQ19EQl9IT1NUJyk7CiRwYXJhbWV0ZXJzWydkYl9wb3J0J10gPSAkcGFyYW1ldGVyc1snZGJfcG9ydCddID8/IGdldGVudignTUFVVElDX0RCX1BPUlQnKTsKJHBhcmFtZXRlcnNbJ2RiX25hbWUnXSA9ICRwYXJhbWV0ZXJzWydkYl9uYW1lJ10gPz8gZ2V0ZW52KCdNQVVUSUNfREJfREFUQUJBU0UnKTsKJHBhcmFtZXRlcnNbJ2RiX3VzZXInXSA9ICRwYXJhbWV0ZXJzWydkYl91c2VyJ10gPz8gZ2V0ZW52KCdNQVVUSUNfREJfVVNFUicpOwokcGFyYW1ldGVyc1snZGJfcGFzc3dvcmQnXSA9ICRwYXJhbWV0ZXJzWydkYl9wYXNzd29yZCddID8/IGdldGVudignTUFVVElDX0RCX1BBU1NXT1JEJyk7CiRwYXJhbWV0ZXJzWydzaXRlX3VybCddID0gZ2V0ZW52KCdNQVVUSUNfU0lURV9VUkwnKSA/OiAnaHR0cDovL2xvY2FsaG9zdCc7CiRwYXJhbWV0ZXJzWydtZXNzZW5nZXJfZHNuX2VtYWlsJ10gPSBnZXRlbnYoJ01BVVRJQ19NRVNTRU5HRVJfRFNOX0VNQUlMJykgPzogJ2RvY3RyaW5lOi8vZGVmYXVsdCc7CiRwYXJhbWV0ZXJzWydtZXNzZW5nZXJfZHNuX2hpdCddID0gZ2V0ZW52KCdNQVVUSUNfTUVTU0VOR0VSX0RTTl9ISVQnKSA/OiAnZG9jdHJpbmU6Ly9kZWZhdWx0JzsKZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICI8P3BocFxuXCRwYXJhbWV0ZXJzID0gIiAuIHZhcl9leHBvcnQoJHBhcmFtZXRlcnMsIHRydWUpIC4gIjtcbiIpOwpQSFAKY2hvd24gIiR7TUFVVElDX1dXV19VU0VSOi13d3ctZGF0YX06JHtNQVVUSUNfV1dXX0dST1VQOi13d3ctZGF0YX0iICIke01BVVRJQ19WT0xVTUVfQ09ORklHfS9sb2NhbC5waHAiIHx8IHRydWUKbG9nICJbJHtET0NLRVJfTUFVVElDX1JPTEV9XTogU3luY2VkIGxvY2FsLnBocCBmb3IgUmFpbHdheSBiYWNrZ3JvdW5kIHJvbGUuIgpta2RpciAtcCAvb3B0L21hdXRpYy9jcm9uCmlmIFsgISAtZiAvb3B0L21hdXRpYy9jcm9uL21hdXRpYyBdOyB0aGVuIGNwIC1wIC90ZW1wbGF0ZXMvbWF1dGljX2Nyb24gL29wdC9tYXV0aWMvY3Jvbi9tYXV0aWM7IGZpCmNyb250YWIgLXUgd3d3LWRhdGEgL29wdC9tYXV0aWMvY3Jvbi9tYXV0aWMKcm0gLWYgL3RtcC9zdGRvdXQKbWtmaWZvIC90bXAvc3Rkb3V0CmNobW9kIDc3NyAvdG1wL3N0ZG91dApkZWNsYXJlIC1wIHwgZ3JlcCAtRSAnUEhQX0lOSV9WQUxVRV98TUFVVElDJyA+IC90bXAvY3Jvbi5lbnYKY3JvbiAtZiB8IHRhaWwgLWYgL3RtcC9zdGRvdXQK | base64 -d >/tmp/railway-mautic-start.sh && chmod +x /tmp/railway-mautic-start.sh && exec /tmp/railway-mautic-start.sh'",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mautic/mautic:5-apache"
                  },
                  "variables": {
                    "MAUTIC_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_HOST}}"
                    },
                    "MAUTIC_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PORT}}"
                    },
                    "MAUTIC_DB_USER": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_USER}}"
                    },
                    "MAUTIC_SITE_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{mautic-web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DOCKER_MAUTIC_ROLE": {
                      "isOptional": false,
                      "defaultValue": "{{DOCKER_MAUTIC_ROLE}}"
                    },
                    "MAUTIC_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_DATABASE}}"
                    },
                    "MAUTIC_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PASSWORD}}"
                    },
                    "MAUTIC_VOLUME_LOGS": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_LOGS}}"
                    },
                    "MAUTIC_VOLUME_MEDIA": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_MEDIA}}"
                    },
                    "MAUTIC_VOLUME_CONFIG": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_CONFIG}}"
                    },
                    "MAUTIC_MESSENGER_DSN_HIT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_HIT}}"
                    },
                    "MAUTIC_MESSENGER_DSN_EMAIL": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_EMAIL}}"
                    },
                    "PHP_INI_VALUE_MEMORY_LIMIT": {
                      "isOptional": false,
                      "defaultValue": "{{PHP_INI_VALUE_MEMORY_LIMIT}}"
                    }
                  }
                },
                "6296c297-de3d-435d-96fd-b501bfbd7208": {
                  "icon": null,
                  "name": "mautic-worker",
                  "deploy": {
                    "startCommand": "/bin/bash -lc 'echo IyEvYmluL2Jhc2gKc2V0IC1lCmlmIFsgLWYgL3N0YXJ0dXAvbG9nZ2VyLnNoIF07IHRoZW4gc291cmNlIC9zdGFydHVwL2xvZ2dlci5zaDsgZWxzZSBsb2coKXsgZWNobyAiJCoiOyB9OyBmaQpDT1VOVEVSPTAKdW50aWwgbWFyaWFkYiAtLXByb3RvY29sPVRDUCAtLWhvc3Q9IiR7TUFVVElDX0RCX0hPU1R9IiAtLXBvcnQ9IiR7TUFVVElDX0RCX1BPUlR9IiAtLXVzZXI9IiR7TUFVVElDX0RCX1VTRVJ9IiAtLXBhc3N3b3JkPSIke01BVVRJQ19EQl9QQVNTV09SRH0iICIke01BVVRJQ19EQl9EQVRBQkFTRX0iIC0tc2tpcC1jb2x1bW4tbmFtZXMgLS1leGVjdXRlPSJTRUxFQ1QgQ09VTlQoKikgRlJPTSB1c2VyczsiID4vZGV2L251bGwgMj4mMTsgZG8KICBpZiAoKCBDT1VOVEVSICUgNiA9PSAwICkpOyB0aGVuIGxvZyAiWyR7RE9DS0VSX01BVVRJQ19ST0xFfV06IFdhaXRpbmcgZm9yIE1hdXRpYyBkYXRhYmFzZSBpbnN0YWxsLCBjdXJyZW50IGF0dGVtcHQ6ICR7Q09VTlRFUn0uIjsgZmkKICBDT1VOVEVSPSQoKENPVU5URVIgKyAxKSkKICBzbGVlcCA1CmRvbmUKbG9nICJbJHtET0NLRVJfTUFVVElDX1JPTEV9XTogTWF1dGljIGRhdGFiYXNlIGluc3RhbGwgZGV0ZWN0ZWQuIgpwaHAgPDwnUEhQJwo8P3BocAokZmlsZSA9IGdldGVudignTUFVVElDX1ZPTFVNRV9DT05GSUcnKSAuICcvbG9jYWwucGhwJzsKJHBhcmFtZXRlcnMgPSBbXTsKaWYgKGlzX2ZpbGUoJGZpbGUpKSB7IGluY2x1ZGUgJGZpbGU7IH0KJHBhcmFtZXRlcnNbJ2RiX2RyaXZlciddID0gJHBhcmFtZXRlcnNbJ2RiX2RyaXZlciddID8/ICdwZG9fbXlzcWwnOwokcGFyYW1ldGVyc1snZGJfaG9zdCddID0gJHBhcmFtZXRlcnNbJ2RiX2hvc3QnXSA/PyBnZXRlbnYoJ01BVVRJQ19EQl9IT1NUJyk7CiRwYXJhbWV0ZXJzWydkYl9wb3J0J10gPSAkcGFyYW1ldGVyc1snZGJfcG9ydCddID8/IGdldGVudignTUFVVElDX0RCX1BPUlQnKTsKJHBhcmFtZXRlcnNbJ2RiX25hbWUnXSA9ICRwYXJhbWV0ZXJzWydkYl9uYW1lJ10gPz8gZ2V0ZW52KCdNQVVUSUNfREJfREFUQUJBU0UnKTsKJHBhcmFtZXRlcnNbJ2RiX3VzZXInXSA9ICRwYXJhbWV0ZXJzWydkYl91c2VyJ10gPz8gZ2V0ZW52KCdNQVVUSUNfREJfVVNFUicpOwokcGFyYW1ldGVyc1snZGJfcGFzc3dvcmQnXSA9ICRwYXJhbWV0ZXJzWydkYl9wYXNzd29yZCddID8/IGdldGVudignTUFVVElDX0RCX1BBU1NXT1JEJyk7CiRwYXJhbWV0ZXJzWydzaXRlX3VybCddID0gZ2V0ZW52KCdNQVVUSUNfU0lURV9VUkwnKSA/OiAnaHR0cDovL2xvY2FsaG9zdCc7CiRwYXJhbWV0ZXJzWydtZXNzZW5nZXJfZHNuX2VtYWlsJ10gPSBnZXRlbnYoJ01BVVRJQ19NRVNTRU5HRVJfRFNOX0VNQUlMJykgPzogJ2RvY3RyaW5lOi8vZGVmYXVsdCc7CiRwYXJhbWV0ZXJzWydtZXNzZW5nZXJfZHNuX2hpdCddID0gZ2V0ZW52KCdNQVVUSUNfTUVTU0VOR0VSX0RTTl9ISVQnKSA/OiAnZG9jdHJpbmU6Ly9kZWZhdWx0JzsKZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICI8P3BocFxuXCRwYXJhbWV0ZXJzID0gIiAuIHZhcl9leHBvcnQoJHBhcmFtZXRlcnMsIHRydWUpIC4gIjtcbiIpOwpQSFAKY2hvd24gIiR7TUFVVElDX1dXV19VU0VSOi13d3ctZGF0YX06JHtNQVVUSUNfV1dXX0dST1VQOi13d3ctZGF0YX0iICIke01BVVRJQ19WT0xVTUVfQ09ORklHfS9sb2NhbC5waHAiIHx8IHRydWUKbG9nICJbJHtET0NLRVJfTUFVVElDX1JPTEV9XTogU3luY2VkIGxvY2FsLnBocCBmb3IgUmFpbHdheSBiYWNrZ3JvdW5kIHJvbGUuIgpleGVjIHN1cGVydmlzb3JkIC1jIC9ldGMvc3VwZXJ2aXNvci9jb25mLmQvc3VwZXJ2aXNvcmQuY29uZgo= | base64 -d >/tmp/railway-mautic-start.sh && chmod +x /tmp/railway-mautic-start.sh && exec /tmp/railway-mautic-start.sh'",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mautic/mautic:5-apache"
                  },
                  "variables": {
                    "MAUTIC_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_HOST}}"
                    },
                    "MAUTIC_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PORT}}"
                    },
                    "MAUTIC_DB_USER": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_USER}}"
                    },
                    "MAUTIC_SITE_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{mautic-web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DOCKER_MAUTIC_ROLE": {
                      "isOptional": false,
                      "defaultValue": "{{DOCKER_MAUTIC_ROLE}}"
                    },
                    "MAUTIC_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_DATABASE}}"
                    },
                    "MAUTIC_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PASSWORD}}"
                    },
                    "MAUTIC_VOLUME_LOGS": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_LOGS}}"
                    },
                    "MAUTIC_VOLUME_MEDIA": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_MEDIA}}"
                    },
                    "MAUTIC_VOLUME_CONFIG": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_CONFIG}}"
                    },
                    "MAUTIC_MESSENGER_DSN_HIT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_HIT}}"
                    },
                    "MAUTIC_MESSENGER_DSN_EMAIL": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_EMAIL}}"
                    },
                    "PHP_INI_VALUE_MEMORY_LIMIT": {
                      "isOptional": false,
                      "defaultValue": "{{PHP_INI_VALUE_MEMORY_LIMIT}}"
                    }
                  }
                },
                "c1a21e41-447b-4455-9f4a-19d4940086ea": {
                  "icon": null,
                  "name": "mysql",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mysql:lts"
                  },
                  "variables": {
                    "MYSQL_USER": {
                      "isOptional": false,
                      "defaultValue": "{{MYSQL_USER}}"
                    },
                    "MYSQL_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "{{MYSQL_DATABASE}}"
                    },
                    "MYSQL_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MYSQL_PASSWORD}}"
                    },
                    "MYSQL_ROOT_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MYSQL_ROOT_PASSWORD}}"
                    }
                  },
                  "volumeMounts": {
                    "c1a21e41-447b-4455-9f4a-19d4940086ea": {
                      "mountPath": "/var/lib/mysql"
                    }
                  },
                  "haTemplateCode": "mysql-ha",
                  "haConversionConfig": {
                    "edge": {
                      "label": "Reverse Proxies",
                      "options": [
                        1,
                        2
                      ],
                      "nodeLabel": "HAProxy",
                      "description": "HAProxy instances routing writes to the primary",
                      "defaultValue": 2
                    },
                    "replica": {
                      "label": "MySQL Replicas",
                      "options": [
                        2,
                        4,
                        6,
                        8
                      ],
                      "nodeLabel": "MySQL",
                      "description": "Requires odd count for quorum",
                      "defaultValue": 2
                    },
                    "internal": null,
                    "description": "This will convert your MySQL instance to an HA cluster with Group Replication failover and HAProxy routing to the primary.",
                    "supportedImageMajorVersions": [
                      8,
                      9
                    ]
                  }
                },
                "c35aee75-80ac-4d04-899e-3f098a00fcb8": {
                  "icon": null,
                  "name": "mautic-web",
                  "deploy": {
                    "startCommand": "/bin/bash -lc 'echo IyEvYmluL2Jhc2gKc2V0IC1lCmlmIFsgLWYgL3N0YXJ0dXAvbG9nZ2VyLnNoIF07IHRoZW4gc291cmNlIC9zdGFydHVwL2xvZ2dlci5zaDsgZWxzZSBsb2coKXsgZWNobyAiJCoiOyB9OyBmaQpNQVVUSUNfV1dXX1VTRVI9IiR7TUFVVElDX1dXV19VU0VSOi13d3ctZGF0YX0iCk1BVVRJQ19XV1dfR1JPVVA9IiR7TUFVVElDX1dXV19HUk9VUDotd3d3LWRhdGF9IgpNQVVUSUNfQ09OU09MRT0iJHtNQVVUSUNfQ09OU09MRTotL3Zhci93d3cvaHRtbC9iaW4vY29uc29sZX0iCk1BVVRJQ19WT0xVTUVfQ09ORklHPSIke01BVVRJQ19WT0xVTUVfQ09ORklHOi0vdmFyL3d3dy9odG1sL2NvbmZpZ30iCm1rZGlyIC1wICIkTUFVVElDX1ZPTFVNRV9DT05GSUciIC92YXIvd3d3L2h0bWwvZG9jcm9vdApjaG93biAtUiAiJHtNQVVUSUNfV1dXX1VTRVJ9OiR7TUFVVElDX1dXV19HUk9VUH0iICIkTUFVVElDX1ZPTFVNRV9DT05GSUciIHx8IHRydWUKcHJpbnRmICdva1xuJyA+IC92YXIvd3d3L2h0bWwvZG9jcm9vdC9oZWFsdGgKY2hvd24gIiR7TUFVVElDX1dXV19VU0VSfToke01BVVRJQ19XV1dfR1JPVVB9IiAvdmFyL3d3dy9odG1sL2RvY3Jvb3QvaGVhbHRoIHx8IHRydWUKaWYgWyAiJHtET0NLRVJfTUFVVElDX0xPQURfVEVTVF9EQVRBOi1mYWxzZX0iID0gInRydWUiIF07IHRoZW4KICBzdSAtcyAvYmluL2Jhc2ggIiRNQVVUSUNfV1dXX1VTRVIiIC1jICJwaHAgJE1BVVRJQ19DT05TT0xFIGRvY3RyaW5lOm1pZ3JhdGlvbnM6c3luYy1tZXRhZGF0YS1zdG9yYWdlIgogIHN1IC1zIC9iaW4vYmFzaCAiJE1BVVRJQ19XV1dfVVNFUiIgLWMgInBocCAkTUFVVElDX0NPTlNPTEUgbWF1dGljOmluc3RhbGwgLS1mb3JjZSAtLWFkbWluX2VtYWlsIHdpbGxjaGFuZ2VAbWF1dGljLm9yZyAtLWFkbWluX3Bhc3N3b3JkIHdpbGxjaGFuZ2UgaHR0cDovL2xvY2FsaG9zdCIKICBzdSAtcyAvYmluL2Jhc2ggIiRNQVVUSUNfV1dXX1VTRVIiIC1jICJwaHAgJE1BVVRJQ19DT05TT0xFIGRvY3RyaW5lOmZpeHR1cmVzOmxvYWQgLW4iCmZpCmlmIHBocCAtciAnaW5jbHVkZShnZXRlbnYoIk1BVVRJQ19WT0xVTUVfQ09ORklHIikgLiAiL2xvY2FsLnBocCIpOyBleGl0KCFlbXB0eSgkcGFyYW1ldGVyc1siZGJfZHJpdmVyIl0pICYmICFlbXB0eSgkcGFyYW1ldGVyc1sic2l0ZV91cmwiXSkgPyAwIDogMSk7JzsgdGhlbgogIGxvZyAiWyR7RE9DS0VSX01BVVRJQ19ST0xFfV06IE1hdXRpYyBpcyBhbHJlYWR5IGluc3RhbGxlZCwgcnVubmluZyBtaWdyYXRpb25zLi4uIgogIHN1IC1zIC9iaW4vYmFzaCAiJE1BVVRJQ19XV1dfVVNFUiIgLWMgInBocCAkTUFVVElDX0NPTlNPTEUgZG9jdHJpbmU6bWlncmF0aW9uczptaWdyYXRlIC1uIgplbHNlCiAgbG9nICJbJHtET0NLRVJfTUFVVElDX1JPTEV9XTogTWF1dGljIGlzIG5vdCBpbnN0YWxsZWQsIHNraXBwaW5nIG1pZ3JhdGlvbnMuIgpmaQphMmRpc21vZCBtcG1fZXZlbnQgbXBtX3dvcmtlciA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQphMmVubW9kIG1wbV9wcmVmb3JrID4vZGV2L251bGwgMj4mMSB8fCB0cnVlCmV4ZWMgYXBhY2hlMi1mb3JlZ3JvdW5kCg== | base64 -d >/tmp/railway-mautic-start.sh && chmod +x /tmp/railway-mautic-start.sh && exec /tmp/railway-mautic-start.sh'",
                    "healthcheckPath": "/health",
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mautic/mautic:5-apache"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "defaultValue": "{{PORT}}"
                    },
                    "MAUTIC_DB_HOST": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_HOST}}"
                    },
                    "MAUTIC_DB_PORT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PORT}}"
                    },
                    "MAUTIC_DB_USER": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_USER}}"
                    },
                    "MAUTIC_SITE_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{mautic-web.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DOCKER_MAUTIC_ROLE": {
                      "isOptional": false,
                      "defaultValue": "{{DOCKER_MAUTIC_ROLE}}"
                    },
                    "MAUTIC_DB_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_DATABASE}}"
                    },
                    "MAUTIC_DB_PASSWORD": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_DB_PASSWORD}}"
                    },
                    "MAUTIC_VOLUME_LOGS": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_LOGS}}"
                    },
                    "MAUTIC_VOLUME_MEDIA": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_MEDIA}}"
                    },
                    "MAUTIC_VOLUME_CONFIG": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_VOLUME_CONFIG}}"
                    },
                    "MAUTIC_MESSENGER_DSN_HIT": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_HIT}}"
                    },
                    "MAUTIC_MESSENGER_DSN_EMAIL": {
                      "isOptional": false,
                      "defaultValue": "{{MAUTIC_MESSENGER_DSN_EMAIL}}"
                    },
                    "PHP_INI_VALUE_MEMORY_LIMIT": {
                      "isOptional": false,
                      "defaultValue": "{{PHP_INI_VALUE_MEMORY_LIMIT}}"
                    },
                    "DOCKER_MAUTIC_LOAD_TEST_DATA": {
                      "isOptional": false,
                      "defaultValue": "{{DOCKER_MAUTIC_LOAD_TEST_DATA}}"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  },
                  "volumeMounts": {
                    "c35aee75-80ac-4d04-899e-3f098a00fcb8": {
                      "mountPath": "/var/www/html/config"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {
    "healthcheck": {
      "service": "mautic-web",
      "method": "GET",
      "path": "/health",
      "expect_status": 200
    }
  },
  "resources": {
    "expected_services": 4,
    "needs_volume": true
  },
  "generated_at": "2026-09-21T22:14:44.200Z",
  "generator_version": "0.1.0"
}
