Components

20 Twig Components
41 Render Count
49 ms Render Time
16.0 MiB Memory Usage

Components

Name Metadata Render Count Render Time
settings_row_switch
"App\Twig\Components\SettingsRowSwitchComponent"
components/_settings_row_switch.html.twig
15 2.14ms
user_settings_row_switch
"App\Twig\Components\UserSettingsRowSwitchComponent"
components/_user_settings_row_switch.html.twig
4 0.68ms
date
"App\Twig\Components\DateComponent"
components/date.html.twig
3 0.55ms
user_inline
"App\Twig\Components\UserInlineComponent"
components/user_inline.html.twig
2 13.38ms
settings_row_enum
"App\Twig\Components\SettingsRowEnumComponent"
components/_settings_row_enum.html.twig
2 0.35ms
entry_comment
"App\Twig\Components\EntryCommentComponent"
components/entry_comment.html.twig
1 21.35ms
date_edited
"App\Twig\Components\DateEditedComponent"
components/date_edited.html.twig
1 0.22ms
user_avatar
"App\Twig\Components\UserAvatarComponent"
components/user_avatar.html.twig
1 0.61ms
vote
"App\Twig\Components\VoteComponent"
components/vote.html.twig
1 0.53ms
boost
"App\Twig\Components\BoostComponent"
components/boost.html.twig
1 1.09ms
user_actions
"App\Twig\Components\UserActionsComponent"
components/user_actions.html.twig
1 0.53ms
magazine_box
"App\Twig\Components\MagazineBoxComponent"
components/magazine_box.html.twig
1 8.56ms
magazine_sub
"App\Twig\Components\MagazineSubComponent"
components/magazine_sub.html.twig
1 0.43ms
related_magazines
"App\Twig\Components\RelatedMagazinesComponent"
components/_cached.html.twig
1 1.89ms
active_users
"App\Twig\Components\ActiveUsersComponent"
components/_cached.html.twig
1 0.30ms
related_categories
"App\Twig\Components\RelatedCategoriesComponent"
components/_cached.html.twig
1 1.34ms
related_posts
"App\Twig\Components\RelatedPostsComponent"
components/_cached.html.twig
1 9.17ms
related_entries
"App\Twig\Components\RelatedEntriesComponent"
components/_cached.html.twig
1 1.67ms
support_us_block
"App\Twig\Components\SupportUsBlock"
components/_cached.html.twig
1 0.25ms
featured_magazines
"App\Twig\Components\FeaturedMagazinesComponent"
components/_cached.html.twig
1 0.73ms

Render calls

entry_comment App\Twig\Components\EntryCommentComponent 16.0 MiB 21.35 ms
Input props
[
  "comment" => App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#1639
  +comment: App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: false
  +level: 1
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 16.0 MiB 12.86 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1370
    +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
    +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
    +email: "TCB13@lemmy.world"
    +username: "@TCB13@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: ""
    +lastActive: DateTime @1729518803 {#2361
      date: 2024-10-21 15:53:23.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
    +entries: Doctrine\ORM\PersistentCollection {#2383 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
    +posts: Doctrine\ORM\PersistentCollection {#1907 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
    +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
    +follows: Doctrine\ORM\PersistentCollection {#2130 …}
    +followers: Doctrine\ORM\PersistentCollection {#2093 …}
    +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
    +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
    +reports: Doctrine\ORM\PersistentCollection {#2328 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
    +violations: Doctrine\ORM\PersistentCollection {#2065 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
    +awards: Doctrine\ORM\PersistentCollection {#2136 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
    +categories: Doctrine\ORM\PersistentCollection {#2104 …}
    -id: 43677
    -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
    +apId: "TCB13@lemmy.world"
    +apProfileId: "https://lemmy.world/u/TCB13"
    +apPublicUrl: "https://lemmy.world/u/TCB13"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "TCB13"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729566764 {#2364
      date: 2024-10-22 05:12:44.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1693492241 {#2372
      date: 2023-08-31 16:30:41.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#1732
  +user: Proxies\__CG__\App\Entity\User {#1370
    +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
    +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
    +email: "TCB13@lemmy.world"
    +username: "@TCB13@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: ""
    +lastActive: DateTime @1729518803 {#2361
      date: 2024-10-21 15:53:23.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
    +entries: Doctrine\ORM\PersistentCollection {#2383 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
    +posts: Doctrine\ORM\PersistentCollection {#1907 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
    +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
    +follows: Doctrine\ORM\PersistentCollection {#2130 …}
    +followers: Doctrine\ORM\PersistentCollection {#2093 …}
    +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
    +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
    +reports: Doctrine\ORM\PersistentCollection {#2328 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
    +violations: Doctrine\ORM\PersistentCollection {#2065 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
    +awards: Doctrine\ORM\PersistentCollection {#2136 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
    +categories: Doctrine\ORM\PersistentCollection {#2104 …}
    -id: 43677
    -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
    +apId: "TCB13@lemmy.world"
    +apProfileId: "https://lemmy.world/u/TCB13"
    +apPublicUrl: "https://lemmy.world/u/TCB13"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "TCB13"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729566764 {#2364
      date: 2024-10-22 05:12:44.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1693492241 {#2372
      date: 2023-08-31 16:30:41.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 16.0 MiB 0.25 ms
Input props
[
  "date" => DateTimeImmutable @1706541016 {#1368
    date: 2024-01-29 16:10:16.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#2229
  +date: DateTimeImmutable @1706541016 {#1368
    date: 2024-01-29 16:10:16.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 16.0 MiB 0.22 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706541016 {#1368
    date: 2024-01-29 16:10:16.0 +01:00
  }
  "editedAt" => DateTimeImmutable @1729412383 {#1945
    date: 2024-10-20 10:19:43.0 +02:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#2207
  +createdAt: DateTimeImmutable @1706541016 {#1368
    date: 2024-01-29 16:10:16.0 +01:00
  }
  +editedAt: DateTimeImmutable @1729412383 {#1945
    date: 2024-10-20 10:19:43.0 +02:00
  }
}
user_avatar App\Twig\Components\UserAvatarComponent 16.0 MiB 0.61 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1370
    +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
    +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
    +email: "TCB13@lemmy.world"
    +username: "@TCB13@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: ""
    +lastActive: DateTime @1729518803 {#2361
      date: 2024-10-21 15:53:23.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
    +entries: Doctrine\ORM\PersistentCollection {#2383 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
    +posts: Doctrine\ORM\PersistentCollection {#1907 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
    +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
    +follows: Doctrine\ORM\PersistentCollection {#2130 …}
    +followers: Doctrine\ORM\PersistentCollection {#2093 …}
    +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
    +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
    +reports: Doctrine\ORM\PersistentCollection {#2328 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
    +violations: Doctrine\ORM\PersistentCollection {#2065 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
    +awards: Doctrine\ORM\PersistentCollection {#2136 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
    +categories: Doctrine\ORM\PersistentCollection {#2104 …}
    -id: 43677
    -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
    +apId: "TCB13@lemmy.world"
    +apProfileId: "https://lemmy.world/u/TCB13"
    +apPublicUrl: "https://lemmy.world/u/TCB13"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "TCB13"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729566764 {#2364
      date: 2024-10-22 05:12:44.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1693492241 {#2372
      date: 2023-08-31 16:30:41.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#2153
  +width: 40
  +height: 40
  +user: Proxies\__CG__\App\Entity\User {#1370
    +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
    +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
    +email: "TCB13@lemmy.world"
    +username: "@TCB13@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: ""
    +lastActive: DateTime @1729518803 {#2361
      date: 2024-10-21 15:53:23.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
    +entries: Doctrine\ORM\PersistentCollection {#2383 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
    +posts: Doctrine\ORM\PersistentCollection {#1907 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
    +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
    +follows: Doctrine\ORM\PersistentCollection {#2130 …}
    +followers: Doctrine\ORM\PersistentCollection {#2093 …}
    +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
    +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
    +reports: Doctrine\ORM\PersistentCollection {#2328 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
    +violations: Doctrine\ORM\PersistentCollection {#2065 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
    +awards: Doctrine\ORM\PersistentCollection {#2136 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
    +categories: Doctrine\ORM\PersistentCollection {#2104 …}
    -id: 43677
    -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
    +apId: "TCB13@lemmy.world"
    +apProfileId: "https://lemmy.world/u/TCB13"
    +apPublicUrl: "https://lemmy.world/u/TCB13"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "TCB13"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729566764 {#2364
      date: 2024-10-22 05:12:44.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1693492241 {#2372
      date: 2023-08-31 16:30:41.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 16.0 MiB 0.53 ms
Input props
[
  "subject" => App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#2673
  +subject: App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 16.0 MiB 1.09 ms
Input props
[
  "subject" => App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#2740
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#1369
    +user: Proxies\__CG__\App\Entity\User {#1370
      +avatar: Proxies\__CG__\App\Entity\Image {#2380 …}
      +cover: Proxies\__CG__\App\Entity\Image {#2386 …}
      +email: "TCB13@lemmy.world"
      +username: "@TCB13@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: ""
      +lastActive: DateTime @1729518803 {#2361
        date: 2024-10-21 15:53:23.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#2382 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#2384 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#2379 …}
      +entries: Doctrine\ORM\PersistentCollection {#2383 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1906 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1708 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1410 …}
      +posts: Doctrine\ORM\PersistentCollection {#1907 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1383 …}
      +postComments: Doctrine\ORM\PersistentCollection {#2033 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#2089 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1362 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#2094 …}
      +follows: Doctrine\ORM\PersistentCollection {#2130 …}
      +followers: Doctrine\ORM\PersistentCollection {#2093 …}
      +blocks: Doctrine\ORM\PersistentCollection {#2289 …}
      +blockers: Doctrine\ORM\PersistentCollection {#2060 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#2341 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2336 …}
      +reports: Doctrine\ORM\PersistentCollection {#2328 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2135 …}
      +violations: Doctrine\ORM\PersistentCollection {#2065 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2066 …}
      +awards: Doctrine\ORM\PersistentCollection {#2136 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#2046 …}
      +categories: Doctrine\ORM\PersistentCollection {#2104 …}
      -id: 43677
      -password: "$2y$13$67WvGuLt4FPbc4trvxnH0ODZHTvTlMWI7kaafAJZUzYiSsXw.KDqi"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#2110 …}
      +apId: "TCB13@lemmy.world"
      +apProfileId: "https://lemmy.world/u/TCB13"
      +apPublicUrl: "https://lemmy.world/u/TCB13"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "TCB13"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729566764 {#2364
        date: 2024-10-22 05:12:44.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1693492241 {#2372
        date: 2023-08-31 16:30:41.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#1856 …}
    +magazine: App\Entity\Magazine {#312
      +icon: Proxies\__CG__\App\Entity\Image {#293 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#320
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#284 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
      +entries: Doctrine\ORM\PersistentCollection {#227 …}
      +posts: Doctrine\ORM\PersistentCollection {#185 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
      +bans: Doctrine\ORM\PersistentCollection {#164 …}
      +reports: Doctrine\ORM\PersistentCollection {#150 …}
      +badges: Doctrine\ORM\PersistentCollection {#128 …}
      +logs: Doctrine\ORM\PersistentCollection {#118 …}
      +awards: Doctrine\ORM\PersistentCollection {#107 …}
      +categories: Doctrine\ORM\PersistentCollection {#94 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#321
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#315
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +parent: null
    +root: null
    +body: """
      **Your basic requirements are:**\n
      \n
      - Some kind of domain / subdomain payed or free;\n
      - Preferably Home ISP that has provides public IP addresses - no CGNAT BS;\n
      - Ideally a static IP at home, but you can do just fine with a dynamic DNS service such as [freedns.afraid.org](https://freedns.afraid.org/).\n
      \n
      **Quick setup guide and checklist**:\n
      \n
      1. Create your subdomain for the dynamic DNS service [freedns.afraid.org](https://freedns.afraid.org/) and install the daemon on the server - will update your domain with your dynamic IP when it changes;\n
      2. List what ports you need remote access to;\n
      3. Isolate the server from your main network as much as possible. If possible have then on a different public IP either using a VLAN or better yet with an entire physical network just for that - avoids VLAN hopping attacks and DDoS attacks to the server that will also take your internet down;\n
      4. If you’re using VLANs then configure your switch properly. Decent switches allows you to restrict the WebUI to a certain VLAN / physical port - this will make sure if your server is hacked they won’t be able to access the Switch’s UI and reconfigure their own port to access the entire network. Note that cheap TP-Link switches usually don’t have a way to specify this;\n
      5. Configure your ISP router to assign a static local IP to the server and port forward what’s supposed to be exposed to the internet to the server;\n
      6. Only expose required services (nginx, game server, program x) to the Internet us. Everything else such as SSH, configuration interfaces and whatnot can be moved to another private network and/or a WireGuard VPN you can connect to when you want to manage the server;\n
      7. Use custom ports with 5 digits for everything - something like 23901 (up to 65535) to make your service(s) harder to find;\n
      8. Disable IPv6? Might be easier than dealing with a dual stack firewall and/or other complexities;\n
      9. Use nftables / iptables / another firewall and set it to drop everything but those ports you need for services and management VPN access to work - [10 minute guide](https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes);\n
      10. Configure nftables to only allow traffic coming from public IP addresses (IPs outside your home network IP / VPN range) to the Wireguard or required services port - this will protect your server if by some mistake the router starts forwarding more traffic from the internet to the server than it should;\n
      11. Configure nftables to restrict what countries are allowed to access your server. Most likely you only need to allow incoming connections [from your country](https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching) and more [details here](https://lemmy.world/post/11162264).\n
      \n
      Realistically speaking if you’re doing this just for a few friends why not require them to access the server through WireGuard VPN? This will reduce the risk a LOT and won’t probably impact the performance. [Here a decent setup guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11) and you [might use this GUI](https://github.com/ngoduykhanh/wireguard-ui) to add/remove clients easily.\n
      \n
      Don’t be afraid to expose the Wireguard port because if someone tried to connect and they don’t authenticate with the right key the server will silently drop the packets.\n
      \n
      Now if your ISP doesn’t provide you with a public IP / port forwarding abilities you may want to [read this](https://blog.aiquiral.me/bypass-cgnat#introduction) in order to find why you should avoid Cloudflare tunnels and how to setup and alternative / more private solution.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706541016 {#1769
      date: 2024-01-29 16:10:16.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
      "@Nester@feddit.uk"
    ]
    +children: Doctrine\ORM\PersistentCollection {#1371 …}
    +nested: Doctrine\ORM\PersistentCollection {#1379 …}
    +votes: Doctrine\ORM\PersistentCollection {#2446 …}
    +reports: Doctrine\ORM\PersistentCollection {#1891 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2409 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2358 …}
    -id: 349945
    -bodyTs: "'/)':65 '/).':47 '/bypass-cgnat#introduction)':559 '/community/tutorials/how-to-set-up-wireguard-on-debian-11)':491 '/ngoduykhanh/wireguard-ui)':500 '/post/11162264).':446 '/wiki-nftables/index.php/geoip_matching)':439 '/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':360 '1':53 '10':355,361 '11':412 '2':84 '23901':302 '3':93 '4':146 '5':217,296 '6':246 '65535':305 '7':291 '8':314 '9':330 'abil':550 'abl':184 'access':91,186,197,352,422,464 'add/remove':502 'address':21,372 'afraid':508 'allow':159,366,420,431 'also':141 'altern':575 'and/or':276,327 'anoth':273,334 'assign':223 'attack':132,135 'authent':524 'avoid':129,567 'basic':2 'better':119 'blog.aiquiral.me':558 'blog.aiquiral.me/bypass-cgnat#introduction)':557 'bs':24 'certain':167 'cgnat':23 'chang':83 'cheap':203 'checklist':52 'client':503 'cloudflar':568 'come':368 'complex':329 'configur':153,218,265,362,413 'connect':282,433,519 'countri':418,436 'creat':54 'custom':293 'daemon':69 'ddos':134 'deal':321 'decent':157,486 'detail':442 'differ':111 'digit':297 'disabl':315 'dns':40,60 'doesn':540 'domain':8,76 'drop':340,533 'dual':324 'dynam':39,59,79 'easier':319 'easili':504 'either':114 'els':261 'entir':123,199 'everyth':260,299,341 'expos':239,248,510 'find':313,563 'fine':36 'firewal':326,335 'forward':233,400,549 'free':12 'freedns.afraid.org':44,46,62,64 'freedns.afraid.org/)':63 'freedns.afraid.org/).':45 'friend':458 'game':252 'github.com':499 'github.com/ngoduykhanh/wireguard-ui)':498 'gui':497 'guid':50,357,488 'hack':179 'harder':311 'home':14,30,376 'hop':131 'ideal':25 'impact':481 'incom':432 'instal':67 'interfac':266 'internet':144,242,258,405 'ip':20,28,80,113,227,371,373,378,547 'iptabl':333 'ipv6':316 'isol':94 'isp':15,220,539 'key':528 'kind':6 'lemmy.world':445 'lemmy.world/post/11162264).':444 'like':301,426 'link':206 'list':85 'local':226 'lot':476 'main':99 'make':173,307 'manag':288,350 'may':552 'might':317,494 'minut':356 'mistak':396 'move':271 'much':102 'need':89,346,429 'network':100,125,200,275,377 'nftabl':332,363,414 'nginx':251 'note':201 'order':561 'outsid':374 'packet':535 'pay':10 'perform':483 'physic':124,169 'port':87,170,195,232,294,344,387,513,548 'possibl':104,106 'prefer':13 'privat':274,577 'probabl':480 'program':254 'proper':156 'protect':390 'provid':18,542 'public':19,112,370,546 'quick':48 'rang':380 're':149,451 'read':555 'realist':447 'reconfigur':192 'reduc':472 'remot':90 'requir':3,249,385,461 'restrict':162,416 'right':527 'risk':474 'router':221,398 'server':72,96,138,177,230,245,253,290,392,408,424,466,530 'servic':41,61,250,309,348,386 'set':337 'setup':49,487,573 'silent':532 'solut':578 'someon':516 'someth':300 'speak':448 'specifi':215 'ssh':264 'stack':325 'start':399 'static':27,225 'subdomain':9,56 'suppos':236 'sure':174 'switch':155,158,188,207 'take':142 'tp':205 'tp-link':204 'traffic':367,402 'tri':517 'tunnel':569 'ui':190 'updat':74 'us':259 'use':115,150,292,331,495 'usual':208 'vlan':117,130,151,168 'vpn':279,351,379,469 'want':286,553 'way':213 'webui':164 'whatnot':268 'wiki.nftables.org':359,438 'wiki.nftables.org/wiki-nftables/index.php/geoip_matching)':437 'wiki.nftables.org/wiki-nftables/index.php/quick_reference-nftables_in_10_minutes);':358 'wireguard':278,383,468,512 'won':181,478 'work':354 'www.digitalocean.com':490 'www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-debian-11)':489 'x':255 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/7126969"
    +editedAt: DateTimeImmutable @1729412383 {#1945
      date: 2024-10-20 10:19:43.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706541016 {#1368
      date: 2024-01-29 16:10:16.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 16.0 MiB 0.20 ms
Input props
[
  "label" => "Sidebar position"
  "settingsKey" => "KBIN_GENERAL_SIDEBAR_POSITION"
  "values" => [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  "defaultValue" => "RIGHT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#3102
  +label: "Sidebar position"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SIDEBAR_POSITION"
  +values: [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  +defaultValue: "RIGHT"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.18 ms
Input props
[
  "label" => "Dynamic lists"
  "settingsKey" => "KBIN_GENERAL_DYNAMIC_LISTS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3174
  +label: "Dynamic lists"
  +help: ""
  +settingsKey: "KBIN_GENERAL_DYNAMIC_LISTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Rounded edges"
  "settingsKey" => "KBIN_GENERAL_ROUNDED_EDGES"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3237
  +label: "Rounded edges"
  +help: ""
  +settingsKey: "KBIN_GENERAL_ROUNDED_EDGES"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Infinite scrolling"
  "help" => "Automatically load more content when you reach the bottom of the page."
  "settingsKey" => "KBIN_GENERAL_INFINITE_SCROLL"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3293
  +label: "Infinite scrolling"
  +help: "Automatically load more content when you reach the bottom of the page."
  +settingsKey: "KBIN_GENERAL_INFINITE_SCROLL"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.13 ms
Input props
[
  "label" => "Sticky navbar"
  "help" => "The navbar will stick to the top of the page when you scroll down."
  "settingsKey" => "KBIN_GENERAL_FIXED_NAVBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3352
  +label: "Sticky navbar"
  +help: "The navbar will stick to the top of the page when you scroll down."
  +settingsKey: "KBIN_GENERAL_FIXED_NAVBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Show top bar"
  "settingsKey" => "KBIN_GENERAL_TOPBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3408
  +label: "Show top bar"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TOPBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Turbo mode (experimental)"
  "settingsKey" => "KBIN_GENERAL_TURBO"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3464
  +label: "Turbo mode (experimental)"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TURBO"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 16.0 MiB 0.19 ms
Input props
[
  "label" => "Mark new comments"
  "settingsKey" => "KBIN_MARK_NEW_COMMENTS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3522
  +label: "Mark new comments"
  +help: ""
  +settingsKey: "KBIN_MARK_NEW_COMMENTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.13 ms
Input props
[
  "label" => "Show "Support Us" block"
  "settingsKey" => "KBIN_GENERAL_SUPPORT_US_BLOCK"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3585
  +label: "Show "Support Us" block"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SUPPORT_US_BLOCK"
  +defaultValue: true
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 16.0 MiB 0.14 ms
Input props
[
  "label" => "Show subscribed users"
  "settingsKey" => "KBIN_SUB_CHANNEL_USERS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3643
  +label: "Show subscribed users"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_USERS"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 16.0 MiB 0.13 ms
Input props
[
  "label" => "Show subscribed magazines"
  "settingsKey" => "KBIN_SUB_CHANNEL_MAGAZINES"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3699
  +label: "Show subscribed magazines"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_MAGAZINES"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 16.0 MiB 0.21 ms
Input props
[
  "label" => "Show subscribed domains"
  "settingsKey" => "KBIN_SUB_CHANNEL_DOMAINS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3755
  +label: "Show subscribed domains"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_DOMAINS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_ENTRIES_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3811
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_ENTRIES_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Compact view"
  "settingsKey" => "KBIN_ENTRIES_COMPACT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3867
  +label: "Compact view"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_COMPACT"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_ENTRIES_SHOW_USERS_AVATARS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3923
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_USERS_AVATARS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.23 ms
Input props
[
  "label" => "Show magazines’ icons"
  "settingsKey" => "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3979
  +label: "Show magazines’ icons"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.12 ms
Input props
[
  "label" => "Show thumbnails"
  "settingsKey" => "KBIN_ENTRIES_SHOW_THUMBNAILS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4035
  +label: "Show thumbnails"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_THUMBNAILS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.17 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_POSTS_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4091
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_POSTS_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.13 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_POSTS_SHOW_USERS_AVATARS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4147
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_POSTS_SHOW_USERS_AVATARS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 16.0 MiB 0.14 ms
Input props
[
  "label" => "Comment reply position"
  "help" => "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  "settingsKey" => "KBIN_COMMENTS_REPLY_POSITION"
  "values" => [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  "defaultValue" => "TOP"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#4203
  +label: "Comment reply position"
  +help: "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  +settingsKey: "KBIN_COMMENTS_REPLY_POSITION"
  +values: [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  +defaultValue: "TOP"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 16.0 MiB 0.21 ms
Input props
[
  "label" => "Show Comment Avatars"
  "help" => "Display/hide user avatars when viewing comments on a single thread or post."
  "settingsKey" => "KBIN_COMMENTS_SHOW_USER_AVATAR"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4261
  +label: "Show Comment Avatars"
  +help: "Display/hide user avatars when viewing comments on a single thread or post."
  +settingsKey: "KBIN_COMMENTS_SHOW_USER_AVATAR"
  +defaultValue: true
  +reloadRequired: true
}
user_actions App\Twig\Components\UserActionsComponent 16.0 MiB 0.53 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1882
    +avatar: null
    +cover: null
    +email: "Nester@feddit.uk"
    +username: "@Nester@feddit.uk"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729431321 {#4330
      date: 2024-10-20 15:35:21.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4335 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4338 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4340 …}
    +entries: Doctrine\ORM\PersistentCollection {#4342 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4344 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4346 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4348 …}
    +posts: Doctrine\ORM\PersistentCollection {#4350 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4352 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4354 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4356 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4358 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4360 …}
    +follows: Doctrine\ORM\PersistentCollection {#4362 …}
    +followers: Doctrine\ORM\PersistentCollection {#4364 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4366 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4368 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4370 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4372 …}
    +reports: Doctrine\ORM\PersistentCollection {#4374 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4376 …}
    +violations: Doctrine\ORM\PersistentCollection {#4378 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4380 …}
    +awards: Doctrine\ORM\PersistentCollection {#4382 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4384 …}
    +categories: Doctrine\ORM\PersistentCollection {#4386 …}
    -id: 76468
    -password: "$2y$13$phuG1FCp6WdaYauWc0XkYuZxH7j73plHJv2d.M6suMiP.eI4eGHJW"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4388 …}
    +apId: "Nester@feddit.uk"
    +apProfileId: "https://feddit.uk/u/Nester"
    +apPublicUrl: "https://feddit.uk/u/Nester"
    +apFollowersUrl: null
    +apInboxUrl: "https://feddit.uk/inbox"
    +apDomain: "feddit.uk"
    +apPreferredUsername: "Nester"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1701155006 {#4327
      date: 2023-11-28 08:03:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700253099 {#4329
      date: 2023-11-17 21:31:39.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\UserActionsComponent {#4401
  +user: Proxies\__CG__\App\Entity\User {#1882
    +avatar: null
    +cover: null
    +email: "Nester@feddit.uk"
    +username: "@Nester@feddit.uk"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729431321 {#4330
      date: 2024-10-20 15:35:21.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4335 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4338 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4340 …}
    +entries: Doctrine\ORM\PersistentCollection {#4342 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4344 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4346 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4348 …}
    +posts: Doctrine\ORM\PersistentCollection {#4350 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4352 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4354 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4356 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4358 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4360 …}
    +follows: Doctrine\ORM\PersistentCollection {#4362 …}
    +followers: Doctrine\ORM\PersistentCollection {#4364 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4366 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4368 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4370 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4372 …}
    +reports: Doctrine\ORM\PersistentCollection {#4374 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4376 …}
    +violations: Doctrine\ORM\PersistentCollection {#4378 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4380 …}
    +awards: Doctrine\ORM\PersistentCollection {#4382 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4384 …}
    +categories: Doctrine\ORM\PersistentCollection {#4386 …}
    -id: 76468
    -password: "$2y$13$phuG1FCp6WdaYauWc0XkYuZxH7j73plHJv2d.M6suMiP.eI4eGHJW"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4388 …}
    +apId: "Nester@feddit.uk"
    +apProfileId: "https://feddit.uk/u/Nester"
    +apPublicUrl: "https://feddit.uk/u/Nester"
    +apFollowersUrl: null
    +apInboxUrl: "https://feddit.uk/inbox"
    +apDomain: "feddit.uk"
    +apPreferredUsername: "Nester"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1701155006 {#4327
      date: 2023-11-28 08:03:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700253099 {#4329
      date: 2023-11-17 21:31:39.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
}
date App\Twig\Components\DateComponent 16.0 MiB 0.13 ms
Input props
[
  "date" => DateTimeImmutable @1706539233 {#98
    date: 2024-01-29 15:40:33.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#4462
  +date: DateTimeImmutable @1706539233 {#98
    date: 2024-01-29 15:40:33.0 +01:00
  }
}
magazine_box App\Twig\Components\MagazineBoxComponent 16.0 MiB 8.56 ms
Input props
[
  "magazine" => App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  "showSectionTitle" => true
]
Attributes
[]
Component
App\Twig\Components\MagazineBoxComponent {#4518
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +showCover: true
  +showDescription: true
  +showRules: true
  +showSubscribeButton: true
  +showInfo: true
  +showMeta: true
  +showSectionTitle: true
  +stretchedLink: true
}
magazine_sub App\Twig\Components\MagazineSubComponent 16.0 MiB 0.43 ms
Input props
[
  "magazine" => App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\MagazineSubComponent {#4577
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
}
date App\Twig\Components\DateComponent 16.0 MiB 0.17 ms
Input props
[
  "date" => DateTimeImmutable @1703473826 {#315
    date: 2023-12-25 04:10:26.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#4737
  +date: DateTimeImmutable @1703473826 {#315
    date: 2023-12-25 04:10:26.0 +01:00
  }
}
user_inline App\Twig\Components\UserInlineComponent 16.0 MiB 0.52 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#4796
    +avatar: null
    +cover: null
    +email: "kbin@j0h.nl"
    +username: "Sprite_tm"
    +roles: [
      "ROLE_ADMIN"
    ]
    +followersCount: 0
    +homepage: "front"
    +about: "Hi! I'm Sprite_tm. You may know me from sites like https://spritesmods.com."
    +lastActive: DateTime @1707547382 {#4843
      date: 2024-02-10 07:43:02.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: true
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4845 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4847 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4849 …}
    +entries: Doctrine\ORM\PersistentCollection {#4851 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4853 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4855 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4857 …}
    +posts: Doctrine\ORM\PersistentCollection {#4859 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4861 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4863 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4865 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4867 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4869 …}
    +follows: Doctrine\ORM\PersistentCollection {#4871 …}
    +followers: Doctrine\ORM\PersistentCollection {#4873 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4875 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4877 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4879 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4881 …}
    +reports: Doctrine\ORM\PersistentCollection {#4883 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4885 …}
    +violations: Doctrine\ORM\PersistentCollection {#4887 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4889 …}
    +awards: Doctrine\ORM\PersistentCollection {#4891 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4893 …}
    +categories: Doctrine\ORM\PersistentCollection {#4895 …}
    -id: 1
    -password: "$2y$13$ZX7Aou2QOPRGkHPp4y5x8OWfxZMoT1BGH7bRLlPP7mwZFTkfiaPGG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4897 …}
    +apId: null
    +apProfileId: null
    +apPublicUrl: null
    +apFollowersUrl: null
    +apInboxUrl: null
    +apDomain: null
    +apPreferredUsername: null
    +apDiscoverable: null
    +apManuallyApprovesFollowers: null
    +privateKey: """
      -----BEGIN PRIVATE KEY-----\r\n
      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\r\n
      Cgb38EldyAVGjCzRGfhu9SNU9B03bg==\r\n
      -----END PRIVATE KEY-----
      """
    +publicKey: """
      -----BEGIN PUBLIC KEY-----\r\n
      MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5XnqLc+UwYjJQmLCWCR1\r\n
      TcY7577dKrEANvNge73agU2wEXw+PYij4jCMIFNsoQiNKE0kMHNmcvQEPt9a8Jrw\r\n
      cfFb3C4ELyqTcz1YTEI3pSu5OYj4j3P1tbKGmrnqat2MECoBqHeHOVYfXzCJ0gDX\r\n
      zizlEqN6VM32kGhhL0HOQ2yow4CI7L/ziiNWnG87tOuykMyE4bvtQb3KkGKaNlMe\r\n
      Vtt5zapK0Wfvs/69TCNo0t78IuTksM+H1oSzyVxOpcKJHOm/7gGXu7C0+kELY3ry\r\n
      55jMkSFZ5sW7RzzEn4S3c/LLEIaDQnwJDJwYw1F99UkrOu6VPL+TtxZ9h3fqhVgo\r\n
      60RMEqQQHduCDSairI0muo96Cy/F8PB2X/sekETyXIf3NxTVkbTNm/Z/FbAEIg/f\r\n
      OaWn8nkNU6iHuIkoyNIlIMtloMDtAtWdDzW0M0JkZNBDgJcSF4z5gdtvT1ePjnGc\r\n
      S0/aYT/64ndULfUaPti3ZEvWanvHNiR3iSnOTb//Djl+bkPwfNiV57l2Iv6FRCW+\r\n
      beNhvLtyCJGDORvxrdN91lOnW8ijgZnZ212j8PSwtzO6KKd8sgm91Ay34IP152Vb\r\n
      2cUjwj5YeRtS29K+O7Iiqv9JPWEbmtABbFYNHYan7sLG+hvR8eRInLj7LjiI1yDQ\r\n
      U45ZxOEnTM9GSbe2y48JSnUCAwEAAQ==\r\n
      -----END PUBLIC KEY-----
      """
    +apFetchedAt: null
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686560440 {#4844
      date: 2023-06-12 11:00:40.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#4814
  +user: Proxies\__CG__\App\Entity\User {#4796
    +avatar: null
    +cover: null
    +email: "kbin@j0h.nl"
    +username: "Sprite_tm"
    +roles: [
      "ROLE_ADMIN"
    ]
    +followersCount: 0
    +homepage: "front"
    +about: "Hi! I'm Sprite_tm. You may know me from sites like https://spritesmods.com."
    +lastActive: DateTime @1707547382 {#4843
      date: 2024-02-10 07:43:02.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: true
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4845 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4847 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4849 …}
    +entries: Doctrine\ORM\PersistentCollection {#4851 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4853 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4855 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4857 …}
    +posts: Doctrine\ORM\PersistentCollection {#4859 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4861 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4863 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4865 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4867 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4869 …}
    +follows: Doctrine\ORM\PersistentCollection {#4871 …}
    +followers: Doctrine\ORM\PersistentCollection {#4873 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4875 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4877 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4879 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4881 …}
    +reports: Doctrine\ORM\PersistentCollection {#4883 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4885 …}
    +violations: Doctrine\ORM\PersistentCollection {#4887 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4889 …}
    +awards: Doctrine\ORM\PersistentCollection {#4891 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4893 …}
    +categories: Doctrine\ORM\PersistentCollection {#4895 …}
    -id: 1
    -password: "$2y$13$ZX7Aou2QOPRGkHPp4y5x8OWfxZMoT1BGH7bRLlPP7mwZFTkfiaPGG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4897 …}
    +apId: null
    +apProfileId: null
    +apPublicUrl: null
    +apFollowersUrl: null
    +apInboxUrl: null
    +apDomain: null
    +apPreferredUsername: null
    +apDiscoverable: null
    +apManuallyApprovesFollowers: null
    +privateKey: """
      -----BEGIN PRIVATE KEY-----\r\n
      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\r\n
      Cgb38EldyAVGjCzRGfhu9SNU9B03bg==\r\n
      -----END PRIVATE KEY-----
      """
    +publicKey: """
      -----BEGIN PUBLIC KEY-----\r\n
      MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5XnqLc+UwYjJQmLCWCR1\r\n
      TcY7577dKrEANvNge73agU2wEXw+PYij4jCMIFNsoQiNKE0kMHNmcvQEPt9a8Jrw\r\n
      cfFb3C4ELyqTcz1YTEI3pSu5OYj4j3P1tbKGmrnqat2MECoBqHeHOVYfXzCJ0gDX\r\n
      zizlEqN6VM32kGhhL0HOQ2yow4CI7L/ziiNWnG87tOuykMyE4bvtQb3KkGKaNlMe\r\n
      Vtt5zapK0Wfvs/69TCNo0t78IuTksM+H1oSzyVxOpcKJHOm/7gGXu7C0+kELY3ry\r\n
      55jMkSFZ5sW7RzzEn4S3c/LLEIaDQnwJDJwYw1F99UkrOu6VPL+TtxZ9h3fqhVgo\r\n
      60RMEqQQHduCDSairI0muo96Cy/F8PB2X/sekETyXIf3NxTVkbTNm/Z/FbAEIg/f\r\n
      OaWn8nkNU6iHuIkoyNIlIMtloMDtAtWdDzW0M0JkZNBDgJcSF4z5gdtvT1ePjnGc\r\n
      S0/aYT/64ndULfUaPti3ZEvWanvHNiR3iSnOTb//Djl+bkPwfNiV57l2Iv6FRCW+\r\n
      beNhvLtyCJGDORvxrdN91lOnW8ijgZnZ212j8PSwtzO6KKd8sgm91Ay34IP152Vb\r\n
      2cUjwj5YeRtS29K+O7Iiqv9JPWEbmtABbFYNHYan7sLG+hvR8eRInLj7LjiI1yDQ\r\n
      U45ZxOEnTM9GSbe2y48JSnUCAwEAAQ==\r\n
      -----END PUBLIC KEY-----
      """
    +apFetchedAt: null
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686560440 {#4844
      date: 2023-06-12 11:00:40.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: true
}
related_magazines App\Twig\Components\RelatedMagazinesComponent 16.0 MiB 1.89 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedMagazinesComponent {#5005
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +title: "related_magazines"
  +refreshedRandom: false
  -repository: App\Repository\MagazineRepository {#395 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
active_users App\Twig\Components\ActiveUsersComponent 16.0 MiB 0.30 ms
Input props
[
  "magazine" => App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\ActiveUsersComponent {#5097
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  -userRepository: App\Repository\UserRepository {#603 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_categories App\Twig\Components\RelatedCategoriesComponent 16.0 MiB 1.34 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedCategoriesComponent {#5156
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "related"
  +title: "related_categories"
  +refreshedRandom: false
  -repository: App\Repository\CategoryRepository {#5157 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_posts App\Twig\Components\RelatedPostsComponent 16.0 MiB 9.17 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedPostsComponent {#5227
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +post: null
  +title: "related_posts"
  +refreshedRandom: false
  -repository: App\Repository\PostRepository {#5226 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#2377 …}
}
related_entries App\Twig\Components\RelatedEntriesComponent 16.0 MiB 1.67 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedEntriesComponent {#5296
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +entry: null
  +title: "related_entries"
  +refreshedRandom: false
  -repository: App\Repository\EntryRepository {#318 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#2377 …}
}
support_us_block App\Twig\Components\SupportUsBlock 16.0 MiB 0.25 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\SupportUsBlock {#5365
  +subject: ? App\Entity\Contracts\VotableInterface
  +url: ? string
  -twig: Twig\Environment {#1252 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -partnerBlockRepository: App\Repository\PartnerBlockRepository {#5366 …}
}
featured_magazines App\Twig\Components\FeaturedMagazinesComponent 16.0 MiB 0.73 ms
Input props
[
  "magazine" => App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\FeaturedMagazinesComponent {#5458
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#320
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#321
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#315
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  -twig: Twig\Environment {#1252 …}
  -repository: App\Repository\MagazineRepository {#395 …}
}