{
  "manifest_version": "1.0.0",
  "template": {
    "id": "1f21ebfc-f542-423f-977f-52635ced3b63",
    "slug": "fleetbase",
    "name": "Fleetbase",
    "description": "Self-hosted Fleetbase logistics platform with MySQL, Redis and realtime",
    "url": "https://railway.com/deploy/fleetbase",
    "upstream": {
      "image": "socketcluster/socketcluster:v17.4.0@sha256:3cd5c2dde94eab1d4b4dde7d35a6eb8e5a109e7cb491c6f3964111144557b085"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "socket",
      "source": {
        "image": "socketcluster/socketcluster:v17.4.0@sha256:3cd5c2dde94eab1d4b4dde7d35a6eb8e5a109e7cb491c6f3964111144557b085"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "worker",
      "source": {
        "image": "fleetbase/fleetbase-api:v0.7.63@sha256:b712ca37fda0a72d65beb3bbfef5fad9783e01a212f5f544f704af941af5a17d"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "api",
      "source": {
        "image": "ghcr.io/youssefsiam38/fleetbase-railway-api:1.0.1@sha256:b69dee37a09d7b9cd5f20d88de9303047801997c6208c996155722877ba321da"
      },
      "needs_volume": true,
      "volume_mount_path": "/fleetbase/api/storage/app",
      "http": true
    },
    {
      "name": "database",
      "source": {
        "image": "mysql:8.0-oracle@sha256:7dcddc01f13bab2f15cde676d44d01f61fc9f99fe7785e86196dfc07d358ae2b"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/mysql",
      "http": false
    },
    {
      "name": "console",
      "source": {
        "image": "ghcr.io/youssefsiam38/fleetbase-railway-console:1.0.1@sha256:46180b6f72eaadef2275c0c174433191bff78c4e4e4941d8c966bc1c63964c11"
      },
      "needs_volume": false,
      "http": true
    },
    {
      "name": "cache",
      "source": {
        "image": "redis:7-alpine@sha256:520775a41a63e77e06c73e35d2fd9cc15921a609516818796b4ecbb813078bc7"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "socket",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "8000"
    },
    {
      "key": "SOCKETCLUSTER_PORT",
      "service": "socket",
      "description": "Provide a value for SOCKETCLUSTER_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "8000"
    },
    {
      "key": "SOCKETCLUSTER_BROKERS",
      "service": "socket",
      "description": "Provide a value for SOCKETCLUSTER_BROKERS.",
      "secret": false,
      "strategy": "default",
      "default": "2"
    },
    {
      "key": "SOCKETCLUSTER_WORKERS",
      "service": "socket",
      "description": "Provide a value for SOCKETCLUSTER_WORKERS.",
      "secret": false,
      "strategy": "default",
      "default": "2"
    },
    {
      "key": "APP_ENV",
      "service": "worker",
      "description": "Provide a value for APP_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "APP_KEY",
      "service": "worker",
      "description": "Provide a value for APP_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "APP_URL",
      "service": "worker",
      "description": "Provide a value for APP_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "APP_NAME",
      "service": "worker",
      "description": "Provide a value for APP_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "Fleetbase"
    },
    {
      "key": "APP_DEBUG",
      "service": "worker",
      "description": "Provide a value for APP_DEBUG.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CACHE_URL",
      "service": "worker",
      "description": "Provide a value for CACHE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "OSRM_HOST",
      "service": "worker",
      "description": "Provide a value for OSRM_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "https://router.project-osrm.org"
    },
    {
      "key": "REDIS_URL",
      "service": "worker",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CACHE_PATH",
      "service": "worker",
      "description": "Provide a value for CACHE_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "/fleetbase/api/storage/framework/cache"
    },
    {
      "key": "LOG_CHANNEL",
      "service": "worker",
      "description": "Provide a value for LOG_CHANNEL.",
      "secret": false,
      "strategy": "default",
      "default": "stdout"
    },
    {
      "key": "MAIL_MAILER",
      "service": "worker",
      "description": "Provide a value for MAIL_MAILER.",
      "secret": false,
      "strategy": "default",
      "default": "log"
    },
    {
      "key": "CACHE_DRIVER",
      "service": "worker",
      "description": "Provide a value for CACHE_DRIVER.",
      "secret": false,
      "strategy": "default",
      "default": "redis"
    },
    {
      "key": "CONSOLE_HOST",
      "service": "worker",
      "description": "Provide a value for CONSOLE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DATABASE_URL",
      "service": "worker",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "REGISTRY_HOST",
      "service": "worker",
      "description": "Provide a value for REGISTRY_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "https://registry.fleetbase.io"
    },
    {
      "key": "MAIL_FROM_NAME",
      "service": "worker",
      "description": "Provide a value for MAIL_FROM_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "Fleetbase"
    },
    {
      "key": "BROADCAST_DRIVER",
      "service": "worker",
      "description": "Provide a value for BROADCAST_DRIVER.",
      "secret": false,
      "strategy": "default",
      "default": "socketcluster"
    },
    {
      "key": "QUEUE_CONNECTION",
      "service": "worker",
      "description": "Provide a value for QUEUE_CONNECTION.",
      "secret": false,
      "strategy": "default",
      "default": "redis"
    },
    {
      "key": "SOCKETCLUSTER_HOST",
      "service": "worker",
      "description": "Provide a value for SOCKETCLUSTER_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "SOCKETCLUSTER_PORT",
      "service": "worker",
      "description": "Provide a value for SOCKETCLUSTER_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "443"
    },
    {
      "key": "SOCKETCLUSTER_SECURE",
      "service": "worker",
      "description": "Provide a value for SOCKETCLUSTER_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "PORT",
      "service": "api",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "8080"
    },
    {
      "key": "APP_ENV",
      "service": "api",
      "description": "Provide a value for APP_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "APP_KEY",
      "service": "api",
      "description": "Laravel application key, generated for this deployment.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "APP_URL",
      "service": "api",
      "description": "Provide a value for APP_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "APP_NAME",
      "service": "api",
      "description": "Provide a value for APP_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "Fleetbase"
    },
    {
      "key": "APP_DEBUG",
      "service": "api",
      "description": "Provide a value for APP_DEBUG.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CACHE_URL",
      "service": "api",
      "description": "Provide a value for CACHE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "OSRM_HOST",
      "service": "api",
      "description": "Routing engine used for distance and route estimates. Defaults to the public OSRM demo server.",
      "secret": false,
      "strategy": "default",
      "default": "https://router.project-osrm.org"
    },
    {
      "key": "REDIS_URL",
      "service": "api",
      "description": "Provide a value for REDIS_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CACHE_PATH",
      "service": "api",
      "description": "Provide a value for CACHE_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "/fleetbase/api/storage/framework/cache"
    },
    {
      "key": "OWNER_NAME",
      "service": "api",
      "description": "Display name of the first administrator.",
      "secret": false,
      "strategy": "default",
      "default": "Fleet Owner"
    },
    {
      "key": "LOG_CHANNEL",
      "service": "api",
      "description": "Provide a value for LOG_CHANNEL.",
      "secret": false,
      "strategy": "default",
      "default": "stdout"
    },
    {
      "key": "MAIL_MAILER",
      "service": "api",
      "description": "Set to smtp and fill the MAIL_* variables to send real email; log keeps notifications in the logs.",
      "secret": false,
      "strategy": "default",
      "default": "log"
    },
    {
      "key": "OWNER_EMAIL",
      "service": "api",
      "description": "Email address of the first administrator. You sign in to the console with it.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "OWNER_PHONE",
      "service": "api",
      "description": "Phone number of the first administrator (E.164). Change it to your own in the console.",
      "secret": false,
      "strategy": "default",
      "default": "+12025550123"
    },
    {
      "key": "CACHE_DRIVER",
      "service": "api",
      "description": "Provide a value for CACHE_DRIVER.",
      "secret": false,
      "strategy": "default",
      "default": "redis"
    },
    {
      "key": "CONSOLE_HOST",
      "service": "api",
      "description": "Provide a value for CONSOLE_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "DATABASE_URL",
      "service": "api",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "FORWARD_PROTO",
      "service": "api",
      "description": "Provide a value for FORWARD_PROTO.",
      "secret": false,
      "strategy": "default",
      "default": "https"
    },
    {
      "key": "REGISTRY_HOST",
      "service": "api",
      "description": "Provide a value for REGISTRY_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "https://registry.fleetbase.io"
    },
    {
      "key": "MAIL_FROM_NAME",
      "service": "api",
      "description": "Provide a value for MAIL_FROM_NAME.",
      "secret": false,
      "strategy": "default",
      "default": "Fleetbase"
    },
    {
      "key": "OWNER_PASSWORD",
      "service": "api",
      "description": "Password for the first administrator, generated for this deployment. Copy it before deploying.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "BROADCAST_DRIVER",
      "service": "api",
      "description": "Provide a value for BROADCAST_DRIVER.",
      "secret": false,
      "strategy": "default",
      "default": "socketcluster"
    },
    {
      "key": "QUEUE_CONNECTION",
      "service": "api",
      "description": "Provide a value for QUEUE_CONNECTION.",
      "secret": false,
      "strategy": "default",
      "default": "redis"
    },
    {
      "key": "ORGANIZATION_NAME",
      "service": "api",
      "description": "Name of the organization created on first boot.",
      "secret": false,
      "strategy": "default",
      "default": "Fleet Operations"
    },
    {
      "key": "PUBLIC_ONBOARDING",
      "service": "api",
      "description": "Keep false to block public self-signup. Set true only if you want anyone to create organizations.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SOCKETCLUSTER_HOST",
      "service": "api",
      "description": "Provide a value for SOCKETCLUSTER_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "SOCKETCLUSTER_PORT",
      "service": "api",
      "description": "Provide a value for SOCKETCLUSTER_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "443"
    },
    {
      "key": "SOCKETCLUSTER_SECURE",
      "service": "api",
      "description": "Provide a value for SOCKETCLUSTER_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "RAILWAY_HEALTHCHECK_TIMEOUT_SEC",
      "service": "api",
      "description": "Provide a value for RAILWAY_HEALTHCHECK_TIMEOUT_SEC.",
      "secret": false,
      "strategy": "default",
      "default": "300"
    },
    {
      "key": "MYSQL_DATABASE",
      "service": "database",
      "description": "Provide a value for MYSQL_DATABASE.",
      "secret": false,
      "strategy": "default",
      "default": "fleetbase"
    },
    {
      "key": "MYSQL_ROOT_PASSWORD",
      "service": "database",
      "description": "MySQL password, generated for this deployment.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "PORT",
      "service": "console",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "4200"
    },
    {
      "key": "API_HOST",
      "service": "console",
      "description": "Public URL of the API service this console talks to.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "OSRM_HOST",
      "service": "console",
      "description": "Provide a value for OSRM_HOST.",
      "secret": false,
      "strategy": "default",
      "default": "https://router.project-osrm.org"
    },
    {
      "key": "SOCKETCLUSTER_HOST",
      "service": "console",
      "description": "Provide a value for SOCKETCLUSTER_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "SOCKETCLUSTER_PORT",
      "service": "console",
      "description": "Provide a value for SOCKETCLUSTER_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "443"
    },
    {
      "key": "SOCKETCLUSTER_SECURE",
      "service": "console",
      "description": "Provide a value for SOCKETCLUSTER_SECURE.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "fleetbase"
      }
    },
    "cli": "railway deploy --template fleetbase",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "1f21ebfc-f542-423f-977f-52635ced3b63",
            "serializedConfig": {
              "buckets": {},
              "services": {
                "1135b8a1-35c1-4936-b48c-2bb91b42143d": {
                  "icon": null,
                  "name": "socket",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "socketcluster/socketcluster:v17.4.0@sha256:3cd5c2dde94eab1d4b4dde7d35a6eb8e5a109e7cb491c6f3964111144557b085"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "defaultValue": "8000"
                    },
                    "SOCKETCLUSTER_PORT": {
                      "isOptional": false,
                      "defaultValue": "8000"
                    },
                    "SOCKETCLUSTER_BROKERS": {
                      "isOptional": false,
                      "defaultValue": "2"
                    },
                    "SOCKETCLUSTER_WORKERS": {
                      "isOptional": false,
                      "defaultValue": "2"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8000": {
                        "port": 8000
                      }
                    }
                  }
                },
                "16b1f240-5ccc-49a8-924a-af4f509a7286": {
                  "icon": null,
                  "name": "worker",
                  "deploy": {
                    "startCommand": "sh -c 'go-crond --verbose root:./crontab & exec php artisan queue:work --tries=3 --timeout=120'",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "fleetbase/fleetbase-api:v0.7.63@sha256:b712ca37fda0a72d65beb3bbfef5fad9783e01a212f5f544f704af941af5a17d"
                  },
                  "variables": {
                    "APP_ENV": {
                      "isOptional": false,
                      "defaultValue": "production"
                    },
                    "APP_KEY": {
                      "isOptional": false,
                      "defaultValue": "${{api.APP_KEY}}"
                    },
                    "APP_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{api.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "APP_NAME": {
                      "isOptional": false,
                      "defaultValue": "Fleetbase"
                    },
                    "APP_DEBUG": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "CACHE_URL": {
                      "isOptional": false,
                      "defaultValue": "tcp://${{cache.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "OSRM_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://router.project-osrm.org"
                    },
                    "REDIS_URL": {
                      "isOptional": false,
                      "defaultValue": "tcp://${{cache.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "CACHE_PATH": {
                      "isOptional": false,
                      "defaultValue": "/fleetbase/api/storage/framework/cache"
                    },
                    "LOG_CHANNEL": {
                      "isOptional": false,
                      "defaultValue": "stdout"
                    },
                    "MAIL_MAILER": {
                      "isOptional": false,
                      "defaultValue": "log"
                    },
                    "CACHE_DRIVER": {
                      "isOptional": false,
                      "defaultValue": "redis"
                    },
                    "CONSOLE_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://${{console.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "defaultValue": "mysql://root:${{database.MYSQL_ROOT_PASSWORD}}@${{database.RAILWAY_PRIVATE_DOMAIN}}:3306/fleetbase"
                    },
                    "REGISTRY_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://registry.fleetbase.io"
                    },
                    "MAIL_FROM_NAME": {
                      "isOptional": false,
                      "defaultValue": "Fleetbase"
                    },
                    "BROADCAST_DRIVER": {
                      "isOptional": false,
                      "defaultValue": "socketcluster"
                    },
                    "QUEUE_CONNECTION": {
                      "isOptional": false,
                      "defaultValue": "redis"
                    },
                    "SOCKETCLUSTER_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{socket.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "SOCKETCLUSTER_PORT": {
                      "isOptional": false,
                      "defaultValue": "443"
                    },
                    "SOCKETCLUSTER_SECURE": {
                      "isOptional": false,
                      "defaultValue": "true"
                    }
                  }
                },
                "85227157-2d5f-49f1-aa34-69fbc12e570e": {
                  "icon": null,
                  "name": "api",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": "/healthz",
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/youssefsiam38/fleetbase-railway-api:1.0.1@sha256:b69dee37a09d7b9cd5f20d88de9303047801997c6208c996155722877ba321da"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "defaultValue": "8080"
                    },
                    "APP_ENV": {
                      "isOptional": false,
                      "defaultValue": "production"
                    },
                    "APP_KEY": {
                      "isOptional": false,
                      "description": "Laravel application key, generated for this deployment.",
                      "defaultValue": "{{APP_KEY}}"
                    },
                    "APP_URL": {
                      "isOptional": false,
                      "defaultValue": "https://${{api.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "APP_NAME": {
                      "isOptional": false,
                      "defaultValue": "Fleetbase"
                    },
                    "APP_DEBUG": {
                      "isOptional": false,
                      "defaultValue": "false"
                    },
                    "CACHE_URL": {
                      "isOptional": false,
                      "defaultValue": "tcp://${{cache.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "MAIL_HOST": {
                      "isOptional": true,
                      "description": ""
                    },
                    "MAIL_PORT": {
                      "isOptional": true,
                      "description": "587"
                    },
                    "OSRM_HOST": {
                      "isOptional": false,
                      "description": "Routing engine used for distance and route estimates. Defaults to the public OSRM demo server.",
                      "defaultValue": "https://router.project-osrm.org"
                    },
                    "REDIS_URL": {
                      "isOptional": false,
                      "defaultValue": "tcp://${{cache.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "CACHE_PATH": {
                      "isOptional": false,
                      "defaultValue": "/fleetbase/api/storage/framework/cache"
                    },
                    "OWNER_NAME": {
                      "isOptional": false,
                      "description": "Display name of the first administrator.",
                      "defaultValue": "Fleet Owner"
                    },
                    "LOG_CHANNEL": {
                      "isOptional": false,
                      "defaultValue": "stdout"
                    },
                    "MAIL_MAILER": {
                      "isOptional": false,
                      "description": "Set to smtp and fill the MAIL_* variables to send real email; log keeps notifications in the logs.",
                      "defaultValue": "log"
                    },
                    "OWNER_EMAIL": {
                      "isOptional": false,
                      "description": "Email address of the first administrator. You sign in to the console with it.",
                      "defaultValue": "{{OWNER_EMAIL}}"
                    },
                    "OWNER_PHONE": {
                      "isOptional": false,
                      "description": "Phone number of the first administrator (E.164). Change it to your own in the console.",
                      "defaultValue": "+12025550123"
                    },
                    "CACHE_DRIVER": {
                      "isOptional": false,
                      "defaultValue": "redis"
                    },
                    "CONSOLE_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://${{console.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "defaultValue": "mysql://root:${{database.MYSQL_ROOT_PASSWORD}}@${{database.RAILWAY_PRIVATE_DOMAIN}}:3306/fleetbase"
                    },
                    "FORWARD_PROTO": {
                      "isOptional": false,
                      "defaultValue": "https"
                    },
                    "MAIL_PASSWORD": {
                      "isOptional": true,
                      "description": ""
                    },
                    "MAIL_USERNAME": {
                      "isOptional": true,
                      "description": ""
                    },
                    "REGISTRY_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://registry.fleetbase.io"
                    },
                    "IPINFO_API_KEY": {
                      "isOptional": true,
                      "description": ""
                    },
                    "MAIL_FROM_NAME": {
                      "isOptional": false,
                      "defaultValue": "Fleetbase"
                    },
                    "OWNER_PASSWORD": {
                      "isOptional": false,
                      "description": "Password for the first administrator, generated for this deployment. Copy it before deploying.",
                      "defaultValue": "{{OWNER_PASSWORD}}"
                    },
                    "MAIL_ENCRYPTION": {
                      "isOptional": true,
                      "description": "tls"
                    },
                    "BROADCAST_DRIVER": {
                      "isOptional": false,
                      "defaultValue": "socketcluster"
                    },
                    "QUEUE_CONNECTION": {
                      "isOptional": false,
                      "defaultValue": "redis"
                    },
                    "MAIL_FROM_ADDRESS": {
                      "isOptional": true,
                      "description": ""
                    },
                    "ORGANIZATION_NAME": {
                      "isOptional": false,
                      "description": "Name of the organization created on first boot.",
                      "defaultValue": "Fleet Operations"
                    },
                    "PUBLIC_ONBOARDING": {
                      "isOptional": false,
                      "description": "Keep false to block public self-signup. Set true only if you want anyone to create organizations.",
                      "defaultValue": "false"
                    },
                    "SOCKETCLUSTER_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{socket.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "SOCKETCLUSTER_PORT": {
                      "isOptional": false,
                      "defaultValue": "443"
                    },
                    "SOCKETCLUSTER_SECURE": {
                      "isOptional": false,
                      "defaultValue": "true"
                    },
                    "RAILWAY_HEALTHCHECK_TIMEOUT_SEC": {
                      "isOptional": false,
                      "defaultValue": "300"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:8080": {
                        "port": 8080
                      }
                    }
                  },
                  "volumeMounts": {
                    "85227157-2d5f-49f1-aa34-69fbc12e570e": {
                      "mountPath": "/fleetbase/api/storage/app"
                    }
                  }
                },
                "b23cb686-2b3c-4845-953d-978658e3bcb0": {
                  "icon": null,
                  "name": "database",
                  "deploy": {
                    "startCommand": "docker-entrypoint.sh mysqld --datadir=/var/lib/mysql/data --bind-address='*'",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "mysql:8.0-oracle@sha256:7dcddc01f13bab2f15cde676d44d01f61fc9f99fe7785e86196dfc07d358ae2b"
                  },
                  "variables": {
                    "MYSQL_DATABASE": {
                      "isOptional": false,
                      "defaultValue": "fleetbase"
                    },
                    "MYSQL_ROOT_PASSWORD": {
                      "isOptional": false,
                      "description": "MySQL password, generated for this deployment.",
                      "defaultValue": "{{MYSQL_ROOT_PASSWORD}}"
                    }
                  },
                  "volumeMounts": {
                    "b23cb686-2b3c-4845-953d-978658e3bcb0": {
                      "mountPath": "/var/lib/mysql"
                    }
                  }
                },
                "cc967225-c6ae-4317-8d1a-3e2cdb3d151b": {
                  "icon": null,
                  "name": "console",
                  "deploy": {
                    "startCommand": null,
                    "healthcheckPath": "/healthz",
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "ghcr.io/youssefsiam38/fleetbase-railway-console:1.0.1@sha256:46180b6f72eaadef2275c0c174433191bff78c4e4e4941d8c966bc1c63964c11"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "defaultValue": "4200"
                    },
                    "API_HOST": {
                      "isOptional": false,
                      "description": "Public URL of the API service this console talks to.",
                      "defaultValue": "https://${{api.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "OSRM_HOST": {
                      "isOptional": false,
                      "defaultValue": "https://router.project-osrm.org"
                    },
                    "SOCKETCLUSTER_HOST": {
                      "isOptional": false,
                      "defaultValue": "${{socket.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "SOCKETCLUSTER_PORT": {
                      "isOptional": false,
                      "defaultValue": "443"
                    },
                    "SOCKETCLUSTER_SECURE": {
                      "isOptional": false,
                      "defaultValue": "true"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>:4200": {
                        "port": 4200
                      }
                    }
                  }
                },
                "ed6801c4-6745-4ce9-9b70-1665cf04875b": {
                  "icon": null,
                  "name": "cache",
                  "deploy": {
                    "startCommand": "redis-server --protected-mode no --appendonly no",
                    "healthcheckPath": null,
                    "restartPolicyType": "ON_FAILURE",
                    "restartPolicyMaxRetries": 10
                  },
                  "source": {
                    "image": "redis:7-alpine@sha256:520775a41a63e77e06c73e35d2fd9cc15921a609516818796b4ecbb813078bc7"
                  },
                  "variables": {}
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {
    "healthcheck": {
      "service": "api",
      "method": "GET",
      "path": "/healthz",
      "expect_status": 200
    }
  },
  "resources": {
    "expected_services": 6,
    "needs_volume": true
  },
  "generated_at": "2026-09-19T16:14:39.735Z",
  "generator_version": "0.1.0"
}
