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 …}
}
5.20 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.06 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 {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Not sure why you need a new router for PiHole. If your machines all point to the Pihole for DNS, it works. Router has almost nothing to do with what provides DNS, other than maybe having it’s DHCP config include the Pihole for DNS.\n
    \n
    Even then, you can setup the Pihole to be both DHCP and DNS (which helps for local name resolution anyway), and then just turn off DHCP in your router.\n
    \n
    As I understand it, Tailscale and Nginx fulfill the same requirements. I lean toward TS myself, I like how administration works, and how it’s a virtual network instead of an in-bound VPN. This means devices just see each other on this network, regardless of the physical network to which they’re connected. This makes it easy to use the same local-network tools you normally use. For example, you can use just one sync tool, rather than one inside the LAN, and one that can span the internet. You can map shares right across a virtual network as if it were a LAN. TS also enables you to access devices that can’t run TS, such as printers, routers, access points, etc, by enabling its Subnet Router.\n
    \n
    Tailscale also has a couple features (Funnel and Share) which enable you to (respectively), provide internet access to specific resources for anyone, or enable foreign Tailscale networks to access specific resources.\n
    \n
    I see Proxmox and TrueNAS as essentially the same kind of thing - they’re both Hypervisors (virtualizatiin hosts) with True adding NAS capability. So I can’t think of a use-case for running one on the other (TrueNAS has some docs around virtualizing it, I assume the use-case is for a test lab, I wouldn’t think running TN, or any NAS, virtualized is an optimal choice, but hey, what do I know? ).\n
    \n
    While I haven’t explored both deeply, I lean toward TrueNAS, but that’s because I need a NAS solution and a hypervisor, and I’ve seen similar solutions spec’d many times for businesses - I’ve seen it work well. Plus TrueNAS as a company seems to know what they’re doing, they have a strong commercial arm with an array of hardware options. This tells me they are very invested in making True work well, and they do a lot of testing to ensure it works, at least on their hardware. Having multiple hardware products requires both an extensive test group and support organization.\n
    \n
    Proxmox seems equivalent, except they do just the software part, as far as I’ve seen.\n
    \n
    Two similar products for different, but similar/overlapping use-cases.\n
    \n
    Best advice I have is to make a list of Functional Requirements, abstract/high-level needs, such as “need external access to network for management”. Don’t think about specific solutions, just make the list of requirements. Then map those Functional requirements to System requirements. This is often a one-to-many mapping, as it often takes multiple System requirements to address a single functional requirement.\n
    \n
    For example, that “external access” requirement could map out to a VPN system requirement, but also to an access control requirement like SSO, and then also to user management definitions.\n
    \n
    You don’t have to be that detailed, but it’s good to at least have the Functional-to-System mapping so you always know why you did something.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1728732889 {#1769
    date: 2024-10-12 13:34:49.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Malice@lemmy.dbzer0.com"
    "@Malice@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1371 …}
  +nested: Doctrine\ORM\PersistentCollection {#1379 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#1891 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
  -id: 340417
  -bodyTs: "'abstract/high-level':458 'access':187,198,222,234,464,515,529 'across':172 'ad':257 'address':506 'administr':94 'advic':447 'almost':25 'also':183,207,526,536 'alway':565 'anyon':227 'anyway':65 'arm':372 'around':280 'array':375 'assum':284 'best':446 'bound':108 'busi':348 'capabl':259 'case':269,288,445 'choic':307 'commerci':371 'compani':359 'config':40 'connect':129 'control':530 'could':517 'coupl':210 'd':344 'deepli':320 'definit':540 'detail':548 'devic':112,188 'dhcp':39,56,71 'differ':440 'dns':20,32,45,58 'doc':279 'easi':133 'enabl':184,202,216,229 'ensur':399 'equival':422 'essenti':243 'etc':200 'even':46 'exampl':146,512 'except':423 'explor':318 'extens':414 'extern':463,514 'far':431 'featur':211 'foreign':230 'fulfil':82 'function':456,484,509,559 'functional-to-system':558 'funnel':212 'good':552 'group':416 'hardwar':377,406,409 'haven':316 'help':60 'hey':309 'host':254 'hypervisor':252,336 'in-bound':106 'includ':41 'insid':157 'instead':103 'internet':166,221 'invest':385 'kind':246 'know':313,362,566 'lab':293 'lan':159,181 'lean':87,322 'least':403,555 'like':92,532 'list':454,478 'local':62,139 'local-network':138 'lot':395 'machin':13 'make':131,387,452,476 'manag':468,539 'mani':345,496 'map':169,482,497,518,562 'mayb':35 'mean':111 'multipl':408,502 'name':63 'nas':258,302,332 'need':5,330,459,462 'network':102,119,124,140,175,232,466 'new':7 'nginx':81 'normal':143 'noth':26 'often':491,500 'one':151,156,161,272,494 'one-to-mani':493 'optim':306 'option':378 'organ':419 'part':429 'physic':123 'pihol':10,18,43,52 'plus':355 'point':15,199 'printer':196 'product':410,438 'provid':31,220 'proxmox':239,420 'rather':154 're':128,250,365 'regardless':120 'requir':85,411,457,480,485,488,504,510,516,524,531 'resolut':64 'resourc':225,236 'respect':219 'right':171 'router':8,23,74,197,205 'run':192,271,298 'see':114,238 'seem':360,421 'seen':340,351,435 'setup':50 'share':170,214 'similar':341,437 'similar/overlapping':442 'singl':508 'softwar':428 'solut':333,342,474 'someth':570 'span':164 'spec':343 'specif':224,235,473 'sso':533 'strong':370 'subnet':204 'support':418 'sure':2 'sync':152 'system':487,503,523,561 'tailscal':79,206,231 'take':501 'tell':380 'test':292,397,415 'thing':248 'think':264,297,471 'time':346 'tn':299 'tool':141,153 'toward':88,323 'true':256,388 'truena':241,276,324,356 'ts':89,182,193 'turn':69 'two':436 'understand':77 'use':135,144,149,268,287,444 'use-cas':267,286,443 'user':538 've':339,350,434 'virtual':101,174,281,303 'virtualizatiin':253 'vpn':109,522 'well':354,390 'work':22,95,353,389,401 'wouldn':295"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/8652238"
  +editedAt: DateTimeImmutable @1728663298 {#1945
    date: 2024-10-11 18:14:58.0 +02:00
  }
  +createdAt: DateTimeImmutable @1706216738 {#1368
    date: 2024-01-25 22:05:38.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 {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Not sure why you need a new router for PiHole. If your machines all point to the Pihole for DNS, it works. Router has almost nothing to do with what provides DNS, other than maybe having it’s DHCP config include the Pihole for DNS.\n
    \n
    Even then, you can setup the Pihole to be both DHCP and DNS (which helps for local name resolution anyway), and then just turn off DHCP in your router.\n
    \n
    As I understand it, Tailscale and Nginx fulfill the same requirements. I lean toward TS myself, I like how administration works, and how it’s a virtual network instead of an in-bound VPN. This means devices just see each other on this network, regardless of the physical network to which they’re connected. This makes it easy to use the same local-network tools you normally use. For example, you can use just one sync tool, rather than one inside the LAN, and one that can span the internet. You can map shares right across a virtual network as if it were a LAN. TS also enables you to access devices that can’t run TS, such as printers, routers, access points, etc, by enabling its Subnet Router.\n
    \n
    Tailscale also has a couple features (Funnel and Share) which enable you to (respectively), provide internet access to specific resources for anyone, or enable foreign Tailscale networks to access specific resources.\n
    \n
    I see Proxmox and TrueNAS as essentially the same kind of thing - they’re both Hypervisors (virtualizatiin hosts) with True adding NAS capability. So I can’t think of a use-case for running one on the other (TrueNAS has some docs around virtualizing it, I assume the use-case is for a test lab, I wouldn’t think running TN, or any NAS, virtualized is an optimal choice, but hey, what do I know? ).\n
    \n
    While I haven’t explored both deeply, I lean toward TrueNAS, but that’s because I need a NAS solution and a hypervisor, and I’ve seen similar solutions spec’d many times for businesses - I’ve seen it work well. Plus TrueNAS as a company seems to know what they’re doing, they have a strong commercial arm with an array of hardware options. This tells me they are very invested in making True work well, and they do a lot of testing to ensure it works, at least on their hardware. Having multiple hardware products requires both an extensive test group and support organization.\n
    \n
    Proxmox seems equivalent, except they do just the software part, as far as I’ve seen.\n
    \n
    Two similar products for different, but similar/overlapping use-cases.\n
    \n
    Best advice I have is to make a list of Functional Requirements, abstract/high-level needs, such as “need external access to network for management”. Don’t think about specific solutions, just make the list of requirements. Then map those Functional requirements to System requirements. This is often a one-to-many mapping, as it often takes multiple System requirements to address a single functional requirement.\n
    \n
    For example, that “external access” requirement could map out to a VPN system requirement, but also to an access control requirement like SSO, and then also to user management definitions.\n
    \n
    You don’t have to be that detailed, but it’s good to at least have the Functional-to-System mapping so you always know why you did something.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1728732889 {#1769
    date: 2024-10-12 13:34:49.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Malice@lemmy.dbzer0.com"
    "@Malice@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1371 …}
  +nested: Doctrine\ORM\PersistentCollection {#1379 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#1891 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
  -id: 340417
  -bodyTs: "'abstract/high-level':458 'access':187,198,222,234,464,515,529 'across':172 'ad':257 'address':506 'administr':94 'advic':447 'almost':25 'also':183,207,526,536 'alway':565 'anyon':227 'anyway':65 'arm':372 'around':280 'array':375 'assum':284 'best':446 'bound':108 'busi':348 'capabl':259 'case':269,288,445 'choic':307 'commerci':371 'compani':359 'config':40 'connect':129 'control':530 'could':517 'coupl':210 'd':344 'deepli':320 'definit':540 'detail':548 'devic':112,188 'dhcp':39,56,71 'differ':440 'dns':20,32,45,58 'doc':279 'easi':133 'enabl':184,202,216,229 'ensur':399 'equival':422 'essenti':243 'etc':200 'even':46 'exampl':146,512 'except':423 'explor':318 'extens':414 'extern':463,514 'far':431 'featur':211 'foreign':230 'fulfil':82 'function':456,484,509,559 'functional-to-system':558 'funnel':212 'good':552 'group':416 'hardwar':377,406,409 'haven':316 'help':60 'hey':309 'host':254 'hypervisor':252,336 'in-bound':106 'includ':41 'insid':157 'instead':103 'internet':166,221 'invest':385 'kind':246 'know':313,362,566 'lab':293 'lan':159,181 'lean':87,322 'least':403,555 'like':92,532 'list':454,478 'local':62,139 'local-network':138 'lot':395 'machin':13 'make':131,387,452,476 'manag':468,539 'mani':345,496 'map':169,482,497,518,562 'mayb':35 'mean':111 'multipl':408,502 'name':63 'nas':258,302,332 'need':5,330,459,462 'network':102,119,124,140,175,232,466 'new':7 'nginx':81 'normal':143 'noth':26 'often':491,500 'one':151,156,161,272,494 'one-to-mani':493 'optim':306 'option':378 'organ':419 'part':429 'physic':123 'pihol':10,18,43,52 'plus':355 'point':15,199 'printer':196 'product':410,438 'provid':31,220 'proxmox':239,420 'rather':154 're':128,250,365 'regardless':120 'requir':85,411,457,480,485,488,504,510,516,524,531 'resolut':64 'resourc':225,236 'respect':219 'right':171 'router':8,23,74,197,205 'run':192,271,298 'see':114,238 'seem':360,421 'seen':340,351,435 'setup':50 'share':170,214 'similar':341,437 'similar/overlapping':442 'singl':508 'softwar':428 'solut':333,342,474 'someth':570 'span':164 'spec':343 'specif':224,235,473 'sso':533 'strong':370 'subnet':204 'support':418 'sure':2 'sync':152 'system':487,503,523,561 'tailscal':79,206,231 'take':501 'tell':380 'test':292,397,415 'thing':248 'think':264,297,471 'time':346 'tn':299 'tool':141,153 'toward':88,323 'true':256,388 'truena':241,276,324,356 'ts':89,182,193 'turn':69 'two':436 'understand':77 'use':135,144,149,268,287,444 'use-cas':267,286,443 'user':538 've':339,350,434 'virtual':101,174,281,303 'virtualizatiin':253 'vpn':109,522 'well':354,390 'work':22,95,353,389,401 'wouldn':295"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/8652238"
  +editedAt: DateTimeImmutable @1728663298 {#1945
    date: 2024-10-11 18:14:58.0 +02:00
  }
  +createdAt: DateTimeImmutable @1706216738 {#1368
    date: 2024-01-25 22:05:38.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 {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Not sure why you need a new router for PiHole. If your machines all point to the Pihole for DNS, it works. Router has almost nothing to do with what provides DNS, other than maybe having it’s DHCP config include the Pihole for DNS.\n
    \n
    Even then, you can setup the Pihole to be both DHCP and DNS (which helps for local name resolution anyway), and then just turn off DHCP in your router.\n
    \n
    As I understand it, Tailscale and Nginx fulfill the same requirements. I lean toward TS myself, I like how administration works, and how it’s a virtual network instead of an in-bound VPN. This means devices just see each other on this network, regardless of the physical network to which they’re connected. This makes it easy to use the same local-network tools you normally use. For example, you can use just one sync tool, rather than one inside the LAN, and one that can span the internet. You can map shares right across a virtual network as if it were a LAN. TS also enables you to access devices that can’t run TS, such as printers, routers, access points, etc, by enabling its Subnet Router.\n
    \n
    Tailscale also has a couple features (Funnel and Share) which enable you to (respectively), provide internet access to specific resources for anyone, or enable foreign Tailscale networks to access specific resources.\n
    \n
    I see Proxmox and TrueNAS as essentially the same kind of thing - they’re both Hypervisors (virtualizatiin hosts) with True adding NAS capability. So I can’t think of a use-case for running one on the other (TrueNAS has some docs around virtualizing it, I assume the use-case is for a test lab, I wouldn’t think running TN, or any NAS, virtualized is an optimal choice, but hey, what do I know? ).\n
    \n
    While I haven’t explored both deeply, I lean toward TrueNAS, but that’s because I need a NAS solution and a hypervisor, and I’ve seen similar solutions spec’d many times for businesses - I’ve seen it work well. Plus TrueNAS as a company seems to know what they’re doing, they have a strong commercial arm with an array of hardware options. This tells me they are very invested in making True work well, and they do a lot of testing to ensure it works, at least on their hardware. Having multiple hardware products requires both an extensive test group and support organization.\n
    \n
    Proxmox seems equivalent, except they do just the software part, as far as I’ve seen.\n
    \n
    Two similar products for different, but similar/overlapping use-cases.\n
    \n
    Best advice I have is to make a list of Functional Requirements, abstract/high-level needs, such as “need external access to network for management”. Don’t think about specific solutions, just make the list of requirements. Then map those Functional requirements to System requirements. This is often a one-to-many mapping, as it often takes multiple System requirements to address a single functional requirement.\n
    \n
    For example, that “external access” requirement could map out to a VPN system requirement, but also to an access control requirement like SSO, and then also to user management definitions.\n
    \n
    You don’t have to be that detailed, but it’s good to at least have the Functional-to-System mapping so you always know why you did something.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1728732889 {#1769
    date: 2024-10-12 13:34:49.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Malice@lemmy.dbzer0.com"
    "@Malice@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1371 …}
  +nested: Doctrine\ORM\PersistentCollection {#1379 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#1891 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
  -id: 340417
  -bodyTs: "'abstract/high-level':458 'access':187,198,222,234,464,515,529 'across':172 'ad':257 'address':506 'administr':94 'advic':447 'almost':25 'also':183,207,526,536 'alway':565 'anyon':227 'anyway':65 'arm':372 'around':280 'array':375 'assum':284 'best':446 'bound':108 'busi':348 'capabl':259 'case':269,288,445 'choic':307 'commerci':371 'compani':359 'config':40 'connect':129 'control':530 'could':517 'coupl':210 'd':344 'deepli':320 'definit':540 'detail':548 'devic':112,188 'dhcp':39,56,71 'differ':440 'dns':20,32,45,58 'doc':279 'easi':133 'enabl':184,202,216,229 'ensur':399 'equival':422 'essenti':243 'etc':200 'even':46 'exampl':146,512 'except':423 'explor':318 'extens':414 'extern':463,514 'far':431 'featur':211 'foreign':230 'fulfil':82 'function':456,484,509,559 'functional-to-system':558 'funnel':212 'good':552 'group':416 'hardwar':377,406,409 'haven':316 'help':60 'hey':309 'host':254 'hypervisor':252,336 'in-bound':106 'includ':41 'insid':157 'instead':103 'internet':166,221 'invest':385 'kind':246 'know':313,362,566 'lab':293 'lan':159,181 'lean':87,322 'least':403,555 'like':92,532 'list':454,478 'local':62,139 'local-network':138 'lot':395 'machin':13 'make':131,387,452,476 'manag':468,539 'mani':345,496 'map':169,482,497,518,562 'mayb':35 'mean':111 'multipl':408,502 'name':63 'nas':258,302,332 'need':5,330,459,462 'network':102,119,124,140,175,232,466 'new':7 'nginx':81 'normal':143 'noth':26 'often':491,500 'one':151,156,161,272,494 'one-to-mani':493 'optim':306 'option':378 'organ':419 'part':429 'physic':123 'pihol':10,18,43,52 'plus':355 'point':15,199 'printer':196 'product':410,438 'provid':31,220 'proxmox':239,420 'rather':154 're':128,250,365 'regardless':120 'requir':85,411,457,480,485,488,504,510,516,524,531 'resolut':64 'resourc':225,236 'respect':219 'right':171 'router':8,23,74,197,205 'run':192,271,298 'see':114,238 'seem':360,421 'seen':340,351,435 'setup':50 'share':170,214 'similar':341,437 'similar/overlapping':442 'singl':508 'softwar':428 'solut':333,342,474 'someth':570 'span':164 'spec':343 'specif':224,235,473 'sso':533 'strong':370 'subnet':204 'support':418 'sure':2 'sync':152 'system':487,503,523,561 'tailscal':79,206,231 'take':501 'tell':380 'test':292,397,415 'thing':248 'think':264,297,471 'time':346 'tn':299 'tool':141,153 'toward':88,323 'true':256,388 'truena':241,276,324,356 'ts':89,182,193 'turn':69 'two':436 'understand':77 'use':135,144,149,268,287,444 'use-cas':267,286,443 'user':538 've':339,350,434 'virtual':101,174,281,303 'virtualizatiin':253 'vpn':109,522 'well':354,390 'work':22,95,353,389,401 'wouldn':295"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/8652238"
  +editedAt: DateTimeImmutable @1728663298 {#1945
    date: 2024-10-11 18:14:58.0 +02:00
  }
  +createdAt: DateTimeImmutable @1706216738 {#1368
    date: 2024-01-25 22:05:38.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 {#312
  +icon: Proxies\__CG__\App\Entity\Image {#293 …}
  +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: 222
  +entryCommentCount: 3916
  +postCount: 0
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729582735 {#320
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#284 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
  +entries: Doctrine\ORM\PersistentCollection {#227 …}
  +posts: Doctrine\ORM\PersistentCollection {#185 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
  +bans: Doctrine\ORM\PersistentCollection {#164 …}
  +reports: Doctrine\ORM\PersistentCollection {#150 …}
  +badges: Doctrine\ORM\PersistentCollection {#128 …}
  +logs: Doctrine\ORM\PersistentCollection {#118 …}
  +awards: Doctrine\ORM\PersistentCollection {#107 …}
  +categories: Doctrine\ORM\PersistentCollection {#94 …}
  -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 {#321
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#315
    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