{
  "manifest_version": "1.0.0",
  "template": {
    "id": "3596f825-83d8-40b8-9c78-beb1f4b2262b",
    "slug": "eIOwd0",
    "name": "Postgres S3 Backups",
    "description": "Backup your Postgres DB to any S3 storage (Backblaze/Cloudflare)",
    "url": "https://railway.com/deploy/eIOwd0",
    "upstream": {
      "repo_url": "https://github.com/OtterlySpace/railway-postgres-s3-backups"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "Backup CRON",
      "source": {
        "repo": "https://github.com/OtterlySpace/railway-postgres-s3-backups"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PG_VERSION",
      "service": "Backup CRON",
      "description": "The Posgres version to use for making the database dump. Defaults to 17",
      "secret": false,
      "strategy": "default",
      "default": "17"
    },
    {
      "key": "AWS_S3_BUCKET",
      "service": "Backup CRON",
      "description": "The name of the S3 bucket.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "AWS_S3_REGION",
      "service": "Backup CRON",
      "description": "The region the S3 bucket is in.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "AWS_ACCESS_KEY_ID",
      "service": "Backup CRON",
      "description": "The access key ID for the IAM user.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "BACKUP_DATABASE_URL",
      "service": "Backup CRON",
      "description": "The database url for the database to backup.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "BACKUP_CRON_SCHEDULE",
      "service": "Backup CRON",
      "description": "How often should backups be created. Defaults to daily at 5 AM.",
      "secret": false,
      "strategy": "default",
      "default": "0 5 * * *"
    },
    {
      "key": "AWS_SECRET_ACCESS_KEY",
      "service": "Backup CRON",
      "description": "The secret access key for the IAM user.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "DISABLE_S3_CHECKSUM_VALIDATION",
      "service": "Backup CRON",
      "description": "Disables default S3 request checksum validation which is not supported by some S3 providers like Backblaze B2 and Cloudflare R2. This only impacts the communication between the application and the S3 service, not the backup itself. Set this to true if you use any of those services.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "eIOwd0"
      }
    },
    "cli": "railway deploy --template eIOwd0",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "3596f825-83d8-40b8-9c78-beb1f4b2262b",
            "serializedConfig": {
              "services": {
                "f04e6fd9-7b60-4d72-826b-5e3688a21af9": {
                  "name": "Backup CRON",
                  "source": {
                    "repo": "OtterlySpace/railway-postgres-s3-backups",
                    "branch": null,
                    "rootDirectory": null
                  },
                  "variables": {
                    "PG_VERSION": {
                      "isOptional": false,
                      "description": "The Posgres version to use for making the database dump. Defaults to 17",
                      "defaultValue": "17"
                    },
                    "AWS_S3_BUCKET": {
                      "isOptional": false,
                      "description": "The name of the S3 bucket.",
                      "defaultValue": "{{AWS_S3_BUCKET}}"
                    },
                    "AWS_S3_REGION": {
                      "isOptional": false,
                      "description": "The region the S3 bucket is in.",
                      "defaultValue": "{{AWS_S3_REGION}}"
                    },
                    "AWS_S3_ENDPOINT": {
                      "isOptional": true,
                      "description": "A custom S3 endpoint if using a separate S3 compatible service.",
                      "defaultValue": ""
                    },
                    "AWS_ACCESS_KEY_ID": {
                      "isOptional": false,
                      "description": "The access key ID for the IAM user.",
                      "defaultValue": "{{AWS_ACCESS_KEY_ID}}"
                    },
                    "BACKUP_DATABASE_URL": {
                      "isOptional": false,
                      "description": "The database url for the database to backup.",
                      "defaultValue": "{{BACKUP_DATABASE_URL}}"
                    },
                    "BACKUP_CRON_SCHEDULE": {
                      "isOptional": false,
                      "description": "How often should backups be created. Defaults to daily at 5 AM.",
                      "defaultValue": "0 5 * * *"
                    },
                    "AWS_SECRET_ACCESS_KEY": {
                      "isOptional": false,
                      "description": "The secret access key for the IAM user.",
                      "defaultValue": "{{AWS_SECRET_ACCESS_KEY}}"
                    },
                    "DISABLE_S3_CHECKSUM_VALIDATION": {
                      "isOptional": false,
                      "description": "Disables default S3 request checksum validation which is not supported by some S3 providers like Backblaze B2 and Cloudflare R2. This only impacts the communication between the application and the S3 service, not the backup itself. Set this to true if you use any of those services.",
                      "defaultValue": "false"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": false
  },
  "generated_at": "2026-09-22T22:14:50.114Z",
  "generator_version": "0.1.0"
}
