{
  "manifest_version": "1.0.0",
  "template": {
    "id": "19a08b62-59c1-4a34-b398-e423e4fd071b",
    "slug": "IWPjnG",
    "name": "Database Backup + Restore",
    "description": "highly configurable solution for automated database backup and restore",
    "url": "https://railway.com/deploy/IWPjnG",
    "upstream": {
      "repo_url": "https://github.com/JamesWRC/db-backup"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "Database Backup + Restore",
      "source": {
        "repo": "https://github.com/JamesWRC/db-backup"
      },
      "needs_volume": true,
      "volume_mount_path": "/db_backup",
      "http": true
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "Database Backup + Restore",
      "description": "Port used for file server. Don't change this, unless Dockerfile is updated.",
      "secret": false,
      "strategy": "default",
      "default": "80"
    },
    {
      "key": "DB_HOST",
      "service": "Database Backup + Restore",
      "description": "Server Host. Example: containers-us-west-xxx.railway.app",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "DB_NAME",
      "service": "Database Backup + Restore",
      "description": "Schema Name. Example: railway",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "DB_PASS",
      "service": "Database Backup + Restore",
      "description": "(optional if DB doesn't require it) password for the database",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "DB_TYPE",
      "service": "Database Backup + Restore",
      "description": "Type of DB Server to backup. See types: https://github.com/tiredofit/docker-db-backup#database-specific-options",
      "secret": false,
      "strategy": "default",
      "default": "pgsql"
    },
    {
      "key": "DB_USER",
      "service": "Database Backup + Restore",
      "description": "Username for the database",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "S3_PATH",
      "service": "Database Backup + Restore",
      "description": "S3 Pathname to save to (must NOT end in a trailing slash e.g. 'backup')",
      "secret": false,
      "strategy": "default",
      "default": "backup"
    },
    {
      "key": "CHECKSUM",
      "service": "Database Backup + Restore",
      "description": "Either MD5 or SHA1",
      "secret": false,
      "strategy": "default",
      "default": "SHA1"
    },
    {
      "key": "SPLIT_DB",
      "service": "Database Backup + Restore",
      "description": "For each backup, create a new archive. TRUE or FALSE (MySQL and Postgresql Only)",
      "secret": false,
      "strategy": "default",
      "default": "TRUE"
    },
    {
      "key": "SIZE_VALUE",
      "service": "Database Backup + Restore",
      "description": "Useful in logging",
      "secret": false,
      "strategy": "default",
      "default": "megabytes"
    },
    {
      "key": "COMPRESSION",
      "service": "Database Backup + Restore",
      "description": "https://github.com/tiredofit/docker-db-backup#backup-options",
      "secret": false,
      "strategy": "default",
      "default": "ZSTD"
    },
    {
      "key": "FB_PASSWORD",
      "service": "Database Backup + Restore",
      "description": "The admin account username. Used to log in and view, download and upload database backups",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "FB_USERNAME",
      "service": "Database Backup + Restore",
      "description": "The admin account username. Used to log in and view, download and upload database backups",
      "secret": false,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "DB_DUMP_FREQ",
      "service": "Database Backup + Restore",
      "description": "How often to do a dump, in minutes after the first backup. Defaults to 1440 minutes, or once per day.",
      "secret": false,
      "strategy": "default",
      "default": "1440"
    },
    {
      "key": "BACKUP_LOCATION",
      "service": "Database Backup + Restore",
      "description": "https://github.com/tiredofit/docker-db-backup#container-options",
      "secret": false,
      "strategy": "default",
      "default": "S3"
    },
    {
      "key": "DB_CLEANUP_TIME",
      "service": "Database Backup + Restore",
      "description": "Value in minutes to delete old backups (only fired when dump freqency fires). 1440 would delete anything above 1 day old. You don't need to set this variable if you want to hold onto everything. 43200 = 30 days. Backups after 30 days will be deleted. LOCAL ONLY. Wont remove any S3 backups",
      "secret": false,
      "strategy": "default",
      "default": "43200"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "IWPjnG"
      }
    },
    "cli": "railway deploy --template IWPjnG",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "19a08b62-59c1-4a34-b398-e423e4fd071b",
            "serializedConfig": {
              "services": {
                "4458de54-2ef0-4dcc-9c4f-840a1b7a0a99": {
                  "name": "Database Backup + Restore",
                  "build": {},
                  "deploy": {
                    "startCommand": ""
                  },
                  "source": {
                    "repo": "https://github.com/JamesWRC/db-backup",
                    "rootDirectory": "/"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "Port used for file server. Don't change this, unless Dockerfile is updated.",
                      "defaultValue": "80"
                    },
                    "DB_HOST": {
                      "isOptional": false,
                      "description": "Server Host. Example: containers-us-west-xxx.railway.app",
                      "defaultValue": "{{DB_HOST}}"
                    },
                    "DB_NAME": {
                      "isOptional": false,
                      "description": "Schema Name. Example: railway",
                      "defaultValue": "{{DB_NAME}}"
                    },
                    "DB_PASS": {
                      "isOptional": false,
                      "description": "(optional if DB doesn't require it) password for the database",
                      "defaultValue": "{{DB_PASS}}"
                    },
                    "DB_PORT": {
                      "isOptional": true,
                      "description": "Port used by your database."
                    },
                    "DB_TYPE": {
                      "isOptional": false,
                      "description": "Type of DB Server to backup. See types: https://github.com/tiredofit/docker-db-backup#database-specific-options",
                      "defaultValue": "pgsql"
                    },
                    "DB_USER": {
                      "isOptional": false,
                      "description": "Username for the database",
                      "defaultValue": "{{DB_USER}}"
                    },
                    "S3_HOST": {
                      "isOptional": true,
                      "description": "Hostname of S3-compatible service"
                    },
                    "S3_PATH": {
                      "isOptional": true,
                      "description": "S3 Pathname to save to (must NOT end in a trailing slash e.g. 'backup')",
                      "defaultValue": "backup"
                    },
                    "CHECKSUM": {
                      "isOptional": true,
                      "description": "Either MD5 or SHA1",
                      "defaultValue": "SHA1"
                    },
                    "SPLIT_DB": {
                      "isOptional": true,
                      "description": "For each backup, create a new archive. TRUE or FALSE (MySQL and Postgresql Only)",
                      "defaultValue": "TRUE"
                    },
                    "S3_BUCKET": {
                      "isOptional": true,
                      "description": "S3 Bucket name e.g. mybucket"
                    },
                    "S3_KEY_ID": {
                      "isOptional": true,
                      "description": "S3 Key ID"
                    },
                    "S3_REGION": {
                      "isOptional": true,
                      "description": "Define region in which bucket is defined. Example: ap-northeast-2",
                      "defaultValue": ""
                    },
                    "SIZE_VALUE": {
                      "isOptional": true,
                      "description": "Useful in logging",
                      "defaultValue": "megabytes"
                    },
                    "COMPRESSION": {
                      "isOptional": false,
                      "description": "https://github.com/tiredofit/docker-db-backup#backup-options",
                      "defaultValue": "ZSTD"
                    },
                    "FB_PASSWORD": {
                      "isOptional": false,
                      "description": "The admin account username. Used to log in and view, download and upload database backups",
                      "defaultValue": "{{FB_PASSWORD}}"
                    },
                    "FB_USERNAME": {
                      "isOptional": false,
                      "description": "The admin account username. Used to log in and view, download and upload database backups",
                      "defaultValue": "{{FB_USERNAME}}"
                    },
                    "DB_DUMP_FREQ": {
                      "isOptional": true,
                      "description": "How often to do a dump, in minutes after the first backup. Defaults to 1440 minutes, or once per day.",
                      "defaultValue": "1440"
                    },
                    "S3_KEY_SECRET": {
                      "isOptional": true,
                      "description": "S3 Key Secret "
                    },
                    "BACKUP_LOCATION": {
                      "isOptional": true,
                      "description": "https://github.com/tiredofit/docker-db-backup#container-options",
                      "defaultValue": "S3"
                    },
                    "DB_CLEANUP_TIME": {
                      "isOptional": true,
                      "description": "Value in minutes to delete old backups (only fired when dump freqency fires). 1440 would delete anything above 1 day old. You don't need to set this variable if you want to hold onto everything. 43200 = 30 days. Backups after 30 days will be deleted. LOCAL ONLY. Wont remove any S3 backups",
                      "defaultValue": "43200"
                    }
                  },
                  "networking": {
                    "tcpProxies": {},
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  },
                  "volumeMounts": {
                    "4458de54-2ef0-4dcc-9c4f-840a1b7a0a99": {
                      "mountPath": "/db_backup"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-21T22:14:44.200Z",
  "generator_version": "0.1.0"
}
