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 …}
}
10.45 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 {#1389
  +user: Proxies\__CG__\App\Entity\User {#1377 …}
  +entry: App\Entity\Entry {#1769 …}
  +magazine: App\Entity\Magazine {#312
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#320
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#300 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#296 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#285 …}
    +entries: Doctrine\ORM\PersistentCollection {#243 …}
    +posts: Doctrine\ORM\PersistentCollection {#201 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#263 …}
    +bans: Doctrine\ORM\PersistentCollection {#180 …}
    +reports: Doctrine\ORM\PersistentCollection {#166 …}
    +badges: Doctrine\ORM\PersistentCollection {#144 …}
    +logs: Doctrine\ORM\PersistentCollection {#134 …}
    +awards: Doctrine\ORM\PersistentCollection {#123 …}
    +categories: Doctrine\ORM\PersistentCollection {#110 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#321
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#315
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    > I don’t want to do any sort of RAID 0 or striping because the hard drives are old and I don’t want a single one of them failing to make the entire backup unrecoverable.\n
    \n
    This will happen in any case unless you had enough capacity for redundancy.\n
    \n
    What is in this 4TB drive? A Linux installation? A bunch of user data? Both? What kind of data?\n
    \n
    The first step to this is to separate your concerns. If you had e.g. a 20GiB Linux install, 10GiB of loose home files, 1TiB of Movies, 500GiB of photos, 1TiB of games and 500GiB of Music for example, you could back each of those up separately onto separate drives.\n
    \n
    Now, it’s likely that you’d still have more data of one category than what fits on your largest external drive (movies are a likely candidate).\n
    \n
    For this purpose, I use [git-annex.branchable.com](https://git-annex.branchable.com/). It’s a beast to get into and set up properly with plenty of footguns attached but it was designed to solve issues like this elegantly.  \n
    One of the most important things it does is separate file content from file metadata; making metadata available in all locations (“repos”) while data can be present in only a subset, thereby achieving distributed storage. I.e. you could have 4TiB of file contents distributed over a bunch of 500GiB drives but in each one of those repos you’d have the full file tree available (metadata of all files + content of present files) allowing you to manage your files in any place without having all the contents present (or even any). It’s quite magical.\n
    \n
    Once configured properly, you can simply attach a drive, clone the git repo onto it and then run a `git annex sync --content` and it’ll fill that drive up with as much content as it can or until each “file”'s `numcopies` or other configured constraints are reached.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703240271 {#1919
    date: 2023-12-22 11:17:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@HiddenLayer5@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1945 …}
  +nested: Doctrine\ORM\PersistentCollection {#1941 …}
  +votes: Doctrine\ORM\PersistentCollection {#1371 …}
  +reports: Doctrine\ORM\PersistentCollection {#1399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2466 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2166 …}
  -id: 242786
  -bodyTs: "'/).':153 '0':11 '10gib':87 '1tib':92,98 '20gib':84 '4tb':54 '4tib':219 '500gib':95,102,228 'achiev':212 'allow':253 'annex':295 'attach':169,281 'avail':197,244 'back':109 'backup':35 'beast':157 'bunch':60,226 'candid':144 'capac':47 'case':42 'categori':131 'clone':284 'concern':78 'configur':276,320 'constraint':321 'content':191,222,249,266,297,308 'could':108,217 'd':124,238 'data':63,68,128,203 'design':173 'distribut':213,223 'drive':17,55,117,139,229,283,303 'e.g':82 'eleg':179 'enough':46 'entir':34 'even':269 'exampl':106 'extern':138 'fail':30 'file':91,190,193,221,242,248,252,258,315 'fill':301 'first':70 'fit':134 'footgun':168 'full':241 'game':100 'get':159 'git':286,294 'git-annex.branchable.com':150,152 'git-annex.branchable.com/).':151 'happen':39 'hard':16 'home':90 'i.e':215 'import':184 'instal':58,86 'issu':176 'kind':66 'largest':137 'like':121,143,177 'linux':57,85 'll':300 'locat':200 'loos':89 'magic':274 'make':32,195 'manag':256 'metadata':194,196,245 'movi':94,140 'much':307 'music':104 'numcopi':317 'old':19 'one':27,130,180,233 'onto':115,288 'photo':97 'place':261 'plenti':166 'present':206,251,267 'proper':164,277 'purpos':147 'quit':273 'raid':10 'reach':323 'redund':49 'repo':201,236,287 'run':292 'separ':76,114,116,189 'set':162 'simpli':280 'singl':26 'solv':175 'sort':8 'step':71 'still':125 'storag':214 'stripe':13 'subset':210 'sync':296 'therebi':211 'thing':185 'tree':243 'unless':43 'unrecover':36 'use':149 'user':62 'want':4,24 'without':262"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6817442"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703240271 {#1387
    date: 2023-12-22 11:17:51.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 {#1389
  +user: Proxies\__CG__\App\Entity\User {#1377 …}
  +entry: App\Entity\Entry {#1769 …}
  +magazine: App\Entity\Magazine {#312
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#320
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#300 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#296 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#285 …}
    +entries: Doctrine\ORM\PersistentCollection {#243 …}
    +posts: Doctrine\ORM\PersistentCollection {#201 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#263 …}
    +bans: Doctrine\ORM\PersistentCollection {#180 …}
    +reports: Doctrine\ORM\PersistentCollection {#166 …}
    +badges: Doctrine\ORM\PersistentCollection {#144 …}
    +logs: Doctrine\ORM\PersistentCollection {#134 …}
    +awards: Doctrine\ORM\PersistentCollection {#123 …}
    +categories: Doctrine\ORM\PersistentCollection {#110 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#321
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#315
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    > I don’t want to do any sort of RAID 0 or striping because the hard drives are old and I don’t want a single one of them failing to make the entire backup unrecoverable.\n
    \n
    This will happen in any case unless you had enough capacity for redundancy.\n
    \n
    What is in this 4TB drive? A Linux installation? A bunch of user data? Both? What kind of data?\n
    \n
    The first step to this is to separate your concerns. If you had e.g. a 20GiB Linux install, 10GiB of loose home files, 1TiB of Movies, 500GiB of photos, 1TiB of games and 500GiB of Music for example, you could back each of those up separately onto separate drives.\n
    \n
    Now, it’s likely that you’d still have more data of one category than what fits on your largest external drive (movies are a likely candidate).\n
    \n
    For this purpose, I use [git-annex.branchable.com](https://git-annex.branchable.com/). It’s a beast to get into and set up properly with plenty of footguns attached but it was designed to solve issues like this elegantly.  \n
    One of the most important things it does is separate file content from file metadata; making metadata available in all locations (“repos”) while data can be present in only a subset, thereby achieving distributed storage. I.e. you could have 4TiB of file contents distributed over a bunch of 500GiB drives but in each one of those repos you’d have the full file tree available (metadata of all files + content of present files) allowing you to manage your files in any place without having all the contents present (or even any). It’s quite magical.\n
    \n
    Once configured properly, you can simply attach a drive, clone the git repo onto it and then run a `git annex sync --content` and it’ll fill that drive up with as much content as it can or until each “file”'s `numcopies` or other configured constraints are reached.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703240271 {#1919
    date: 2023-12-22 11:17:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@HiddenLayer5@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1945 …}
  +nested: Doctrine\ORM\PersistentCollection {#1941 …}
  +votes: Doctrine\ORM\PersistentCollection {#1371 …}
  +reports: Doctrine\ORM\PersistentCollection {#1399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2466 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2166 …}
  -id: 242786
  -bodyTs: "'/).':153 '0':11 '10gib':87 '1tib':92,98 '20gib':84 '4tb':54 '4tib':219 '500gib':95,102,228 'achiev':212 'allow':253 'annex':295 'attach':169,281 'avail':197,244 'back':109 'backup':35 'beast':157 'bunch':60,226 'candid':144 'capac':47 'case':42 'categori':131 'clone':284 'concern':78 'configur':276,320 'constraint':321 'content':191,222,249,266,297,308 'could':108,217 'd':124,238 'data':63,68,128,203 'design':173 'distribut':213,223 'drive':17,55,117,139,229,283,303 'e.g':82 'eleg':179 'enough':46 'entir':34 'even':269 'exampl':106 'extern':138 'fail':30 'file':91,190,193,221,242,248,252,258,315 'fill':301 'first':70 'fit':134 'footgun':168 'full':241 'game':100 'get':159 'git':286,294 'git-annex.branchable.com':150,152 'git-annex.branchable.com/).':151 'happen':39 'hard':16 'home':90 'i.e':215 'import':184 'instal':58,86 'issu':176 'kind':66 'largest':137 'like':121,143,177 'linux':57,85 'll':300 'locat':200 'loos':89 'magic':274 'make':32,195 'manag':256 'metadata':194,196,245 'movi':94,140 'much':307 'music':104 'numcopi':317 'old':19 'one':27,130,180,233 'onto':115,288 'photo':97 'place':261 'plenti':166 'present':206,251,267 'proper':164,277 'purpos':147 'quit':273 'raid':10 'reach':323 'redund':49 'repo':201,236,287 'run':292 'separ':76,114,116,189 'set':162 'simpli':280 'singl':26 'solv':175 'sort':8 'step':71 'still':125 'storag':214 'stripe':13 'subset':210 'sync':296 'therebi':211 'thing':185 'tree':243 'unless':43 'unrecover':36 'use':149 'user':62 'want':4,24 'without':262"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6817442"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703240271 {#1387
    date: 2023-12-22 11:17:51.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 {#1389
  +user: Proxies\__CG__\App\Entity\User {#1377 …}
  +entry: App\Entity\Entry {#1769 …}
  +magazine: App\Entity\Magazine {#312
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#320
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#300 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#296 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#285 …}
    +entries: Doctrine\ORM\PersistentCollection {#243 …}
    +posts: Doctrine\ORM\PersistentCollection {#201 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#263 …}
    +bans: Doctrine\ORM\PersistentCollection {#180 …}
    +reports: Doctrine\ORM\PersistentCollection {#166 …}
    +badges: Doctrine\ORM\PersistentCollection {#144 …}
    +logs: Doctrine\ORM\PersistentCollection {#134 …}
    +awards: Doctrine\ORM\PersistentCollection {#123 …}
    +categories: Doctrine\ORM\PersistentCollection {#110 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#321
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#315
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    > I don’t want to do any sort of RAID 0 or striping because the hard drives are old and I don’t want a single one of them failing to make the entire backup unrecoverable.\n
    \n
    This will happen in any case unless you had enough capacity for redundancy.\n
    \n
    What is in this 4TB drive? A Linux installation? A bunch of user data? Both? What kind of data?\n
    \n
    The first step to this is to separate your concerns. If you had e.g. a 20GiB Linux install, 10GiB of loose home files, 1TiB of Movies, 500GiB of photos, 1TiB of games and 500GiB of Music for example, you could back each of those up separately onto separate drives.\n
    \n
    Now, it’s likely that you’d still have more data of one category than what fits on your largest external drive (movies are a likely candidate).\n
    \n
    For this purpose, I use [git-annex.branchable.com](https://git-annex.branchable.com/). It’s a beast to get into and set up properly with plenty of footguns attached but it was designed to solve issues like this elegantly.  \n
    One of the most important things it does is separate file content from file metadata; making metadata available in all locations (“repos”) while data can be present in only a subset, thereby achieving distributed storage. I.e. you could have 4TiB of file contents distributed over a bunch of 500GiB drives but in each one of those repos you’d have the full file tree available (metadata of all files + content of present files) allowing you to manage your files in any place without having all the contents present (or even any). It’s quite magical.\n
    \n
    Once configured properly, you can simply attach a drive, clone the git repo onto it and then run a `git annex sync --content` and it’ll fill that drive up with as much content as it can or until each “file”'s `numcopies` or other configured constraints are reached.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703240271 {#1919
    date: 2023-12-22 11:17:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@HiddenLayer5@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1945 …}
  +nested: Doctrine\ORM\PersistentCollection {#1941 …}
  +votes: Doctrine\ORM\PersistentCollection {#1371 …}
  +reports: Doctrine\ORM\PersistentCollection {#1399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2466 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2166 …}
  -id: 242786
  -bodyTs: "'/).':153 '0':11 '10gib':87 '1tib':92,98 '20gib':84 '4tb':54 '4tib':219 '500gib':95,102,228 'achiev':212 'allow':253 'annex':295 'attach':169,281 'avail':197,244 'back':109 'backup':35 'beast':157 'bunch':60,226 'candid':144 'capac':47 'case':42 'categori':131 'clone':284 'concern':78 'configur':276,320 'constraint':321 'content':191,222,249,266,297,308 'could':108,217 'd':124,238 'data':63,68,128,203 'design':173 'distribut':213,223 'drive':17,55,117,139,229,283,303 'e.g':82 'eleg':179 'enough':46 'entir':34 'even':269 'exampl':106 'extern':138 'fail':30 'file':91,190,193,221,242,248,252,258,315 'fill':301 'first':70 'fit':134 'footgun':168 'full':241 'game':100 'get':159 'git':286,294 'git-annex.branchable.com':150,152 'git-annex.branchable.com/).':151 'happen':39 'hard':16 'home':90 'i.e':215 'import':184 'instal':58,86 'issu':176 'kind':66 'largest':137 'like':121,143,177 'linux':57,85 'll':300 'locat':200 'loos':89 'magic':274 'make':32,195 'manag':256 'metadata':194,196,245 'movi':94,140 'much':307 'music':104 'numcopi':317 'old':19 'one':27,130,180,233 'onto':115,288 'photo':97 'place':261 'plenti':166 'present':206,251,267 'proper':164,277 'purpos':147 'quit':273 'raid':10 'reach':323 'redund':49 'repo':201,236,287 'run':292 'separ':76,114,116,189 'set':162 'simpli':280 'singl':26 'solv':175 'sort':8 'step':71 'still':125 'storag':214 'stripe':13 'subset':210 'sync':296 'therebi':211 'thing':185 'tree':243 'unless':43 'unrecover':36 'use':149 'user':62 'want':4,24 'without':262"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6817442"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703240271 {#1387
    date: 2023-12-22 11:17:51.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: null
  +name: "datahoarder@lemmy.ml"
  +title: "datahoarder"
  +description: """
    **Who are we?**\n
    \n
    We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
    \n
    We are one. We are legion. And we’re trying really hard not to forget.\n
    \n
    – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 58
  +entryCommentCount: 311
  +postCount: 1
  +postCommentCount: 1
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729502222 {#320
    date: 2024-10-21 11:17:02.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#300 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#296 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#285 …}
  +entries: Doctrine\ORM\PersistentCollection {#243 …}
  +posts: Doctrine\ORM\PersistentCollection {#201 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#263 …}
  +bans: Doctrine\ORM\PersistentCollection {#180 …}
  +reports: Doctrine\ORM\PersistentCollection {#166 …}
  +badges: Doctrine\ORM\PersistentCollection {#144 …}
  +logs: Doctrine\ORM\PersistentCollection {#134 …}
  +awards: Doctrine\ORM\PersistentCollection {#123 …}
  +categories: Doctrine\ORM\PersistentCollection {#110 …}
  -id: 32
  +apId: "datahoarder@lemmy.ml"
  +apProfileId: "https://lemmy.ml/c/datahoarder"
  +apPublicUrl: "https://lemmy.ml/c/datahoarder"
  +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
  +apInboxUrl: "https://lemmy.ml/inbox"
  +apDomain: "lemmy.ml"
  +apPreferredUsername: "datahoarder"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1729303437 {#321
    date: 2024-10-19 04:03:57.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1695727192 {#315
    date: 2023-09-26 13:19:52.0 +02: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