GET https://kbin.spritesserver.nl/u/@kratoz29@lemm.ee/newest/2023-11-26::2023-11-26

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.88 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.05 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
Proxies\__CG__\App\Entity\Entry {#1585
  +user: Proxies\__CG__\App\Entity\User {#2359 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
  +slug: "Arrs-Feedback"
  +title: "Arrs Feedback"
  +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
  +body: """
    #### Context\n
    \n
    Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
    \n
    It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
    \n
    After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
    \n
    #### Setup\n
    \n
    - All of the services run in Docker containers.\n
    - Each container is a separate Compose file managed by Systemd.\n
    - The system itself is in a VM running on my home server (both Arch, btw).\n
    - Tailscale is used for remote access to the local network.\n
    - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
    \n
    #### Questions\n
    \n
    - What am I missing or can be improved?\n
    - Is there a better way to document?\n
    - What do you do differently that might be beneficial?\n
    \n
    #### Thoughts\n
    \n
    - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
    - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
    - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
    - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
    \n
    #### Notes\n
    \n
    - Diagram was made using D2lang.\n
    - Some of the connections have been simplified to improve readability / routing.\n
    - Some services have been redacted out of an abundance of caution.\n
    - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
    \n
    Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
    \n
    Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 38
  +favouriteCount: 149
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1702389486 {#1620
    date: 2023-12-12 14:58:06.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2448 …}
  +votes: Doctrine\ORM\PersistentCollection {#2447 …}
  +reports: Doctrine\ORM\PersistentCollection {#2458 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
  +badges: Doctrine\ORM\PersistentCollection {#1611 …}
  +children: [
    App\Entity\EntryComment {#1640
      +user: App\Entity\User {#265 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1585 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: null
      +root: null
      +body: "This guy automates."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1701029582 {#1698
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@Xyre@lemmus.org"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1561 …}
      +nested: Doctrine\ORM\PersistentCollection {#1528 …}
      +votes: Doctrine\ORM\PersistentCollection {#1568 …}
      +reports: Doctrine\ORM\PersistentCollection {#1549 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
      -id: 167730
      -bodyTs: "'autom':3 'guy':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemm.ee/comment/6617146"
      +editedAt: null
      +createdAt: DateTimeImmutable @1701029582 {#1609
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +"title": 167730
    }
  ]
  -id: 17049
  -titleTs: "'arr':1 'feedback':2"
  -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1701105229
  +visibility: "visible             "
  +apId: "https://lemmus.org/post/1734205"
  +editedAt: DateTimeImmutable @1701701693 {#1645
    date: 2023-12-04 15:54:53.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701018829 {#1701
    date: 2023-11-26 18:13:49.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"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
Proxies\__CG__\App\Entity\Entry {#1585
  +user: Proxies\__CG__\App\Entity\User {#2359 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
  +slug: "Arrs-Feedback"
  +title: "Arrs Feedback"
  +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
  +body: """
    #### Context\n
    \n
    Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
    \n
    It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
    \n
    After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
    \n
    #### Setup\n
    \n
    - All of the services run in Docker containers.\n
    - Each container is a separate Compose file managed by Systemd.\n
    - The system itself is in a VM running on my home server (both Arch, btw).\n
    - Tailscale is used for remote access to the local network.\n
    - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
    \n
    #### Questions\n
    \n
    - What am I missing or can be improved?\n
    - Is there a better way to document?\n
    - What do you do differently that might be beneficial?\n
    \n
    #### Thoughts\n
    \n
    - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
    - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
    - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
    - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
    \n
    #### Notes\n
    \n
    - Diagram was made using D2lang.\n
    - Some of the connections have been simplified to improve readability / routing.\n
    - Some services have been redacted out of an abundance of caution.\n
    - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
    \n
    Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
    \n
    Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 38
  +favouriteCount: 149
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1702389486 {#1620
    date: 2023-12-12 14:58:06.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2448 …}
  +votes: Doctrine\ORM\PersistentCollection {#2447 …}
  +reports: Doctrine\ORM\PersistentCollection {#2458 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
  +badges: Doctrine\ORM\PersistentCollection {#1611 …}
  +children: [
    App\Entity\EntryComment {#1640
      +user: App\Entity\User {#265 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1585 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: null
      +root: null
      +body: "This guy automates."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1701029582 {#1698
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@Xyre@lemmus.org"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1561 …}
      +nested: Doctrine\ORM\PersistentCollection {#1528 …}
      +votes: Doctrine\ORM\PersistentCollection {#1568 …}
      +reports: Doctrine\ORM\PersistentCollection {#1549 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
      -id: 167730
      -bodyTs: "'autom':3 'guy':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemm.ee/comment/6617146"
      +editedAt: null
      +createdAt: DateTimeImmutable @1701029582 {#1609
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +"title": 167730
    }
  ]
  -id: 17049
  -titleTs: "'arr':1 'feedback':2"
  -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1701105229
  +visibility: "visible             "
  +apId: "https://lemmus.org/post/1734205"
  +editedAt: DateTimeImmutable @1701701693 {#1645
    date: 2023-12-04 15:54:53.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701018829 {#1701
    date: 2023-11-26 18:13:49.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"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
Proxies\__CG__\App\Entity\Entry {#1585
  +user: Proxies\__CG__\App\Entity\User {#2359 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
  +slug: "Arrs-Feedback"
  +title: "Arrs Feedback"
  +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
  +body: """
    #### Context\n
    \n
    Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
    \n
    It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
    \n
    After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
    \n
    #### Setup\n
    \n
    - All of the services run in Docker containers.\n
    - Each container is a separate Compose file managed by Systemd.\n
    - The system itself is in a VM running on my home server (both Arch, btw).\n
    - Tailscale is used for remote access to the local network.\n
    - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
    \n
    #### Questions\n
    \n
    - What am I missing or can be improved?\n
    - Is there a better way to document?\n
    - What do you do differently that might be beneficial?\n
    \n
    #### Thoughts\n
    \n
    - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
    - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
    - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
    - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
    \n
    #### Notes\n
    \n
    - Diagram was made using D2lang.\n
    - Some of the connections have been simplified to improve readability / routing.\n
    - Some services have been redacted out of an abundance of caution.\n
    - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
    \n
    Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
    \n
    Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 38
  +favouriteCount: 149
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1702389486 {#1620
    date: 2023-12-12 14:58:06.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2448 …}
  +votes: Doctrine\ORM\PersistentCollection {#2447 …}
  +reports: Doctrine\ORM\PersistentCollection {#2458 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
  +badges: Doctrine\ORM\PersistentCollection {#1611 …}
  +children: [
    App\Entity\EntryComment {#1640
      +user: App\Entity\User {#265 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1585 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: null
      +root: null
      +body: "This guy automates."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1701029582 {#1698
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@Xyre@lemmus.org"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1561 …}
      +nested: Doctrine\ORM\PersistentCollection {#1528 …}
      +votes: Doctrine\ORM\PersistentCollection {#1568 …}
      +reports: Doctrine\ORM\PersistentCollection {#1549 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
      -id: 167730
      -bodyTs: "'autom':3 'guy':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemm.ee/comment/6617146"
      +editedAt: null
      +createdAt: DateTimeImmutable @1701029582 {#1609
        date: 2023-11-26 21:13:02.0 +01:00
      }
      +"title": 167730
    }
  ]
  -id: 17049
  -titleTs: "'arr':1 'feedback':2"
  -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1701105229
  +visibility: "visible             "
  +apId: "https://lemmus.org/post/1734205"
  +editedAt: DateTimeImmutable @1701701693 {#1645
    date: 2023-12-04 15:54:53.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701018829 {#1701
    date: 2023-11-26 18:13:49.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"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 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
6 DENIED moderate
App\Entity\EntryComment {#1640
  +user: App\Entity\User {#265 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1585
    +user: Proxies\__CG__\App\Entity\User {#2359 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
    +slug: "Arrs-Feedback"
    +title: "Arrs Feedback"
    +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
    +body: """
      #### Context\n
      \n
      Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
      \n
      It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
      \n
      After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
      \n
      #### Setup\n
      \n
      - All of the services run in Docker containers.\n
      - Each container is a separate Compose file managed by Systemd.\n
      - The system itself is in a VM running on my home server (both Arch, btw).\n
      - Tailscale is used for remote access to the local network.\n
      - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
      \n
      #### Questions\n
      \n
      - What am I missing or can be improved?\n
      - Is there a better way to document?\n
      - What do you do differently that might be beneficial?\n
      \n
      #### Thoughts\n
      \n
      - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
      - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
      - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
      - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
      \n
      #### Notes\n
      \n
      - Diagram was made using D2lang.\n
      - Some of the connections have been simplified to improve readability / routing.\n
      - Some services have been redacted out of an abundance of caution.\n
      - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
      \n
      Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
      \n
      Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 38
    +favouriteCount: 149
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1702389486 {#1620
      date: 2023-12-12 14:58:06.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2448 …}
    +votes: Doctrine\ORM\PersistentCollection {#2447 …}
    +reports: Doctrine\ORM\PersistentCollection {#2458 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
    +badges: Doctrine\ORM\PersistentCollection {#1611 …}
    +children: [
      App\Entity\EntryComment {#1640}
    ]
    -id: 17049
    -titleTs: "'arr':1 'feedback':2"
    -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1701105229
    +visibility: "visible             "
    +apId: "https://lemmus.org/post/1734205"
    +editedAt: DateTimeImmutable @1701701693 {#1645
      date: 2023-12-04 15:54:53.0 +01:00
    }
    +createdAt: DateTimeImmutable @1701018829 {#1701
      date: 2023-11-26 18:13:49.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: null
  +root: null
  +body: "This guy automates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1701029582 {#1698
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Xyre@lemmus.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1561 …}
  +nested: Doctrine\ORM\PersistentCollection {#1528 …}
  +votes: Doctrine\ORM\PersistentCollection {#1568 …}
  +reports: Doctrine\ORM\PersistentCollection {#1549 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
  -id: 167730
  -bodyTs: "'autom':3 'guy':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/6617146"
  +editedAt: null
  +createdAt: DateTimeImmutable @1701029582 {#1609
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +"title": 167730
}
"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
7 DENIED edit
App\Entity\EntryComment {#1640
  +user: App\Entity\User {#265 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1585
    +user: Proxies\__CG__\App\Entity\User {#2359 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
    +slug: "Arrs-Feedback"
    +title: "Arrs Feedback"
    +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
    +body: """
      #### Context\n
      \n
      Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
      \n
      It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
      \n
      After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
      \n
      #### Setup\n
      \n
      - All of the services run in Docker containers.\n
      - Each container is a separate Compose file managed by Systemd.\n
      - The system itself is in a VM running on my home server (both Arch, btw).\n
      - Tailscale is used for remote access to the local network.\n
      - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
      \n
      #### Questions\n
      \n
      - What am I missing or can be improved?\n
      - Is there a better way to document?\n
      - What do you do differently that might be beneficial?\n
      \n
      #### Thoughts\n
      \n
      - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
      - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
      - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
      - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
      \n
      #### Notes\n
      \n
      - Diagram was made using D2lang.\n
      - Some of the connections have been simplified to improve readability / routing.\n
      - Some services have been redacted out of an abundance of caution.\n
      - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
      \n
      Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
      \n
      Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 38
    +favouriteCount: 149
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1702389486 {#1620
      date: 2023-12-12 14:58:06.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2448 …}
    +votes: Doctrine\ORM\PersistentCollection {#2447 …}
    +reports: Doctrine\ORM\PersistentCollection {#2458 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
    +badges: Doctrine\ORM\PersistentCollection {#1611 …}
    +children: [
      App\Entity\EntryComment {#1640}
    ]
    -id: 17049
    -titleTs: "'arr':1 'feedback':2"
    -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1701105229
    +visibility: "visible             "
    +apId: "https://lemmus.org/post/1734205"
    +editedAt: DateTimeImmutable @1701701693 {#1645
      date: 2023-12-04 15:54:53.0 +01:00
    }
    +createdAt: DateTimeImmutable @1701018829 {#1701
      date: 2023-11-26 18:13:49.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: null
  +root: null
  +body: "This guy automates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1701029582 {#1698
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Xyre@lemmus.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1561 …}
  +nested: Doctrine\ORM\PersistentCollection {#1528 …}
  +votes: Doctrine\ORM\PersistentCollection {#1568 …}
  +reports: Doctrine\ORM\PersistentCollection {#1549 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
  -id: 167730
  -bodyTs: "'autom':3 'guy':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/6617146"
  +editedAt: null
  +createdAt: DateTimeImmutable @1701029582 {#1609
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +"title": 167730
}
"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
8 DENIED moderate
App\Entity\EntryComment {#1640
  +user: App\Entity\User {#265 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1585
    +user: Proxies\__CG__\App\Entity\User {#2359 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2463 …}
    +slug: "Arrs-Feedback"
    +title: "Arrs Feedback"
    +url: "https://lemmus.org/pictrs/image/f472b207-0ba7-4577-9bca-cf47dbe82d21.webp"
    +body: """
      #### Context\n
      \n
      Having started out in the world of Napster & Limewire, I’ve always relied on public sources. It wasn’t until in the early '10s that I lucked into a Gazelle-based tracker that was started by some fellow community members. Unfortunately, I wasn’t paying enough attention when they closed shop and didn’t know how to move elsewhere. Combined with some life circumstances I gave up the pursuit for the time being.\n
      \n
      It wasn’t until recently that a friend was kind enough to help me get back and introduced me to current state of automation. Over the course of a few months, I’ve since built up the attached systems. I’ve been having an absolute blast learning and am very impressed with all of the contributions!\n
      \n
      After all of the updates due to BF deals, I put together the attached diagram as it was starting to get too complex to keep all of the interactions in my head. 😅\n
      \n
      #### Setup\n
      \n
      - All of the services run in Docker containers.\n
      - Each container is a separate Compose file managed by Systemd.\n
      - The system itself is in a VM running on my home server (both Arch, btw).\n
      - Tailscale is used for remote access to the local network.\n
      - ProtonVPN is managed by Gluetun and uses a separate network for isolating services.\n
      \n
      #### Questions\n
      \n
      - What am I missing or can be improved?\n
      - Is there a better way to document?\n
      - What do you do differently that might be beneficial?\n
      \n
      #### Thoughts\n
      \n
      - I had Calibre set up at one point, but I really don’t like how it tracks files by renaming them. I have been considering trying to automate with the CLI instead, but haven’t gotten around to it yet.\n
      - I’ve been toying with the idea of creating a file-arr for analyzing disk usage, performing common operations, and exposing a web-based upload/download client so I don’t have to mount the volume everywhere.\n
      - Similarly, I’m interested in a way to aggregate logs/notifications/metrics. I’m aware of Notifiarr, but would prefer a self-hosted version.\n
      - I just set up Last FM scrobbling so I don’t have any data yet. I’m hoping to use that for discovery and if possible, playlist syncing or auto-generation.\n
      \n
      #### Notes\n
      \n
      - Diagram was made using D2lang.\n
      - Some of the connections have been simplified to improve readability / routing.\n
      - Some services have been redacted out of an abundance of caution.\n
      - I know VPN with Usenet isn’t necessary, but it’s easier to keep it consistent.\n
      \n
      Also, thanks for the recommendations to check out deemix/Deezer. That worked really well! 😀\n
      \n
      Edit: [HQ version of diagram](https://files.catbox.moe/p5oytf.png)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 38
    +favouriteCount: 149
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1702389486 {#1620
      date: 2023-12-12 14:58:06.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2448 …}
    +votes: Doctrine\ORM\PersistentCollection {#2447 …}
    +reports: Doctrine\ORM\PersistentCollection {#2458 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1728 …}
    +badges: Doctrine\ORM\PersistentCollection {#1611 …}
    +children: [
      App\Entity\EntryComment {#1640}
    ]
    -id: 17049
    -titleTs: "'arr':1 'feedback':2"
    -bodyTs: "'/p5oytf.png)':444 '10s':25 'absolut':120 'abund':405 'access':203 'aggreg':333 'also':424 'alway':13 'analyz':301 'arch':196 'around':283 'arr':299 'attach':113,145 'attent':49 'auto':378 'auto-gener':377 'autom':99,274 'awar':337 'back':91 'base':33,312 'benefici':245 'better':233 'bf':139 'blast':121 'btw':197 'built':110 'calibr':249 'caution':407 'check':430 'circumst':66 'cli':277 'client':314 'close':52 'combin':62 'common':305 'communiti':41 'complex':154 'compos':178 'connect':389 'consid':271 'consist':423 'contain':172,174 'context':1 'contribut':131 'cours':102 'creat':295 'current':96 'd2lang':385 'data':361 'deal':140 'deemix/deezer':432 'diagram':146,381,441 'didn':55 'differ':241 'discoveri':370 'disk':302 'docker':171 'document':236 'due':137 'earli':24 'easier':419 'edit':437 'elsewher':61 'enough':48,86 'everywher':324 'expos':308 'fellow':40 'file':179,264,298 'file-arr':297 'files.catbox.moe':443 'files.catbox.moe/p5oytf.png)':442 'fm':353 'friend':83 'gave':68 'gazell':32 'gazelle-bas':31 'generat':379 'get':90,152 'gluetun':212 'gotten':282 'haven':280 'head':163 'help':88 'home':193 'hope':365 'host':346 'hq':438 'idea':293 'impress':126 'improv':229,394 'instead':278 'interact':160 'interest':328 'introduc':93 'isn':413 'isol':219 'keep':156,421 'kind':85 'know':57,409 'last':352 'learn':122 'life':65 'like':260 'limewir':10 'local':206 'logs/notifications/metrics':334 'luck':28 'm':327,336,364 'made':383 'manag':180,210 'member':42 'might':243 'miss':225 'month':106 'mount':321 'move':60 'napster':9 'necessari':415 'network':207,217 'note':380 'notifiarr':339 'one':253 'oper':306 'pay':47 'perform':304 'playlist':374 'point':254 'possibl':373 'prefer':342 'protonvpn':208 'public':16 'pursuit':71 'put':142 'question':221 'readabl':395 'realli':257,435 'recent':80 'recommend':428 'redact':401 'reli':14 'remot':202 'renam':266 'rout':396 'run':169,190 'scrobbl':354 'self':345 'self-host':344 'separ':177,216 'server':194 'servic':168,220,398 'set':250,350 'setup':164 'shop':53 'similar':325 'simplifi':392 'sinc':109 'sourc':17 'start':3,37,150 'state':97 'sync':375 'system':114,184 'systemd':182 'tailscal':198 'thank':425 'thought':246 'time':74 'togeth':143 'toy':290 'track':263 'tracker':34 'tri':272 'unfortun':43 'updat':136 'upload/download':313 'usag':303 'use':200,214,367,384 'usenet':412 've':12,108,116,288 'version':347,439 'vm':189 'volum':323 'vpn':410 'wasn':19,45,77 'way':234,331 'web':311 'web-bas':310 'well':436 'work':434 'world':7 'would':341 'yet':286,362"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1701105229
    +visibility: "visible             "
    +apId: "https://lemmus.org/post/1734205"
    +editedAt: DateTimeImmutable @1701701693 {#1645
      date: 2023-12-04 15:54:53.0 +01:00
    }
    +createdAt: DateTimeImmutable @1701018829 {#1701
      date: 2023-11-26 18:13:49.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: null
  +root: null
  +body: "This guy automates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1701029582 {#1698
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@Xyre@lemmus.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1561 …}
  +nested: Doctrine\ORM\PersistentCollection {#1528 …}
  +votes: Doctrine\ORM\PersistentCollection {#1568 …}
  +reports: Doctrine\ORM\PersistentCollection {#1549 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1548 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1591 …}
  -id: 167730
  -bodyTs: "'autom':3 'guy':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemm.ee/comment/6617146"
  +editedAt: null
  +createdAt: DateTimeImmutable @1701029582 {#1609
    date: 2023-11-26 21:13:02.0 +01:00
  }
  +"title": 167730
}
"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
9 DENIED ROLE_ADMIN
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
10 DENIED ROLE_MODERATOR
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