[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:satishub:configuration":3},{"type":4,"package":5,"activeDoc":115,"seo":172,"alternates":174,"editable":177},"package",{"id":6,"title":7,"slug":8,"url":9,"excerpt":10,"formatted_price":11,"type":12,"github_url":15,"external_url":16,"plumb":17,"category":26,"tags":30,"cover":37,"blocks":38,"toc":49,"docs":57},1,"SatisHub","satishub","\u002Ftr\u002Fpaketler\u002Fsatishub","Sell private Composer packages with license-based access control and FilamentPHP.","$99",{"value":13,"label":14},"paid","Paid","https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs","https:\u002F\u002Fafsakar.lemonsqueezy.com\u002Fcheckout\u002Fbuy\u002Ff2fb0179-c8cd-4be6-bb0f-677381578fe8",{"version":18,"security":19,"abandoned":20,"composite":21,"ecosystem":22,"checked_at":23,"maintenance":24,"url":25},"v1.2.0",85,false,88.18,100,"2026-08-15T21:35:12+00:00",88.1,"https:\u002F\u002Fplumbphp.dev\u002Fafsakar\u002Fsatishub",{"id":27,"title":28,"slug":29},3,"FilamentPHP","filamentphp",[31,34],{"id":32,"title":33,"slug":33},13,"v4",{"id":35,"title":36,"slug":36},14,"v5",null,[39,43,46],{"type":40,"data":41},"general.rich-text",{"content":42},"\u003Cp align=\"center\" class=\"filament-hidden\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fafsakar\u002Fsatishub-docs\u002Fmain\u002Fassets\u002Fsatishub.jpeg\" alt=\"SatisHub Logo\" \u002F>\n\u003C\u002Fp>\n\u003Cp>SatisHub is a Laravel package for selling private Composer packages with license-based access control.\u003C\u002Fp>\n\u003Cp>It includes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>multi-provider checkout (Stripe, Polar, LemonSqueezy)\u003C\u002Fli>\n\u003Cli>webhook processing and order\u002Flicense lifecycle handling\u003C\u002Fli>\n\u003Cli>private Composer repository authentication\u003C\u002Fli>\n\u003Cli>license activation\u002Fvalidation APIs\u003C\u002Fli>\n\u003Cli>Filament resources for package operations\u003C\u002Fli>\n\u003C\u002Ful>",{"type":40,"data":44},{"content":45},"\u003Ch2 id=\"quick-start\">Quick Start\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-bash\">composer require afsakar\u002Fsatishub\nphp artisan vendor:publish --tag=satishub-config\nphp artisan migrate\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Host app requirements:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>register \u003Ccode>repo.auth\u003C\u002Fcode> alias in \u003Ccode>bootstrap\u002Fapp.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>register \u003Ccode>\\Afsakar\\Satishub\\Filament\\SatisPlugin::make()\u003C\u002Fcode> in your panel provider\u003C\u002Fli>\n\u003C\u002Ful>",{"type":40,"data":47},{"content":48},"\u003Ch2 id=\"documentation\">Documentation\u003C\u002Fh2>\n\u003Cp>All detailed setup, configuration, provider\u002Fwebhook examples, API usage, operations, and troubleshooting are in \u003Ccode>docs\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F01-introduction.md\">Introduction\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F02-installation.md\">Installation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F03-configuration.md\">Configuration\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F04-architecture.md\">Architecture\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F05-data-model.md\">Data Model\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F06-api-reference.md\">API Reference\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F07-admin-panel.md\">Admin Panel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F08-commands.md\">Commands\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F09-testing.md\">Testing\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F10-operations.md\">Operations\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F11-troubleshooting.md\">Troubleshooting\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fafsakar\u002Fsatishub-docs\u002Fblob\u002Fmain\u002Fdocs\u002F12-ai-context-files.md\">AI Context Files\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>",[50,54],{"id":51,"label":52,"level":53},"quick-start","Quick Start",2,{"id":55,"label":56,"level":53},"documentation","Documentation",[58,62,66,70,75,80,85,90,95,100,105,110],{"id":6,"title":59,"slug":60,"url":61},"Introduction","introduction","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fintroduction",{"id":53,"title":63,"slug":64,"url":65},"Installation","installation","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Finstallation",{"id":27,"title":67,"slug":68,"url":69},"Configuration","configuration","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration",{"id":71,"title":72,"slug":73,"url":74},4,"Architecture","architecture","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Farchitecture",{"id":76,"title":77,"slug":78,"url":79},5,"Data Model","data-model","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fdata-model",{"id":81,"title":82,"slug":83,"url":84},6,"API Reference","api-reference","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fapi-reference",{"id":86,"title":87,"slug":88,"url":89},7,"Admin Panel","admin-panel","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fadmin-panel",{"id":91,"title":92,"slug":93,"url":94},8,"Commands","commands","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fcommands",{"id":96,"title":97,"slug":98,"url":99},9,"Testing","testing","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Ftesting",{"id":101,"title":102,"slug":103,"url":104},10,"Operations","operations","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Foperations",{"id":106,"title":107,"slug":108,"url":109},11,"Troubleshooting","troubleshooting","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Ftroubleshooting",{"id":111,"title":112,"slug":113,"url":114},12,"AI Context Files","ai-context-files","\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fai-context-files",{"id":27,"title":67,"slug":68,"url":69,"blocks":116,"toc":138},[117,120,123,126,129,132,135],{"type":40,"data":118},{"content":119},"\u003Ch2 id=\"main-config-file\">Main Config File\u003C\u002Fh2>\n\u003Cp>Primary package config lives in \u003Ccode>config\u002Fsatishub.php\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Main sections:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>user_model\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>repository\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>support.attachments\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>licensing\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>billing\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>",{"type":40,"data":121},{"content":122},"\u003Ch2 id=\"billing\">Billing\u003C\u002Fh2>\n\u003Cp>Global keys:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>BILLING_DEFAULT_PROVIDER\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>BILLING_USE_DEFAULT_PROVIDER_GLOBALLY\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>BILLING_WEBHOOK_PATH\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Provider keys are grouped under \u003Ccode>satishub.billing.providers\u003C\u002Fcode> for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Polar\u003C\u002Fli>\n\u003Cli>Stripe\u003C\u002Fli>\n\u003Cli>LemonSqueezy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each provider includes API credentials and webhook signature options.\u003C\u002Fp>\n\u003Ch3 id=\"provider-config-example\">Provider Config Example\u003C\u002Fh3>\n\u003Cp>\u003Ccode>config\u002Fsatishub.php\u003C\u002Fcode> provider section pattern:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">'providers' =&gt; [\n    'stripe' =&gt; [\n        'label' =&gt; 'Stripe',\n        'gateway' =&gt; \\Afsakar\\Satishub\\Billing\\Gateways\\StripeCheckoutGateway::class,\n        'api_base' =&gt; env('STRIPE_API_BASE', 'https:\u002F\u002Fapi.stripe.com'),\n        'secret_key' =&gt; env('STRIPE_SECRET'),\n        'customer_creation' =&gt; env('STRIPE_CUSTOMER_CREATION', 'always'),\n        'webhook' =&gt; [\n            'secret' =&gt; env('STRIPE_WEBHOOK_SECRET'),\n            'signature_header' =&gt; env('STRIPE_WEBHOOK_SIGNATURE_HEADER', 'stripe-signature'),\n            'signature_algorithm' =&gt; env('STRIPE_WEBHOOK_SIGNATURE_ALGORITHM', 'sha256'),\n            'signature_style' =&gt; env('STRIPE_WEBHOOK_SIGNATURE_STYLE', 'stripe'),\n        ],\n    ],\n],\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"webhook-processor-mapping-example\">Webhook Processor Mapping Example\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-php\">'webhook_processors' =&gt; [\n    'stripe' =&gt; \\Afsakar\\Satishub\\Services\\Billing\\StripeWebhookService::class,\n    'polar' =&gt; \\Afsakar\\Satishub\\Services\\Billing\\PolarWebhookService::class,\n    'lemon_squeezy' =&gt; \\Afsakar\\Satishub\\Services\\Billing\\LemonSqueezyWebhookService::class,\n],\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"catalog-sync-driver-mapping-example\">Catalog Sync Driver Mapping Example\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-php\">'catalog_sync_drivers' =&gt; [\n    'stripe' =&gt; \\Afsakar\\Satishub\\Billing\\CatalogSync\\Drivers\\StripeCatalogSyncDriver::class,\n    'polar' =&gt; \\Afsakar\\Satishub\\Billing\\CatalogSync\\Drivers\\PolarCatalogSyncDriver::class,\n    'lemon_squeezy' =&gt; \\Afsakar\\Satishub\\Billing\\CatalogSync\\Drivers\\LemonSqueezyCatalogSyncDriver::class,\n],\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"order-billing-link-resolver-mapping-example\">Order Billing Link Resolver Mapping Example\u003C\u002Fh3>\n\u003Cp>Order invoice\u002Freceipt links are resolved per provider. You can plug custom logic with:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">'order_link_resolvers' =&gt; [\n    'my_provider' =&gt; \\App\\Billing\\MyProviderOrderLinkResolver::class,\n],\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Resolver class expectations:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>class is container-resolvable\u003C\u002Fli>\n\u003Cli>either callable (\u003Ccode>__invoke(Order $order): array\u003C\u002Fcode>) or has \u003Ccode>resolve(Order $order): array\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>returns an array with optional keys:\n\u003Cul>\n\u003Cli>\u003Ccode>invoice_url\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>receipt_url\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>customer_portal_url\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>",{"type":40,"data":124},{"content":125},"\u003Ch2 id=\"adding-a-custom-provider\">Adding a Custom Provider\u003C\u002Fh2>\n\u003Cp>To add \u003Ccode>my_provider\u003C\u002Fcode>, configure four layers:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>billing.providers.my_provider.gateway\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>billing.webhook_processors.my_provider\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>billing.catalog_sync_drivers.my_provider\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>billing.order_link_resolvers.my_provider\u003C\u002Fcode> (recommended for invoice\u002Freceipt links)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>You can keep core package code unchanged if your classes honor package contracts.\u003C\u002Fp>",{"type":40,"data":127},{"content":128},"\u003Ch2 id=\"repository-and-docs\">Repository and Docs\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ccode>REPOSITORY_GITHUB_TOKEN\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>REPOSITORY_ARTIFACTS_DISK\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>REPOSITORY_DIST_URL_TTL_MINUTES\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>REPOSITORY_DOCS_MAX_FILE_BYTES\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>REPOSITORY_DOCS_MAX_BUNDLE_BYTES\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>REPOSITORY_DOCS_MAX_BUNDLE_DOCUMENTS\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>",{"type":40,"data":130},{"content":131},"\u003Ch2 id=\"license-key-generation\">License Key Generation\u003C\u002Fh2>\n\u003Cp>License key generation is configurable via:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>satishub.licensing.key_generator\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This value must be a container-resolvable class that implements:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>Afsakar\\Satishub\\Services\\Licensing\\Contracts\\LicenseKeyGenerator\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Default generator:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>Afsakar\\Satishub\\Services\\Licensing\\DefaultLicenseKeyGenerator\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">'licensing' =&gt; [\n    'key_generator' =&gt; \\App\\Licensing\\MyLicenseKeyGenerator::class,\n],\n\u003C\u002Fcode>\u003C\u002Fpre>",{"type":40,"data":133},{"content":134},"\u003Ch2 id=\"support-attachments\">Support Attachments\u003C\u002Fh2>\n\u003Cp>Attachment constraints are configurable with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>satishub.support.attachments.max_files\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>satishub.support.attachments.max_file_kb\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>satishub.support.attachments.allowed_mime_types\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Support admin recipients can be configured with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>satishub.support.admin_model\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>satishub.support.admin_guard\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Fallback order used by the service:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>satishub.support.admin_model\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>satishub.user_model\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>This allows installations without a dedicated \u003Ccode>Admin\u003C\u002Fcode> model to continue with the user model.\u003C\u002Fp>\n\u003Cp>If \u003Ccode>admin_model\u003C\u002Fcode> is set to your \u003Ccode>User\u003C\u002Fcode> model, you can also set \u003Ccode>admin_guard=web\u003C\u002Fcode> to treat web-authenticated users as support admins in admin-only support actions.\u003C\u002Fp>",{"type":40,"data":136},{"content":137},"\u003Ch2 id=\"minimum-environment-template\">Minimum Environment Template\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-dotenv\">BILLING_DEFAULT_PROVIDER=stripe\nBILLING_USE_DEFAULT_PROVIDER_GLOBALLY=false\nBILLING_WEBHOOK_PATH=billing\u002Fwebhook\u002F{provider}\n\nSTRIPE_SECRET=\nSTRIPE_WEBHOOK_SECRET=\n\nPOLAR_ACCESS_TOKEN=\nPOLAR_WEBHOOK_SECRET=\n\nLEMON_SQUEEZY_API_KEY=\nLEMON_SQUEEZY_STORE=\nLEMON_SQUEEZY_WEBHOOK_SECRET=\n\nREPOSITORY_GITHUB_TOKEN=\nREPOSITORY_ARTIFACTS_DISK=local\n\u003C\u002Fcode>\u003C\u002Fpre>",[139,142,145,148,151,154,157,160,163,166,169],{"id":140,"label":141,"level":53},"main-config-file","Main Config File",{"id":143,"label":144,"level":53},"billing","Billing",{"id":146,"label":147,"level":27},"provider-config-example","Provider Config Example",{"id":149,"label":150,"level":27},"webhook-processor-mapping-example","Webhook Processor Mapping Example",{"id":152,"label":153,"level":27},"catalog-sync-driver-mapping-example","Catalog Sync Driver Mapping Example",{"id":155,"label":156,"level":27},"order-billing-link-resolver-mapping-example","Order Billing Link Resolver Mapping Example",{"id":158,"label":159,"level":53},"adding-a-custom-provider","Adding a Custom Provider",{"id":161,"label":162,"level":53},"repository-and-docs","Repository and Docs",{"id":164,"label":165,"level":53},"license-key-generation","License Key Generation",{"id":167,"label":168,"level":53},"support-attachments","Support Attachments",{"id":170,"label":171,"level":53},"minimum-environment-template","Minimum Environment Template",{"html":173},"\u003Ctitle>Configuration - Azad Furkan Şakar\u003C\u002Ftitle>\n\u003Cmeta name=\"description\" content=\"Main Config File Primary package config lives in config\u002Fsatishub.php . Main sections: user_model repository support.attachments licensing billing\">\n\u003Cmeta name=\"keywords\" content=\"laravel, backend, developer, php\">\n\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\">\n\u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https:\u002F\u002Fafsakar.dev\u002Fpackages\u002Fsatishub\u002Fconfiguration\">\n\u003Clink rel=\"alternate\" hreflang=\"tr\" href=\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\">\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fafsakar.dev\u002Fpackages\u002Fsatishub\u002Fconfiguration\">\n\u003Cmeta name=\"robots\" content=\"index, follow\">\n\u003Cmeta property=\"og:title\" content=\"Configuration\">\n\u003Cmeta property=\"og:description\" content=\"Main Config File Primary package config lives in config\u002Fsatishub.php . Main sections: user_model repository support.attachments licensing billing\">\n\u003Cmeta property=\"og:type\" content=\"website\">\n\u003Cmeta property=\"og:site_name\" content=\"Azad Furkan Şakar\">\n\u003Cmeta property=\"og:url\" content=\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\">\n\u003Cmeta property=\"og:image\" content=\"https:\u002F\u002Fafsakar.dev\u002Fstorage\u002Fog-images\u002Fpackages\u002F1-tr.png\">\n\n\u003Cmeta name=\"twitter:site\" content=\"afsakar\">\n\u003Cmeta name=\"twitter:card\" content=\"summary_large_image\">\n\u003Cmeta name=\"twitter:image\" content=\"https:\u002F\u002Fafsakar.dev\u002Fstorage\u002Fog-images\u002Fpackages\u002F1-tr.png\">\n\u003Cmeta name=\"twitter:title\" content=\"Configuration\">\n\u003Cmeta name=\"twitter:description\" content=\"Main Config File Primary package config lives in config\u002Fsatishub.php . Main sections: user_model repository support.attachments licensing billing\">\n\u003Cmeta name=\"twitter:url\" content=\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\">\n\u003Cscript type=\"application\u002Fld+json\">{\"@context\":\"https:\u002F\u002Fschema.org\",\"@type\":\"WebPage\",\"name\":\"Configuration\",\"description\":\"Main Config File Primary package config lives in config\u002Fsatishub.php . Main sections: user_model repository support.attachments licensing billing\",\"url\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\",\"image\":\"https:\u002F\u002Fafsakar.dev\u002Fstorage\u002Fog-images\u002Fpackages\u002F1-tr.png\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\"}}\u003C\u002Fscript>\u003Cscript type=\"application\u002Fld+json\">{\"@context\":\"https:\u002F\u002Fschema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Paketler\",\"item\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SatisHub\",\"item\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Configuration\",\"item\":\"https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration\"}]}\u003C\u002Fscript>\u003Cscript type=\"application\u002Fld+json\">{\"@context\":\"https:\u002F\u002Fschema.org\",\"@type\":\"Person\",\"name\":\"Azad Furkan Şakar\",\"url\":\"https:\u002F\u002Fafsakar.dev\",\"@id\":\"https:\u002F\u002Fafsakar.dev\u002F#person\",\"jobTitle\":\"Backend Developer\",\"image\":\"https:\u002F\u002Fafsakar.dev\u002Fstorage\u002Fsettings\u002Fseo\u002F01KZB42F3FQQSDTQRYYX861RAA.jpeg\",\"sameAs\":[\"https:\u002F\u002Fx.com\u002Fafsakar\",\"https:\u002F\u002Flinkedin.com\u002Fin\u002Fafsakar\",\"https:\u002F\u002Fgithub.com\u002Fafsakar\"]}\u003C\u002Fscript>",{"en":175,"tr":176},"https:\u002F\u002Fafsakar.dev\u002Fpackages\u002Fsatishub\u002Fconfiguration","https:\u002F\u002Fafsakar.dev\u002Ftr\u002Fpaketler\u002Fsatishub\u002Fconfiguration",{"type":178,"id":27},"packageDoc"]