POST https://kbin.spritesserver.nl/f/inbox

SharedInboxController

Request

GET Parameters

None

POST Parameters

None

Uploaded Files

None

Request Attributes

Key Value
_controller
"App\Controller\ActivityPub\SharedInboxController"
_firewall_context
"security.firewall.map.context.main"
_route
"ap_shared_inbox"
_route_params
[]
_security_firewall_run
"_security_main"
_stopwatch_token
"48f28e"

Request Headers

Header Value
accept
"*/*"
accept-encoding
"gzip"
content-length
"5723"
content-type
"application/activity+json"
date
"Wed, 12 Nov 2025 01:40:25 GMT"
digest
"SHA-256=Dl7Th4Ejhu8oPEC+fZJZl++GTmgSB3OneqU1J9W7AbU="
host
"kbin.spritesserver.nl"
signature
"keyId="https://programming.dev/c/programmer_humor#main-key",algorithm="hs2019",headers="(request-target) content-type date digest host",signature="lDhkMJzXYxab2MSSAVqHUGPUJJ/r66CeGx7tofUkWOAGnzNjAuTggD+PKKDRMSI3Z9sXOmDrRt1FvnCR6LsTSUtguwNOoNP6Duh+lsCqwbBxVdZ8g9pVwsWPGBkfVT2lNHiv27DPZYeM9KXwjtlbu8dPwZi0suko8QIe5VTj0OPZNw43zpi/1bpKAjw/XRq0O8pDANKmeWmdPyFlMh1wImBE0IZBIiR9e0vkZnSKraL9N3X/Xx45SGTD42jBRlmnha3kmxQXNF8kQw9BgXbiJd6KL2+KPjlFHi/MSHelYBJEB2mbPr7i0eLoLo8MFjyqOLNo/B02V4VtCXqxwoH2aA==""
user-agent
"Lemmy/0.19.13; +https://programming.dev"
x-php-ob-level
"1"

Request Content

Pretty

{
    "@context": [
        "https:\/\/join-lemmy.org\/context.json",
        "https:\/\/www.w3.org\/ns\/activitystreams"
    ],
    "actor": "https:\/\/programming.dev\/c\/programmer_humor",
    "to": [
        "https:\/\/www.w3.org\/ns\/activitystreams#Public"
    ],
    "object": {
        "id": "https:\/\/lemmy.cafe\/activities\/update\/5ed80b35-3d7b-4a32-990c-df0fc8a59d61",
        "actor": "https:\/\/lemmy.cafe\/u\/adminofoz",
        "@context": [
            "https:\/\/join-lemmy.org\/context.json",
            "https:\/\/www.w3.org\/ns\/activitystreams"
        ],
        "to": [
            "https:\/\/www.w3.org\/ns\/activitystreams#Public"
        ],
        "object": {
            "type": "Note",
            "id": "https:\/\/lemmy.cafe\/comment\/14470760",
            "attributedTo": "https:\/\/lemmy.cafe\/u\/adminofoz",
            "to": [
                "https:\/\/www.w3.org\/ns\/activitystreams#Public"
            ],
            "cc": [
                "https:\/\/programming.dev\/c\/programmer_humor",
                "https:\/\/lemmy.world\/u\/themaninblack"
            ],
            "content": "<p>By no means am I the microservices guy. Im more of a self hosted person than anything and used to always be a monolith guy and would still prefer that in many situations. But now I would at least \u201cwrap\u201d the monolith with supplemental self hosted microservices.<\/p>\n<p>But this is the logic as I understand it and the key thing. If a malicious actor compromises one utility they likely made a lot of noise doing it, a lot of that can be mitigated with a proactive WAF. There are a few free solutions here\nCrowdsec WAF (ModSecurity, i think is another, working from memory could be wrong) has a decent signature detection and shared banned list.  If you couple it with proper alerting you should be able to see, watch and isolate attackers in near real time. So even if they get the gateway and you messed up alerting on WAF, you still have your fall back EDR alert for when gatewayUser starts issuing ping commands and performing asset discovery. So  should see it days before then (unless 0 day or nation state etc).<\/p>\n<p>They will still do damage you are absolutely right. But let\u2019s assume a three tiered microservice approach where you have something like pocketdb for Auth, Umami for analytics and postgres for paid api data. Now an issue in pocketbase can absolutely ruin you. But you know what wont ruin you. Metadata storage of their profile picture in postgres. Sure one user gets access to your paid api data but they don\u2019t have your user data and no one else is impacted.<\/p>\n<p>Additionally look at actual CVEs related to pocketbase and you will find a lot to do with OATH so its simple. Disable OATH for best security. Put a waf in front of your app using something like traefik with crowdsec catch bad actors when they try to abuse your non existent OATH endpoint and ban them instantly.<\/p>\n<p>Is it perfect, no. Any determined actor will find a way into any system given enough time. But a layered approach like this is best in my opinion.  Of course it needs modified for every system this is just one example.<\/p>\n",
            "inReplyTo": "https:\/\/lemmy.world\/comment\/20444139",
            "mediaType": "text\/html",
            "source": {
                "content": "By no means am I the microservices guy. Im more of a self hosted person than anything and used to always be a monolith guy and would still prefer that in many situations. But now I would at least \"wrap\" the monolith with supplemental self hosted microservices. \n\nBut this is the logic as I understand it and the key thing. If a malicious actor compromises one utility they likely made a lot of noise doing it, a lot of that can be mitigated with a proactive WAF. There are a few free solutions here\n Crowdsec WAF (ModSecurity, i think is another, working from memory could be wrong) has a decent signature detection and shared banned list.  If you couple it with proper alerting you should be able to see, watch and isolate attackers in near real time. So even if they get the gateway and you messed up alerting on WAF, you still have your fall back EDR alert for when gatewayUser starts issuing ping commands and performing asset discovery. So  should see it days before then (unless 0 day or nation state etc).  \n\nThey will still do damage you are absolutely right. But let's assume a three tiered microservice approach where you have something like pocketdb for Auth, Umami for analytics and postgres for paid api data. Now an issue in pocketbase can absolutely ruin you. But you know what wont ruin you. Metadata storage of their profile picture in postgres. Sure one user gets access to your paid api data but they don't have your user data and no one else is impacted. \n\nAdditionally look at actual CVEs related to pocketbase and you will find a lot to do with OATH so its simple. Disable OATH for best security. Put a waf in front of your app using something like traefik with crowdsec catch bad actors when they try to abuse your non existent OATH endpoint and ban them instantly.\n\nIs it perfect, no. Any determined actor will find a way into any system given enough time. But a layered approach like this is best in my opinion.  Of course it needs modified for every system this is just one example. ",
                "mediaType": "text\/markdown"
            },
            "published": "2025-11-12T01:00:02.131575Z",
            "updated": "2025-11-12T01:39:58.008023Z",
            "tag": [
                {
                    "href": "https:\/\/lemmy.world\/u\/themaninblack",
                    "name": "@themaninblack@lemmy.world",
                    "type": "Mention"
                }
            ],
            "distinguished": false,
            "language": {
                "identifier": "en",
                "name": "English"
            },
            "audience": "https:\/\/programming.dev\/c\/programmer_humor",
            "attachment": []
        },
        "cc": [
            "https:\/\/programming.dev\/c\/programmer_humor",
            "https:\/\/lemmy.world\/u\/themaninblack"
        ],
        "tag": [
            {
                "href": "https:\/\/lemmy.world\/u\/themaninblack",
                "name": "@themaninblack@lemmy.world",
                "type": "Mention"
            }
        ],
        "type": "Update",
        "audience": "https:\/\/programming.dev\/c\/programmer_humor"
    },
    "cc": [
        "https:\/\/programming.dev\/c\/programmer_humor\/followers"
    ],
    "type": "Announce",
    "id": "https:\/\/programming.dev\/activities\/announce\/update\/d78b7aa9-9a04-4f15-a1d4-8e43e409f8a8"
}

Raw

{"@context":["https://join-lemmy.org/context.json","https://www.w3.org/ns/activitystreams"],"actor":"https://programming.dev/c/programmer_humor","to":["https://www.w3.org/ns/activitystreams#Public"],"object":{"id":"https://lemmy.cafe/activities/update/5ed80b35-3d7b-4a32-990c-df0fc8a59d61","actor":"https://lemmy.cafe/u/adminofoz","@context":["https://join-lemmy.org/context.json","https://www.w3.org/ns/activitystreams"],"to":["https://www.w3.org/ns/activitystreams#Public"],"object":{"type":"Note","id":"https://lemmy.cafe/comment/14470760","attributedTo":"https://lemmy.cafe/u/adminofoz","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://programming.dev/c/programmer_humor","https://lemmy.world/u/themaninblack"],"content":"<p>By no means am I the microservices guy. Im more of a self hosted person than anything and used to always be a monolith guy and would still prefer that in many situations. But now I would at least “wrap” the monolith with supplemental self hosted microservices.</p>\n<p>But this is the logic as I understand it and the key thing. If a malicious actor compromises one utility they likely made a lot of noise doing it, a lot of that can be mitigated with a proactive WAF. There are a few free solutions here\nCrowdsec WAF (ModSecurity, i think is another, working from memory could be wrong) has a decent signature detection and shared banned list.  If you couple it with proper alerting you should be able to see, watch and isolate attackers in near real time. So even if they get the gateway and you messed up alerting on WAF, you still have your fall back EDR alert for when gatewayUser starts issuing ping commands and performing asset discovery. So  should see it days before then (unless 0 day or nation state etc).</p>\n<p>They will still do damage you are absolutely right. But let’s assume a three tiered microservice approach where you have something like pocketdb for Auth, Umami for analytics and postgres for paid api data. Now an issue in pocketbase can absolutely ruin you. But you know what wont ruin you. Metadata storage of their profile picture in postgres. Sure one user gets access to your paid api data but they don’t have your user data and no one else is impacted.</p>\n<p>Additionally look at actual CVEs related to pocketbase and you will find a lot to do with OATH so its simple. Disable OATH for best security. Put a waf in front of your app using something like traefik with crowdsec catch bad actors when they try to abuse your non existent OATH endpoint and ban them instantly.</p>\n<p>Is it perfect, no. Any determined actor will find a way into any system given enough time. But a layered approach like this is best in my opinion.  Of course it needs modified for every system this is just one example.</p>\n","inReplyTo":"https://lemmy.world/comment/20444139","mediaType":"text/html","source":{"content":"By no means am I the microservices guy. Im more of a self hosted person than anything and used to always be a monolith guy and would still prefer that in many situations. But now I would at least \"wrap\" the monolith with supplemental self hosted microservices. \n\nBut this is the logic as I understand it and the key thing. If a malicious actor compromises one utility they likely made a lot of noise doing it, a lot of that can be mitigated with a proactive WAF. There are a few free solutions here\n Crowdsec WAF (ModSecurity, i think is another, working from memory could be wrong) has a decent signature detection and shared banned list.  If you couple it with proper alerting you should be able to see, watch and isolate attackers in near real time. So even if they get the gateway and you messed up alerting on WAF, you still have your fall back EDR alert for when gatewayUser starts issuing ping commands and performing asset discovery. So  should see it days before then (unless 0 day or nation state etc).  \n\nThey will still do damage you are absolutely right. But let's assume a three tiered microservice approach where you have something like pocketdb for Auth, Umami for analytics and postgres for paid api data. Now an issue in pocketbase can absolutely ruin you. But you know what wont ruin you. Metadata storage of their profile picture in postgres. Sure one user gets access to your paid api data but they don't have your user data and no one else is impacted. \n\nAdditionally look at actual CVEs related to pocketbase and you will find a lot to do with OATH so its simple. Disable OATH for best security. Put a waf in front of your app using something like traefik with crowdsec catch bad actors when they try to abuse your non existent OATH endpoint and ban them instantly.\n\nIs it perfect, no. Any determined actor will find a way into any system given enough time. But a layered approach like this is best in my opinion.  Of course it needs modified for every system this is just one example. ","mediaType":"text/markdown"},"published":"2025-11-12T01:00:02.131575Z","updated":"2025-11-12T01:39:58.008023Z","tag":[{"href":"https://lemmy.world/u/themaninblack","name":"@themaninblack@lemmy.world","type":"Mention"}],"distinguished":false,"language":{"identifier":"en","name":"English"},"audience":"https://programming.dev/c/programmer_humor","attachment":[]},"cc":["https://programming.dev/c/programmer_humor","https://lemmy.world/u/themaninblack"],"tag":[{"href":"https://lemmy.world/u/themaninblack","name":"@themaninblack@lemmy.world","type":"Mention"}],"type":"Update","audience":"https://programming.dev/c/programmer_humor"},"cc":["https://programming.dev/c/programmer_humor/followers"],"type":"Announce","id":"https://programming.dev/activities/announce/update/d78b7aa9-9a04-4f15-a1d4-8e43e409f8a8"}

Response

Response Headers

Header Value
cache-control
"no-cache, private"
content-type
"application/activity+json"
date
"Wed, 12 Nov 2025 01:40:26 GMT"
x-debug-token
"dd1f4a"

Cookies

Request Cookies

No request cookies

Response Cookies

No response cookies

Session 1

Session Metadata

No session metadata

Session Attributes

No session attributes

Session Usage

1 Usages
Stateless check enabled
Usage
Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage:41
[
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php"
    "line" => 41
    "function" => "getMetadataBag"
    "class" => "Symfony\Component\HttpFoundation\Session\Session"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Authenticator/RememberMeAuthenticator.php"
    "line" => 69
    "function" => "getToken"
    "class" => "Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Authentication/AuthenticatorManager.php"
    "line" => 111
    "function" => "supports"
    "class" => "Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Firewall/AuthenticatorManagerListener.php"
    "line" => 34
    "function" => "supports"
    "class" => "Symfony\Component\Security\Http\Authentication\AuthenticatorManager"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Authenticator/Debug/TraceableAuthenticatorManagerListener.php"
    "line" => 40
    "function" => "supports"
    "class" => "Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-bundle/Debug/WrappedLazyListener.php"
    "line" => 38
    "function" => "supports"
    "class" => "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Firewall/AbstractListener.php"
    "line" => 25
    "function" => "supports"
    "class" => "Symfony\Bundle\SecurityBundle\Debug\WrappedLazyListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-bundle/Security/LazyFirewallContext.php"
    "line" => 60
    "function" => "__invoke"
    "class" => "Symfony\Component\Security\Http\Firewall\AbstractListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-bundle/Debug/TraceableFirewallListener.php"
    "line" => 80
    "function" => "__invoke"
    "class" => "Symfony\Bundle\SecurityBundle\Security\LazyFirewallContext"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/security-http/Firewall.php"
    "line" => 95
    "function" => "callListeners"
    "class" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
    "line" => 116
    "function" => "onKernelRequest"
    "class" => "Symfony\Component\Security\Http\Firewall"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/event-dispatcher/EventDispatcher.php"
    "line" => 220
    "function" => "__invoke"
    "class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/event-dispatcher/EventDispatcher.php"
    "line" => 56
    "function" => "callListeners"
    "class" => "Symfony\Component\EventDispatcher\EventDispatcher"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
    "line" => 139
    "function" => "dispatch"
    "class" => "Symfony\Component\EventDispatcher\EventDispatcher"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/http-kernel/HttpKernel.php"
    "line" => 157
    "function" => "dispatch"
    "class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/http-kernel/HttpKernel.php"
    "line" => 76
    "function" => "handleRaw"
    "class" => "Symfony\Component\HttpKernel\HttpKernel"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/http-kernel/Kernel.php"
    "line" => 197
    "function" => "handle"
    "class" => "Symfony\Component\HttpKernel\HttpKernel"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
    "line" => 35
    "function" => "handle"
    "class" => "Symfony\Component\HttpKernel\Kernel"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/vendor/autoload_runtime.php"
    "line" => 29
    "function" => "run"
    "class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
    "type" => "->"
  ]
  [
    "file" => "/var/www/kbin/kbin/public/index.php"
    "line" => 7
    "args" => [
      "/var/www/kbin/kbin/vendor/autoload_runtime.php"
    ]
    "function" => "require_once"
  ]
]

Flashes

Flashes

No flash messages were created.

Server Parameters

Server Parameters

Defined in .env

Key Value
APP_ENV
"dev"
APP_SECRET
"82ce1339a6c267e28d1f1dcb37a7454c"
CORS_ALLOW_ORIGIN
"^https?://(kbin.localhost|127\.0\.0\.1)(:[0-9]+)?$"
DATABASE_URL
"postgresql://kbin:917eaa3d703f19d123@127.0.0.1:5433/kbin?serverVersion=15&charset=utf8"
HCAPTCHA_SECRET
""
HCAPTCHA_SITE_KEY
""
JWT_PASSPHRASE
""
JWT_PUBLIC_KEY
"%kernel.project_dir%/config/jwt/public.pem"
JWT_SECRET_KEY
"%kernel.project_dir%/config/jwt/private.pem"
KBIN_ADMIN_ONLY_OAUTH_CLIENTS
"false"
KBIN_API_ITEMS_PER_PAGE
"25"
KBIN_CAPTCHA_ENABLED
"false"
KBIN_CONTACT_EMAIL
"kbin@j0h.nl"
KBIN_DEFAULT_LANG
"en"
KBIN_DOMAIN
"kbin.spritesserver.nl"
KBIN_FEDERATION_ENABLED
"true"
KBIN_FEDERATION_PAGE_ENABLED
"true"
KBIN_HEADER_LOGO
"false"
KBIN_JS_ENABLED
"true"
KBIN_META_DESCRIPTION
"a private kbin install"
KBIN_META_KEYWORDS
"kbin, content agregator, open source, fediverse"
KBIN_META_TITLE
"Sprites kbin instance"
KBIN_REGISTRATIONS_ENABLED
"true"
KBIN_SENDER_EMAIL
"kbin@j0h.nl"
KBIN_STORAGE_URL
"https://kbin.spritesserver.nl/media/"
KBIN_TITLE
"/kbin"
LOCK_DSN
"flock"
MAILER_DSN
"smtp://spritesmods.com"
MERCURE_JWT_SECRET
"231e9a1277f5585d52aa0b1e34c0f984xxxx"
MERCURE_PUBLIC_URL
"https://kbin.spritesserver.nl/.well-known/mercure"
MERCURE_URL
"http://localhost:3000/.well-known/mercure"
MESSENGER_TRANSPORT_DSN
"doctrine://default"
OAUTH_FACEBOOK_ID
""
OAUTH_FACEBOOK_SECRET
""
OAUTH_GITHUB_ID
""
OAUTH_GITHUB_SECRET
""
OAUTH_GOOGLE_ID
""
OAUTH_GOOGLE_SECRET
""
POSTGRES_DB
"kbin"
POSTGRES_PASSWORD
"917eaa3d703f19d123"
POSTGRES_USER
"kbin"
POSTGRES_VERSION
"15"
REDIS_DNS
"redis://uSJBDOQfuOMgt8kyGhpUzViTnQSEdEJTsOIsYSsg3v40v@localhost"
REDIS_PASSWORD
"uSJBDOQfuOMgt8kyGhpUzViTnQSEdEJTsOIsYSsg3v40v"
S3_BUCKET
"media.karab.in"
S3_KEY
""
S3_REGION
"eu-central-1"
S3_SECRET
""
S3_VERSION
"latest"

Defined as regular env variables

Key Value
APP_DEBUG
"1"
CONTENT_LENGTH
"5723"
CONTENT_TYPE
"application/activity+json"
CONTEXT_DOCUMENT_ROOT
"/var/www/kbin/kbin/public"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/var/www/kbin/kbin/public"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
HTTP_ACCEPT
"*/*"
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_DATE
"Wed, 12 Nov 2025 01:40:25 GMT"
HTTP_DIGEST
"SHA-256=Dl7Th4Ejhu8oPEC+fZJZl++GTmgSB3OneqU1J9W7AbU="
HTTP_HOST
"kbin.spritesserver.nl"
HTTP_SIGNATURE
"keyId="https://programming.dev/c/programmer_humor#main-key",algorithm="hs2019",headers="(request-target) content-type date digest host",signature="lDhkMJzXYxab2MSSAVqHUGPUJJ/r66CeGx7tofUkWOAGnzNjAuTggD+PKKDRMSI3Z9sXOmDrRt1FvnCR6LsTSUtguwNOoNP6Duh+lsCqwbBxVdZ8g9pVwsWPGBkfVT2lNHiv27DPZYeM9KXwjtlbu8dPwZi0suko8QIe5VTj0OPZNw43zpi/1bpKAjw/XRq0O8pDANKmeWmdPyFlMh1wImBE0IZBIiR9e0vkZnSKraL9N3X/Xx45SGTD42jBRlmnha3kmxQXNF8kQw9BgXbiJd6KL2+KPjlFHi/MSHelYBJEB2mbPr7i0eLoLo8MFjyqOLNo/B02V4VtCXqxwoH2aA==""
HTTP_USER_AGENT
"Lemmy/0.19.13; +https://programming.dev"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PHP_SELF
"/index.php"
QUERY_STRING
""
REDIRECT_HTTPS
"on"
REDIRECT_SSL_CIPHER
"TLS_AES_256_GCM_SHA384"
REDIRECT_SSL_CIPHER_ALGKEYSIZE
"256"
REDIRECT_SSL_CIPHER_EXPORT
"false"
REDIRECT_SSL_CIPHER_USEKEYSIZE
"256"
REDIRECT_SSL_CLIENT_VERIFY
"NONE"
REDIRECT_SSL_COMPRESS_METHOD
"NULL"
REDIRECT_SSL_PROTOCOL
"TLSv1.3"
REDIRECT_SSL_SECURE_RENEG
"true"
REDIRECT_SSL_SERVER_A_KEY
"rsaEncryption"
REDIRECT_SSL_SERVER_A_SIG
"sha256WithRSAEncryption"
REDIRECT_SSL_SERVER_I_DN
"CN=R13,O=Let's Encrypt,C=US"
REDIRECT_SSL_SERVER_I_DN_C
"US"
REDIRECT_SSL_SERVER_I_DN_CN
"R13"
REDIRECT_SSL_SERVER_I_DN_O
"Let's Encrypt"
REDIRECT_SSL_SERVER_M_SERIAL
"051FC4B4A36343F49F637925A04EA17AD96A"
REDIRECT_SSL_SERVER_M_VERSION
"3"
REDIRECT_SSL_SERVER_SAN_DNS_0
"kbin.spritesserver.nl"
REDIRECT_SSL_SERVER_S_DN
"CN=kbin.spritesserver.nl"
REDIRECT_SSL_SERVER_S_DN_CN
"kbin.spritesserver.nl"
REDIRECT_SSL_SERVER_V_END
"Dec 25 21:01:55 2025 GMT"
REDIRECT_SSL_SERVER_V_START
"Sep 26 21:01:56 2025 GMT"
REDIRECT_SSL_SESSION_ID
"a0318e99722fbdc3204f0125edfc87704b48be5ae253b92a5f5f0e64d310b34b"
REDIRECT_SSL_SESSION_RESUMED
"Resumed"
REDIRECT_SSL_TLS_SNI
"kbin.spritesserver.nl"
REDIRECT_SSL_VERSION_INTERFACE
"mod_ssl/2.4.62"
REDIRECT_SSL_VERSION_LIBRARY
"OpenSSL/3.0.16"
REDIRECT_STATUS
"200"
REDIRECT_URL
"/f/inbox"
REMOTE_ADDR
"162.55.240.75"
REMOTE_PORT
"50430"
REQUEST_METHOD
"POST"
REQUEST_SCHEME
"https"
REQUEST_TIME
1762911625
REQUEST_TIME_FLOAT
1762911625.7844
REQUEST_URI
"/f/inbox"
SCRIPT_FILENAME
"/var/www/kbin/kbin/public/index.php"
SCRIPT_NAME
"/index.php"
SERVER_ADDR
"5.9.62.165"
SERVER_ADMIN
"webmaster@spritesmods.com"
SERVER_NAME
"kbin.spritesserver.nl"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SSL_CIPHER
"TLS_AES_256_GCM_SHA384"
SSL_CIPHER_ALGKEYSIZE
"256"
SSL_CIPHER_EXPORT
"false"
SSL_CIPHER_USEKEYSIZE
"256"
SSL_CLIENT_VERIFY
"NONE"
SSL_COMPRESS_METHOD
"NULL"
SSL_PROTOCOL
"TLSv1.3"
SSL_SECURE_RENEG
"true"
SSL_SERVER_A_KEY
"rsaEncryption"
SSL_SERVER_A_SIG
"sha256WithRSAEncryption"
SSL_SERVER_I_DN
"CN=R13,O=Let's Encrypt,C=US"
SSL_SERVER_I_DN_C
"US"
SSL_SERVER_I_DN_CN
"R13"
SSL_SERVER_I_DN_O
"Let's Encrypt"
SSL_SERVER_M_SERIAL
"051FC4B4A36343F49F637925A04EA17AD96A"
SSL_SERVER_M_VERSION
"3"
SSL_SERVER_SAN_DNS_0
"kbin.spritesserver.nl"
SSL_SERVER_S_DN
"CN=kbin.spritesserver.nl"
SSL_SERVER_S_DN_CN
"kbin.spritesserver.nl"
SSL_SERVER_V_END
"Dec 25 21:01:55 2025 GMT"
SSL_SERVER_V_START
"Sep 26 21:01:56 2025 GMT"
SSL_SESSION_ID
"a0318e99722fbdc3204f0125edfc87704b48be5ae253b92a5f5f0e64d310b34b"
SSL_SESSION_RESUMED
"Resumed"
SSL_TLS_SNI
"kbin.spritesserver.nl"
SSL_VERSION_INTERFACE
"mod_ssl/2.4.62"
SSL_VERSION_LIBRARY
"OpenSSL/3.0.16"
SYMFONY_DOTENV_VARS
"KBIN_DOMAIN,KBIN_TITLE,KBIN_DEFAULT_LANG,KBIN_FEDERATION_ENABLED,KBIN_CONTACT_EMAIL,KBIN_SENDER_EMAIL,KBIN_JS_ENABLED,KBIN_REGISTRATIONS_ENABLED,KBIN_API_ITEMS_PER_PAGE,KBIN_STORAGE_URL,KBIN_META_TITLE,KBIN_META_DESCRIPTION,KBIN_META_KEYWORDS,KBIN_HEADER_LOGO,KBIN_CAPTCHA_ENABLED,KBIN_FEDERATION_PAGE_ENABLED,REDIS_PASSWORD,REDIS_DNS,S3_KEY,S3_SECRET,S3_BUCKET,S3_REGION,S3_VERSION,OAUTH_FACEBOOK_ID,OAUTH_FACEBOOK_SECRET,OAUTH_GOOGLE_ID,OAUTH_GOOGLE_SECRET,OAUTH_GITHUB_ID,OAUTH_GITHUB_SECRET,KBIN_ADMIN_ONLY_OAUTH_CLIENTS,APP_ENV,APP_SECRET,POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_VERSION,DATABASE_URL,MESSENGER_TRANSPORT_DSN,MAILER_DSN,MERCURE_URL,MERCURE_PUBLIC_URL,MERCURE_JWT_SECRET,CORS_ALLOW_ORIGIN,LOCK_DSN,JWT_SECRET_KEY,JWT_PUBLIC_KEY,JWT_PASSPHRASE,HCAPTCHA_SITE_KEY,HCAPTCHA_SECRET"