Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.25 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.04 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1400 …}
  +entry: App\Entity\Entry {#2404 …}
  +magazine: App\Entity\Magazine {#307
    +icon: Proxies\__CG__\App\Entity\Image {#287 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 220
    +entryCommentCount: 3886
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729496512 {#315
      date: 2024-10-21 09:41:52.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#278 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#274 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#263 …}
    +entries: Doctrine\ORM\PersistentCollection {#221 …}
    +posts: Doctrine\ORM\PersistentCollection {#179 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#241 …}
    +bans: Doctrine\ORM\PersistentCollection {#158 …}
    +reports: Doctrine\ORM\PersistentCollection {#144 …}
    +badges: Doctrine\ORM\PersistentCollection {#122 …}
    +logs: Doctrine\ORM\PersistentCollection {#112 …}
    +awards: Doctrine\ORM\PersistentCollection {#101 …}
    +categories: Doctrine\ORM\PersistentCollection {#88 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#320
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’ll assume you mean what I mean when I say I want to be safe with my self hosting – that is, “safe” but also easily accessible enough that my friends/family don’t balk the first time they try to log in or reset their password. There are all kinds of strategies you can use to protect your data, but I’ll cover the few that I find to be reasonable.\n
    \n
    1. Port Forwarding – as someone mentioned already, port forwarding raw internet traffic to a server is probably a bad idea based on the information given. Especially since it isn’t strictly necessary.\n
    2. Consumer Grade Tunnel Services – I’m sure there are others, but [cloudflare tunnels](https://www.cloudflare.com/products/tunnel/) can be a safer option of exposing a service to the public internet.\n
    3. Personal VPN (my pick) – if your number of users is small, it may be easiest to set up a private VPN. This has the added benefit of making things like PiHole available to all of your devices wherever you go. Popular options include Tailscale (easiest, but relies on trusting Tailscale) or Wireguard/OpenVPN (bare bones with excellent documentation). I think there are similar options to tailscale through NordVPN (and probably others), where it “magically” handles connecting your devices but then you face a ~5 device limit.\n
    \n
    With Wireguard or OpenVPN you may ask: “How do I do that without opening a port? You just said that was a bad idea!” Well, the best way that I have come up with is to use a VPS (providers include Digital Ocean, Linode to name a few) where you typically get a public IP address for free (as in free beer). You still have a public port open in your virtual private network, but it’s an acceptable risk (in my mind, for my threat model) given it’s on a machine that you don’t own or care about. You can wipe that VPS machine any time you want, the cost is time.\n
    \n
    It’s all a trade-off. You can go to much further lengths than I’ve described here to be “safer” but this is the threshold that I’ve found to be easy and Good Enough for Me™.\n
    \n
    If I were starting over I would start with Tailscale and work up from there. There are many many good options and only you can decide which one is best for your situation!
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1729457610 {#1844
    date: 2024-10-20 22:53:30.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Nester@feddit.uk"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1367 …}
  +nested: Doctrine\ORM\PersistentCollection {#1898 …}
  +votes: Doctrine\ORM\PersistentCollection {#2432 …}
  +reports: Doctrine\ORM\PersistentCollection {#1848 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 350094
  -bodyTs: "'/products/tunnel/)':120 '1':72 '2':104 '3':134 '5':217 'accept':298 'access':27 'ad':159 'address':275 'alreadi':78 'also':25 'ask':226 'assum':3 'avail':166 'bad':90,242 'balk':34 'bare':187 'base':92 'beer':281 'benefit':160 'best':246,403 'bone':188 'care':319 'cloudflar':116 'come':251 'connect':209 'consum':105 'cost':332 'cover':63 'data':59 'decid':399 'describ':352 'devic':171,211,218 'digit':261 'document':191 'easi':368 'easiest':149,179 'easili':26 'enough':28,371 'especi':97 'excel':190 'expos':127 'face':215 'find':68 'first':36 'forward':74,80 'found':365 'free':277,280 'friends/family':31 'get':271 'given':96,307 'go':174,344 'good':370,393 'grade':106 'handl':208 'host':20 'idea':91,243 'includ':177,260 'inform':95 'internet':82,133 'ip':274 'isn':100 'kind':50 'length':348 'like':164 'limit':219 'linod':263 'll':2,62 'log':41 'm':110 'machin':312,326 'magic':207 'make':162 'mani':391,392 'may':147,225 'mean':5,8 'mention':77 'mind':302 'model':306 'much':346 'name':265 'necessari':103 'network':293 'nordvpn':201 'number':141 'ocean':262 'one':401 'open':233,288 'openvpn':223 'option':125,176,197,394 'other':114,204 'password':46 'person':135 'pick':138 'pihol':165 'popular':175 'port':73,79,235,287 'privat':154,292 'probabl':88,203 'protect':57 'provid':259 'public':132,273,286 'raw':81 'reason':71 'reli':181 'reset':44 'risk':299 'safe':16,23 'safer':124,356 'said':238 'say':11 'self':19 'server':86 'servic':108,129 'set':151 'similar':196 'sinc':98 'situat':406 'small':145 'someon':76 'start':377,381 'still':283 'strategi':52 'strict':102 'sure':111 'tailscal':178,184,199,383 'thing':163 'think':193 'threat':305 'threshold':361 'time':37,328,334 'trade':340 'trade-off':339 'traffic':83 'tri':39 'trust':183 'tunnel':107,117 'typic':270 'use':55,256 'user':143 've':351,364 'virtual':291 'vpn':136,155 'vps':258,325 'want':13,330 'way':247 'well':244 'wherev':172 'wipe':323 'wireguard':221 'wireguard/openvpn':186 'without':232 'work':385 'would':380 'www.cloudflare.com':119 'www.cloudflare.com/products/tunnel/)':118"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/7128016"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706544153 {#1927
    date: 2024-01-29 17:02:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1400 …}
  +entry: App\Entity\Entry {#2404 …}
  +magazine: App\Entity\Magazine {#307
    +icon: Proxies\__CG__\App\Entity\Image {#287 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 220
    +entryCommentCount: 3886
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729496512 {#315
      date: 2024-10-21 09:41:52.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#278 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#274 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#263 …}
    +entries: Doctrine\ORM\PersistentCollection {#221 …}
    +posts: Doctrine\ORM\PersistentCollection {#179 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#241 …}
    +bans: Doctrine\ORM\PersistentCollection {#158 …}
    +reports: Doctrine\ORM\PersistentCollection {#144 …}
    +badges: Doctrine\ORM\PersistentCollection {#122 …}
    +logs: Doctrine\ORM\PersistentCollection {#112 …}
    +awards: Doctrine\ORM\PersistentCollection {#101 …}
    +categories: Doctrine\ORM\PersistentCollection {#88 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#320
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’ll assume you mean what I mean when I say I want to be safe with my self hosting – that is, “safe” but also easily accessible enough that my friends/family don’t balk the first time they try to log in or reset their password. There are all kinds of strategies you can use to protect your data, but I’ll cover the few that I find to be reasonable.\n
    \n
    1. Port Forwarding – as someone mentioned already, port forwarding raw internet traffic to a server is probably a bad idea based on the information given. Especially since it isn’t strictly necessary.\n
    2. Consumer Grade Tunnel Services – I’m sure there are others, but [cloudflare tunnels](https://www.cloudflare.com/products/tunnel/) can be a safer option of exposing a service to the public internet.\n
    3. Personal VPN (my pick) – if your number of users is small, it may be easiest to set up a private VPN. This has the added benefit of making things like PiHole available to all of your devices wherever you go. Popular options include Tailscale (easiest, but relies on trusting Tailscale) or Wireguard/OpenVPN (bare bones with excellent documentation). I think there are similar options to tailscale through NordVPN (and probably others), where it “magically” handles connecting your devices but then you face a ~5 device limit.\n
    \n
    With Wireguard or OpenVPN you may ask: “How do I do that without opening a port? You just said that was a bad idea!” Well, the best way that I have come up with is to use a VPS (providers include Digital Ocean, Linode to name a few) where you typically get a public IP address for free (as in free beer). You still have a public port open in your virtual private network, but it’s an acceptable risk (in my mind, for my threat model) given it’s on a machine that you don’t own or care about. You can wipe that VPS machine any time you want, the cost is time.\n
    \n
    It’s all a trade-off. You can go to much further lengths than I’ve described here to be “safer” but this is the threshold that I’ve found to be easy and Good Enough for Me™.\n
    \n
    If I were starting over I would start with Tailscale and work up from there. There are many many good options and only you can decide which one is best for your situation!
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1729457610 {#1844
    date: 2024-10-20 22:53:30.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Nester@feddit.uk"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1367 …}
  +nested: Doctrine\ORM\PersistentCollection {#1898 …}
  +votes: Doctrine\ORM\PersistentCollection {#2432 …}
  +reports: Doctrine\ORM\PersistentCollection {#1848 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 350094
  -bodyTs: "'/products/tunnel/)':120 '1':72 '2':104 '3':134 '5':217 'accept':298 'access':27 'ad':159 'address':275 'alreadi':78 'also':25 'ask':226 'assum':3 'avail':166 'bad':90,242 'balk':34 'bare':187 'base':92 'beer':281 'benefit':160 'best':246,403 'bone':188 'care':319 'cloudflar':116 'come':251 'connect':209 'consum':105 'cost':332 'cover':63 'data':59 'decid':399 'describ':352 'devic':171,211,218 'digit':261 'document':191 'easi':368 'easiest':149,179 'easili':26 'enough':28,371 'especi':97 'excel':190 'expos':127 'face':215 'find':68 'first':36 'forward':74,80 'found':365 'free':277,280 'friends/family':31 'get':271 'given':96,307 'go':174,344 'good':370,393 'grade':106 'handl':208 'host':20 'idea':91,243 'includ':177,260 'inform':95 'internet':82,133 'ip':274 'isn':100 'kind':50 'length':348 'like':164 'limit':219 'linod':263 'll':2,62 'log':41 'm':110 'machin':312,326 'magic':207 'make':162 'mani':391,392 'may':147,225 'mean':5,8 'mention':77 'mind':302 'model':306 'much':346 'name':265 'necessari':103 'network':293 'nordvpn':201 'number':141 'ocean':262 'one':401 'open':233,288 'openvpn':223 'option':125,176,197,394 'other':114,204 'password':46 'person':135 'pick':138 'pihol':165 'popular':175 'port':73,79,235,287 'privat':154,292 'probabl':88,203 'protect':57 'provid':259 'public':132,273,286 'raw':81 'reason':71 'reli':181 'reset':44 'risk':299 'safe':16,23 'safer':124,356 'said':238 'say':11 'self':19 'server':86 'servic':108,129 'set':151 'similar':196 'sinc':98 'situat':406 'small':145 'someon':76 'start':377,381 'still':283 'strategi':52 'strict':102 'sure':111 'tailscal':178,184,199,383 'thing':163 'think':193 'threat':305 'threshold':361 'time':37,328,334 'trade':340 'trade-off':339 'traffic':83 'tri':39 'trust':183 'tunnel':107,117 'typic':270 'use':55,256 'user':143 've':351,364 'virtual':291 'vpn':136,155 'vps':258,325 'want':13,330 'way':247 'well':244 'wherev':172 'wipe':323 'wireguard':221 'wireguard/openvpn':186 'without':232 'work':385 'would':380 'www.cloudflare.com':119 'www.cloudflare.com/products/tunnel/)':118"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/7128016"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706544153 {#1927
    date: 2024-01-29 17:02:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1400 …}
  +entry: App\Entity\Entry {#2404 …}
  +magazine: App\Entity\Magazine {#307
    +icon: Proxies\__CG__\App\Entity\Image {#287 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 220
    +entryCommentCount: 3886
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729496512 {#315
      date: 2024-10-21 09:41:52.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#278 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#274 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#263 …}
    +entries: Doctrine\ORM\PersistentCollection {#221 …}
    +posts: Doctrine\ORM\PersistentCollection {#179 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#241 …}
    +bans: Doctrine\ORM\PersistentCollection {#158 …}
    +reports: Doctrine\ORM\PersistentCollection {#144 …}
    +badges: Doctrine\ORM\PersistentCollection {#122 …}
    +logs: Doctrine\ORM\PersistentCollection {#112 …}
    +awards: Doctrine\ORM\PersistentCollection {#101 …}
    +categories: Doctrine\ORM\PersistentCollection {#88 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#320
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#317
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’ll assume you mean what I mean when I say I want to be safe with my self hosting – that is, “safe” but also easily accessible enough that my friends/family don’t balk the first time they try to log in or reset their password. There are all kinds of strategies you can use to protect your data, but I’ll cover the few that I find to be reasonable.\n
    \n
    1. Port Forwarding – as someone mentioned already, port forwarding raw internet traffic to a server is probably a bad idea based on the information given. Especially since it isn’t strictly necessary.\n
    2. Consumer Grade Tunnel Services – I’m sure there are others, but [cloudflare tunnels](https://www.cloudflare.com/products/tunnel/) can be a safer option of exposing a service to the public internet.\n
    3. Personal VPN (my pick) – if your number of users is small, it may be easiest to set up a private VPN. This has the added benefit of making things like PiHole available to all of your devices wherever you go. Popular options include Tailscale (easiest, but relies on trusting Tailscale) or Wireguard/OpenVPN (bare bones with excellent documentation). I think there are similar options to tailscale through NordVPN (and probably others), where it “magically” handles connecting your devices but then you face a ~5 device limit.\n
    \n
    With Wireguard or OpenVPN you may ask: “How do I do that without opening a port? You just said that was a bad idea!” Well, the best way that I have come up with is to use a VPS (providers include Digital Ocean, Linode to name a few) where you typically get a public IP address for free (as in free beer). You still have a public port open in your virtual private network, but it’s an acceptable risk (in my mind, for my threat model) given it’s on a machine that you don’t own or care about. You can wipe that VPS machine any time you want, the cost is time.\n
    \n
    It’s all a trade-off. You can go to much further lengths than I’ve described here to be “safer” but this is the threshold that I’ve found to be easy and Good Enough for Me™.\n
    \n
    If I were starting over I would start with Tailscale and work up from there. There are many many good options and only you can decide which one is best for your situation!
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1729457610 {#1844
    date: 2024-10-20 22:53:30.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Nester@feddit.uk"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1367 …}
  +nested: Doctrine\ORM\PersistentCollection {#1898 …}
  +votes: Doctrine\ORM\PersistentCollection {#2432 …}
  +reports: Doctrine\ORM\PersistentCollection {#1848 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2490 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2409 …}
  -id: 350094
  -bodyTs: "'/products/tunnel/)':120 '1':72 '2':104 '3':134 '5':217 'accept':298 'access':27 'ad':159 'address':275 'alreadi':78 'also':25 'ask':226 'assum':3 'avail':166 'bad':90,242 'balk':34 'bare':187 'base':92 'beer':281 'benefit':160 'best':246,403 'bone':188 'care':319 'cloudflar':116 'come':251 'connect':209 'consum':105 'cost':332 'cover':63 'data':59 'decid':399 'describ':352 'devic':171,211,218 'digit':261 'document':191 'easi':368 'easiest':149,179 'easili':26 'enough':28,371 'especi':97 'excel':190 'expos':127 'face':215 'find':68 'first':36 'forward':74,80 'found':365 'free':277,280 'friends/family':31 'get':271 'given':96,307 'go':174,344 'good':370,393 'grade':106 'handl':208 'host':20 'idea':91,243 'includ':177,260 'inform':95 'internet':82,133 'ip':274 'isn':100 'kind':50 'length':348 'like':164 'limit':219 'linod':263 'll':2,62 'log':41 'm':110 'machin':312,326 'magic':207 'make':162 'mani':391,392 'may':147,225 'mean':5,8 'mention':77 'mind':302 'model':306 'much':346 'name':265 'necessari':103 'network':293 'nordvpn':201 'number':141 'ocean':262 'one':401 'open':233,288 'openvpn':223 'option':125,176,197,394 'other':114,204 'password':46 'person':135 'pick':138 'pihol':165 'popular':175 'port':73,79,235,287 'privat':154,292 'probabl':88,203 'protect':57 'provid':259 'public':132,273,286 'raw':81 'reason':71 'reli':181 'reset':44 'risk':299 'safe':16,23 'safer':124,356 'said':238 'say':11 'self':19 'server':86 'servic':108,129 'set':151 'similar':196 'sinc':98 'situat':406 'small':145 'someon':76 'start':377,381 'still':283 'strategi':52 'strict':102 'sure':111 'tailscal':178,184,199,383 'thing':163 'think':193 'threat':305 'threshold':361 'time':37,328,334 'trade':340 'trade-off':339 'traffic':83 'tri':39 'trust':183 'tunnel':107,117 'typic':270 'use':55,256 'user':143 've':351,364 'virtual':291 'vpn':136,155 'vps':258,325 'want':13,330 'way':247 'well':244 'wherev':172 'wipe':323 'wireguard':221 'wireguard/openvpn':186 'without':232 'work':385 'would':380 'www.cloudflare.com':119 'www.cloudflare.com/products/tunnel/)':118"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/7128016"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706544153 {#1927
    date: 2024-01-29 17:02:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#307
  +icon: Proxies\__CG__\App\Entity\Image {#287 …}
  +name: "selfhosted@lemmy.world"
  +title: "selfhosted"
  +description: """
    A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
    \n
    Rules:\n
    \n
    - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
    - No spam posting.\n
    - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
    - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
    - No trolling.\n
    \n
    Resources:\n
    \n
    - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
    - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
    - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
    \n
    > Any issues on the community? Report it using the report flag.\n
    \n
    > Questions? DM the mods!
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 220
  +entryCommentCount: 3886
  +postCount: 0
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729496512 {#315
    date: 2024-10-21 09:41:52.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#278 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#274 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#263 …}
  +entries: Doctrine\ORM\PersistentCollection {#221 …}
  +posts: Doctrine\ORM\PersistentCollection {#179 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#241 …}
  +bans: Doctrine\ORM\PersistentCollection {#158 …}
  +reports: Doctrine\ORM\PersistentCollection {#144 …}
  +badges: Doctrine\ORM\PersistentCollection {#122 …}
  +logs: Doctrine\ORM\PersistentCollection {#112 …}
  +awards: Doctrine\ORM\PersistentCollection {#101 …}
  +categories: Doctrine\ORM\PersistentCollection {#88 …}
  -id: 120
  +apId: "selfhosted@lemmy.world"
  +apProfileId: "https://lemmy.world/c/selfhosted"
  +apPublicUrl: "https://lemmy.world/c/selfhosted"
  +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
  +apInboxUrl: "https://lemmy.world/inbox"
  +apDomain: "lemmy.world"
  +apPreferredUsername: "selfhosted"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1703473826 {#320
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#317
    date: 2023-12-25 04:10:26.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details