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 …}
}
33.46 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
App\Entity\EntryComment {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +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 {#321
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -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 {#322
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’m a Linux newb and I managed to set this up a couple months ago. Despite being new to servers and containers, I did not find it too difficult.\n
    \n
    Here is the guide I used: [zerodya.net/self-host-jellyfin-media-streaming-st…](https://zerodya.net/self-host-jellyfin-media-streaming-stack/)\n
    \n
    The guide above doesnt include Audiobookshelf installation, but you will quickly see that adding Audiobookshelf to the basic setup is very easy. There are two things I’ve learned since the initial setup, which are worth a deviation from the guide above.\n
    \n
    First, the recommendation in the guide to use a separate userid and groupid (1001) for the docker containers vs. your own userid/groupid (1000) is a royal PITA and not necessary for most basic use cases.\n
    \n
    Second, and much more important, you MUST set up your VPN in a Gluetun container and then make your torrent client container a “service” of the Gluetun container. Yes, I know, that sounds like some advanced-level abstraction, but it is actually extremely easy to do and it will save you from getting a nastygram from your ISP when your VPN loses connection. The MPIAA is extremely active with automated detection and processing of torrenting data, but if you set up your VPN with Gluetun, you have a perfectly effective kill switch when your VPN connection drops. And, no, the built-in killswitch on your VPN client won’t work with containers.\n
    \n
    Here is the guide I used to make that modification to the initial setup: [www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)\n
    \n
    Good luck! It was fun to set up, and even more fun to use.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1704401591 {#1605
    date: 2024-01-04 21:53:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@anonymouse@lemmings.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 280632
  -bodyTs: "'/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':250 '/self-host-jellyfin-media-streaming-st':39 '/self-host-jellyfin-media-streaming-stack/)':42 '1000':107 '1001':98 'abstract':158 'activ':188 'actual':162 'ad':56 'advanc':156 'advanced-level':155 'ago':16 'audiobookshelf':48,57 'autom':190 'basic':60,117 'built':222 'built-in':221 'case':119 'client':140,228 'connect':183,216 'contain':23,102,134,141,147,233 'coupl':14 'data':196 'despit':17 'detect':191 'deviat':80 'difficult':30 'docker':101 'doesnt':46 'drop':217 'easi':64,164 'effect':210 'even':260 'extrem':163,187 'find':27 'first':85 'fun':255,262 'get':173 'gluetun':133,146,205 'good':251 'groupid':97 'guid':34,44,83,90,237 'import':124 'includ':47 'initi':74,246 'instal':49 'isp':178 'kill':211 'killswitch':224 'know':150 'learn':71 'level':157 'like':153 'linux':4 'lose':182 'luck':252 'm':2 'make':137,241 'manag':8 'modif':243 'month':15 'mpiaa':185 'much':122 'must':126 'nastygram':175 'necessari':114 'new':19 'newb':5 'perfect':209 'pita':111 'process':193 'quick':53 'recommend':87 'royal':110 'save':170 'second':120 'see':54 'separ':94 'server':21 'servic':143 'set':10,127,200,257 'setup':61,75,247 'sinc':72 'sound':152 'switch':212 'thing':68 'torrent':139,195 'two':67 'use':36,92,118,239,264 'userid':95 'userid/groupid':106 've':70 'vpn':130,181,203,215,227 'vs':103 'won':229 'work':231 'worth':78 'www.smarthomebeginner.com':249 'www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':248 'yes':148 'zerodya.net':38,41 'zerodya.net/self-host-jellyfin-media-streaming-st':37 'zerodya.net/self-host-jellyfin-media-streaming-stack/)':40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6407473"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704401591 {#1377
    date: 2024-01-04 21:53:11.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 {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +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 {#321
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -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 {#322
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’m a Linux newb and I managed to set this up a couple months ago. Despite being new to servers and containers, I did not find it too difficult.\n
    \n
    Here is the guide I used: [zerodya.net/self-host-jellyfin-media-streaming-st…](https://zerodya.net/self-host-jellyfin-media-streaming-stack/)\n
    \n
    The guide above doesnt include Audiobookshelf installation, but you will quickly see that adding Audiobookshelf to the basic setup is very easy. There are two things I’ve learned since the initial setup, which are worth a deviation from the guide above.\n
    \n
    First, the recommendation in the guide to use a separate userid and groupid (1001) for the docker containers vs. your own userid/groupid (1000) is a royal PITA and not necessary for most basic use cases.\n
    \n
    Second, and much more important, you MUST set up your VPN in a Gluetun container and then make your torrent client container a “service” of the Gluetun container. Yes, I know, that sounds like some advanced-level abstraction, but it is actually extremely easy to do and it will save you from getting a nastygram from your ISP when your VPN loses connection. The MPIAA is extremely active with automated detection and processing of torrenting data, but if you set up your VPN with Gluetun, you have a perfectly effective kill switch when your VPN connection drops. And, no, the built-in killswitch on your VPN client won’t work with containers.\n
    \n
    Here is the guide I used to make that modification to the initial setup: [www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)\n
    \n
    Good luck! It was fun to set up, and even more fun to use.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1704401591 {#1605
    date: 2024-01-04 21:53:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@anonymouse@lemmings.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 280632
  -bodyTs: "'/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':250 '/self-host-jellyfin-media-streaming-st':39 '/self-host-jellyfin-media-streaming-stack/)':42 '1000':107 '1001':98 'abstract':158 'activ':188 'actual':162 'ad':56 'advanc':156 'advanced-level':155 'ago':16 'audiobookshelf':48,57 'autom':190 'basic':60,117 'built':222 'built-in':221 'case':119 'client':140,228 'connect':183,216 'contain':23,102,134,141,147,233 'coupl':14 'data':196 'despit':17 'detect':191 'deviat':80 'difficult':30 'docker':101 'doesnt':46 'drop':217 'easi':64,164 'effect':210 'even':260 'extrem':163,187 'find':27 'first':85 'fun':255,262 'get':173 'gluetun':133,146,205 'good':251 'groupid':97 'guid':34,44,83,90,237 'import':124 'includ':47 'initi':74,246 'instal':49 'isp':178 'kill':211 'killswitch':224 'know':150 'learn':71 'level':157 'like':153 'linux':4 'lose':182 'luck':252 'm':2 'make':137,241 'manag':8 'modif':243 'month':15 'mpiaa':185 'much':122 'must':126 'nastygram':175 'necessari':114 'new':19 'newb':5 'perfect':209 'pita':111 'process':193 'quick':53 'recommend':87 'royal':110 'save':170 'second':120 'see':54 'separ':94 'server':21 'servic':143 'set':10,127,200,257 'setup':61,75,247 'sinc':72 'sound':152 'switch':212 'thing':68 'torrent':139,195 'two':67 'use':36,92,118,239,264 'userid':95 'userid/groupid':106 've':70 'vpn':130,181,203,215,227 'vs':103 'won':229 'work':231 'worth':78 'www.smarthomebeginner.com':249 'www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':248 'yes':148 'zerodya.net':38,41 'zerodya.net/self-host-jellyfin-media-streaming-st':37 'zerodya.net/self-host-jellyfin-media-streaming-stack/)':40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6407473"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704401591 {#1377
    date: 2024-01-04 21:53:11.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 {#1394
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +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 {#321
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -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 {#322
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#316
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    I’m a Linux newb and I managed to set this up a couple months ago. Despite being new to servers and containers, I did not find it too difficult.\n
    \n
    Here is the guide I used: [zerodya.net/self-host-jellyfin-media-streaming-st…](https://zerodya.net/self-host-jellyfin-media-streaming-stack/)\n
    \n
    The guide above doesnt include Audiobookshelf installation, but you will quickly see that adding Audiobookshelf to the basic setup is very easy. There are two things I’ve learned since the initial setup, which are worth a deviation from the guide above.\n
    \n
    First, the recommendation in the guide to use a separate userid and groupid (1001) for the docker containers vs. your own userid/groupid (1000) is a royal PITA and not necessary for most basic use cases.\n
    \n
    Second, and much more important, you MUST set up your VPN in a Gluetun container and then make your torrent client container a “service” of the Gluetun container. Yes, I know, that sounds like some advanced-level abstraction, but it is actually extremely easy to do and it will save you from getting a nastygram from your ISP when your VPN loses connection. The MPIAA is extremely active with automated detection and processing of torrenting data, but if you set up your VPN with Gluetun, you have a perfectly effective kill switch when your VPN connection drops. And, no, the built-in killswitch on your VPN client won’t work with containers.\n
    \n
    Here is the guide I used to make that modification to the initial setup: [www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)\n
    \n
    Good luck! It was fun to set up, and even more fun to use.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1704401591 {#1605
    date: 2024-01-04 21:53:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@anonymouse@lemmings.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 280632
  -bodyTs: "'/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':250 '/self-host-jellyfin-media-streaming-st':39 '/self-host-jellyfin-media-streaming-stack/)':42 '1000':107 '1001':98 'abstract':158 'activ':188 'actual':162 'ad':56 'advanc':156 'advanced-level':155 'ago':16 'audiobookshelf':48,57 'autom':190 'basic':60,117 'built':222 'built-in':221 'case':119 'client':140,228 'connect':183,216 'contain':23,102,134,141,147,233 'coupl':14 'data':196 'despit':17 'detect':191 'deviat':80 'difficult':30 'docker':101 'doesnt':46 'drop':217 'easi':64,164 'effect':210 'even':260 'extrem':163,187 'find':27 'first':85 'fun':255,262 'get':173 'gluetun':133,146,205 'good':251 'groupid':97 'guid':34,44,83,90,237 'import':124 'includ':47 'initi':74,246 'instal':49 'isp':178 'kill':211 'killswitch':224 'know':150 'learn':71 'level':157 'like':153 'linux':4 'lose':182 'luck':252 'm':2 'make':137,241 'manag':8 'modif':243 'month':15 'mpiaa':185 'much':122 'must':126 'nastygram':175 'necessari':114 'new':19 'newb':5 'perfect':209 'pita':111 'process':193 'quick':53 'recommend':87 'royal':110 'save':170 'second':120 'see':54 'separ':94 'server':21 'servic':143 'set':10,127,200,257 'setup':61,75,247 'sinc':72 'sound':152 'switch':212 'thing':68 'torrent':139,195 'two':67 'use':36,92,118,239,264 'userid':95 'userid/groupid':106 've':70 'vpn':130,181,203,215,227 'vs':103 'won':229 'work':231 'worth':78 'www.smarthomebeginner.com':249 'www.smarthomebeginner.com/gluetun-docker-guide/](https://www.smarthomebeginner.com/gluetun-docker-guide/)':248 'yes':148 'zerodya.net':38,41 'zerodya.net/self-host-jellyfin-media-streaming-st':37 'zerodya.net/self-host-jellyfin-media-streaming-stack/)':40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6407473"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704401591 {#1377
    date: 2024-01-04 21:53:11.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 {#313
  +icon: Proxies\__CG__\App\Entity\Image {#294 …}
  +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 {#321
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#285 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
  +entries: Doctrine\ORM\PersistentCollection {#228 …}
  +posts: Doctrine\ORM\PersistentCollection {#186 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
  +bans: Doctrine\ORM\PersistentCollection {#165 …}
  +reports: Doctrine\ORM\PersistentCollection {#151 …}
  +badges: Doctrine\ORM\PersistentCollection {#129 …}
  +logs: Doctrine\ORM\PersistentCollection {#119 …}
  +awards: Doctrine\ORM\PersistentCollection {#108 …}
  +categories: Doctrine\ORM\PersistentCollection {#95 …}
  -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 {#322
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#316
    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