Redirect 302 redirect from GET @entry_comment_create (ea9af5)

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
9.41 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\Entry {#2400
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +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 {#275
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -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 {#269
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#271
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
  +slug: "Adding-services-to-an-existing-Docker-nginx-container"
  +title: "Adding services to an existing Docker nginx container"
  +url: null
  +body: """
    Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
    \n
    I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
    \n
    So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
    \n
    Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
    \n
    Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
    \n
    It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 14
  +favouriteCount: 9
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1726812287 {#2414
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1688 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1965 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 31447
  -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
  -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705635780
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/13532132"
  +editedAt: DateTimeImmutable @1726356978 {#1793
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2402
    date: 2024-01-18 10:56:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\Entry {#2400
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +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 {#275
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -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 {#269
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#271
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
  +slug: "Adding-services-to-an-existing-Docker-nginx-container"
  +title: "Adding services to an existing Docker nginx container"
  +url: null
  +body: """
    Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
    \n
    I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
    \n
    So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
    \n
    Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
    \n
    Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
    \n
    It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 14
  +favouriteCount: 9
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1726812287 {#2414
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1688 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1965 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 31447
  -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
  -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705635780
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/13532132"
  +editedAt: DateTimeImmutable @1726356978 {#1793
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2402
    date: 2024-01-18 10:56:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\Entry {#2400
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +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 {#275
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -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 {#269
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#271
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
  +slug: "Adding-services-to-an-existing-Docker-nginx-container"
  +title: "Adding services to an existing Docker nginx container"
  +url: null
  +body: """
    Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
    \n
    I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
    \n
    So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
    \n
    Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
    \n
    Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
    \n
    It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 14
  +favouriteCount: 9
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1726812287 {#2414
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1688 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1965 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 31447
  -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
  -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705635780
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/13532132"
  +editedAt: DateTimeImmutable @1726356978 {#1793
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2402
    date: 2024-01-18 10:56:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
6 DENIED moderate
App\Entity\EntryComment {#4043
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    This how I do it, not saying it’s the best way, but serves me well :).\n
    \n
    For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
    \n
    Every application in it’s respective folder.\n
    \n
    - home/user/docker/app1/docker-compose.yml\n
    - home/user/docker/app2/docker-compose.yml\n
    - home/user/docker/app3/docker-compose.yml\n
    \n
    Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
    \n
    I access all my apps through their domain name on my LAN with wireguard.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1726812287 {#4052
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4041 …}
  +nested: Doctrine\ORM\PersistentCollection {#4039 …}
  +votes: Doctrine\ORM\PersistentCollection {#4037 …}
  +reports: Doctrine\ORM\PersistentCollection {#4035 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
  -id: 318887
  -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493330"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575419 {#3988
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\EntryComment {#4043
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    This how I do it, not saying it’s the best way, but serves me well :).\n
    \n
    For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
    \n
    Every application in it’s respective folder.\n
    \n
    - home/user/docker/app1/docker-compose.yml\n
    - home/user/docker/app2/docker-compose.yml\n
    - home/user/docker/app3/docker-compose.yml\n
    \n
    Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
    \n
    I access all my apps through their domain name on my LAN with wireguard.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1726812287 {#4052
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4041 …}
  +nested: Doctrine\ORM\PersistentCollection {#4039 …}
  +votes: Doctrine\ORM\PersistentCollection {#4037 …}
  +reports: Doctrine\ORM\PersistentCollection {#4035 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
  -id: 318887
  -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493330"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575419 {#3988
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\EntryComment {#4043
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    This how I do it, not saying it’s the best way, but serves me well :).\n
    \n
    For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
    \n
    Every application in it’s respective folder.\n
    \n
    - home/user/docker/app1/docker-compose.yml\n
    - home/user/docker/app2/docker-compose.yml\n
    - home/user/docker/app3/docker-compose.yml\n
    \n
    Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
    \n
    I access all my apps through their domain name on my LAN with wireguard.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1726812287 {#4052
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4041 …}
  +nested: Doctrine\ORM\PersistentCollection {#4039 …}
  +votes: Doctrine\ORM\PersistentCollection {#4037 …}
  +reports: Doctrine\ORM\PersistentCollection {#4035 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
  -id: 318887
  -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493330"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575419 {#3988
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
9 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
10 DENIED moderate
App\Entity\EntryComment {#4361
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      This how I do it, not saying it’s the best way, but serves me well :).\n
      \n
      For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
      \n
      Every application in it’s respective folder.\n
      \n
      - home/user/docker/app1/docker-compose.yml\n
      - home/user/docker/app2/docker-compose.yml\n
      - home/user/docker/app3/docker-compose.yml\n
      \n
      Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
      \n
      I access all my apps through their domain name on my LAN with wireguard.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1726812287 {#4052
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4041 …}
    +nested: Doctrine\ORM\PersistentCollection {#4039 …}
    +votes: Doctrine\ORM\PersistentCollection {#4037 …}
    +reports: Doctrine\ORM\PersistentCollection {#4035 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
    -id: 318887
    -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493330"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575419 {#3988
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
    \n
    Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651520 {#4359
    date: 2024-01-19 09:05:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4362 …}
  +nested: Doctrine\ORM\PersistentCollection {#4364 …}
  +votes: Doctrine\ORM\PersistentCollection {#4366 …}
  +reports: Doctrine\ORM\PersistentCollection {#4368 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
  -id: 321930
  -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507309"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651520 {#4360
    date: 2024-01-19 09:05:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
11 DENIED edit
App\Entity\EntryComment {#4361
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      This how I do it, not saying it’s the best way, but serves me well :).\n
      \n
      For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
      \n
      Every application in it’s respective folder.\n
      \n
      - home/user/docker/app1/docker-compose.yml\n
      - home/user/docker/app2/docker-compose.yml\n
      - home/user/docker/app3/docker-compose.yml\n
      \n
      Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
      \n
      I access all my apps through their domain name on my LAN with wireguard.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1726812287 {#4052
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4041 …}
    +nested: Doctrine\ORM\PersistentCollection {#4039 …}
    +votes: Doctrine\ORM\PersistentCollection {#4037 …}
    +reports: Doctrine\ORM\PersistentCollection {#4035 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
    -id: 318887
    -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493330"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575419 {#3988
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
    \n
    Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651520 {#4359
    date: 2024-01-19 09:05:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4362 …}
  +nested: Doctrine\ORM\PersistentCollection {#4364 …}
  +votes: Doctrine\ORM\PersistentCollection {#4366 …}
  +reports: Doctrine\ORM\PersistentCollection {#4368 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
  -id: 321930
  -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507309"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651520 {#4360
    date: 2024-01-19 09:05:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
12 DENIED moderate
App\Entity\EntryComment {#4361
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      This how I do it, not saying it’s the best way, but serves me well :).\n
      \n
      For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
      \n
      Every application in it’s respective folder.\n
      \n
      - home/user/docker/app1/docker-compose.yml\n
      - home/user/docker/app2/docker-compose.yml\n
      - home/user/docker/app3/docker-compose.yml\n
      \n
      Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
      \n
      I access all my apps through their domain name on my LAN with wireguard.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1726812287 {#4052
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4041 …}
    +nested: Doctrine\ORM\PersistentCollection {#4039 …}
    +votes: Doctrine\ORM\PersistentCollection {#4037 …}
    +reports: Doctrine\ORM\PersistentCollection {#4035 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
    -id: 318887
    -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493330"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575419 {#3988
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
    \n
    Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651520 {#4359
    date: 2024-01-19 09:05:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4362 …}
  +nested: Doctrine\ORM\PersistentCollection {#4364 …}
  +votes: Doctrine\ORM\PersistentCollection {#4366 …}
  +reports: Doctrine\ORM\PersistentCollection {#4368 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
  -id: 321930
  -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507309"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651520 {#4360
    date: 2024-01-19 09:05:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
13 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
14 DENIED moderate
App\Entity\EntryComment {#4413
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4361
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        This how I do it, not saying it’s the best way, but serves me well :).\n
        \n
        For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
        \n
        Every application in it’s respective folder.\n
        \n
        - home/user/docker/app1/docker-compose.yml\n
        - home/user/docker/app2/docker-compose.yml\n
        - home/user/docker/app3/docker-compose.yml\n
        \n
        Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
        \n
        I access all my apps through their domain name on my LAN with wireguard.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1726812287 {#4052
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4041 …}
      +nested: Doctrine\ORM\PersistentCollection {#4039 …}
      +votes: Doctrine\ORM\PersistentCollection {#4037 …}
      +reports: Doctrine\ORM\PersistentCollection {#4035 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
      -id: 318887
      -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493330"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575419 {#3988
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
      \n
      Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651520 {#4359
      date: 2024-01-19 09:05:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4362 …}
    +nested: Doctrine\ORM\PersistentCollection {#4364 …}
    +votes: Doctrine\ORM\PersistentCollection {#4366 …}
    +reports: Doctrine\ORM\PersistentCollection {#4368 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
    -id: 321930
    -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507309"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651520 {#4360
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
    \n
    I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705669441 {#4411
    date: 2024-01-19 14:04:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4414 …}
  +nested: Doctrine\ORM\PersistentCollection {#4416 …}
  +votes: Doctrine\ORM\PersistentCollection {#4418 …}
  +reports: Doctrine\ORM\PersistentCollection {#4420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
  -id: 322546
  -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7522447"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705669441 {#4412
    date: 2024-01-19 14:04:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
15 DENIED edit
App\Entity\EntryComment {#4413
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4361
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        This how I do it, not saying it’s the best way, but serves me well :).\n
        \n
        For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
        \n
        Every application in it’s respective folder.\n
        \n
        - home/user/docker/app1/docker-compose.yml\n
        - home/user/docker/app2/docker-compose.yml\n
        - home/user/docker/app3/docker-compose.yml\n
        \n
        Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
        \n
        I access all my apps through their domain name on my LAN with wireguard.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1726812287 {#4052
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4041 …}
      +nested: Doctrine\ORM\PersistentCollection {#4039 …}
      +votes: Doctrine\ORM\PersistentCollection {#4037 …}
      +reports: Doctrine\ORM\PersistentCollection {#4035 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
      -id: 318887
      -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493330"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575419 {#3988
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
      \n
      Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651520 {#4359
      date: 2024-01-19 09:05:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4362 …}
    +nested: Doctrine\ORM\PersistentCollection {#4364 …}
    +votes: Doctrine\ORM\PersistentCollection {#4366 …}
    +reports: Doctrine\ORM\PersistentCollection {#4368 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
    -id: 321930
    -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507309"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651520 {#4360
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
    \n
    I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705669441 {#4411
    date: 2024-01-19 14:04:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4414 …}
  +nested: Doctrine\ORM\PersistentCollection {#4416 …}
  +votes: Doctrine\ORM\PersistentCollection {#4418 …}
  +reports: Doctrine\ORM\PersistentCollection {#4420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
  -id: 322546
  -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7522447"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705669441 {#4412
    date: 2024-01-19 14:04:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
16 DENIED moderate
App\Entity\EntryComment {#4413
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4361
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        This how I do it, not saying it’s the best way, but serves me well :).\n
        \n
        For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
        \n
        Every application in it’s respective folder.\n
        \n
        - home/user/docker/app1/docker-compose.yml\n
        - home/user/docker/app2/docker-compose.yml\n
        - home/user/docker/app3/docker-compose.yml\n
        \n
        Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
        \n
        I access all my apps through their domain name on my LAN with wireguard.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1726812287 {#4052
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4041 …}
      +nested: Doctrine\ORM\PersistentCollection {#4039 …}
      +votes: Doctrine\ORM\PersistentCollection {#4037 …}
      +reports: Doctrine\ORM\PersistentCollection {#4035 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
      -id: 318887
      -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493330"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575419 {#3988
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
      \n
      Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651520 {#4359
      date: 2024-01-19 09:05:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4362 …}
    +nested: Doctrine\ORM\PersistentCollection {#4364 …}
    +votes: Doctrine\ORM\PersistentCollection {#4366 …}
    +reports: Doctrine\ORM\PersistentCollection {#4368 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
    -id: 321930
    -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507309"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651520 {#4360
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: """
    Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
    \n
    I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705669441 {#4411
    date: 2024-01-19 14:04:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4414 …}
  +nested: Doctrine\ORM\PersistentCollection {#4416 …}
  +votes: Doctrine\ORM\PersistentCollection {#4418 …}
  +reports: Doctrine\ORM\PersistentCollection {#4420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
  -id: 322546
  -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7522447"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705669441 {#4412
    date: 2024-01-19 14:04:01.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
17 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
18 DENIED moderate
App\Entity\EntryComment {#4450
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4413
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4361
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4043
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          This how I do it, not saying it’s the best way, but serves me well :).\n
          \n
          For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
          \n
          Every application in it’s respective folder.\n
          \n
          - home/user/docker/app1/docker-compose.yml\n
          - home/user/docker/app2/docker-compose.yml\n
          - home/user/docker/app3/docker-compose.yml\n
          \n
          Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
          \n
          I access all my apps through their domain name on my LAN with wireguard.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1726812287 {#4052
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4041 …}
        +nested: Doctrine\ORM\PersistentCollection {#4039 …}
        +votes: Doctrine\ORM\PersistentCollection {#4037 …}
        +reports: Doctrine\ORM\PersistentCollection {#4035 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
        -id: 318887
        -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ml/comment/7493330"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575419 {#3988
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4043}
      +body: """
        Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
        \n
        Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705651520 {#4359
        date: 2024-01-19 09:05:20.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@N0x0n@lemmy.ml"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4362 …}
      +nested: Doctrine\ORM\PersistentCollection {#4364 …}
      +votes: Doctrine\ORM\PersistentCollection {#4366 …}
      +reports: Doctrine\ORM\PersistentCollection {#4368 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
      -id: 321930
      -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6507309"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705651520 {#4360
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
      \n
      I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705669441 {#4411
      date: 2024-01-19 14:04:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4414 …}
    +nested: Doctrine\ORM\PersistentCollection {#4416 …}
    +votes: Doctrine\ORM\PersistentCollection {#4418 …}
    +reports: Doctrine\ORM\PersistentCollection {#4420 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
    -id: 322546
    -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7522447"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705669441 {#4412
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4448
    date: 2024-01-19 18:39:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 323369
  -bodyTs: "'promis':3 'thank':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6516582"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705685960 {#4449
    date: 2024-01-19 18:39:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
19 DENIED edit
App\Entity\EntryComment {#4450
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4413
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4361
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4043
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          This how I do it, not saying it’s the best way, but serves me well :).\n
          \n
          For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
          \n
          Every application in it’s respective folder.\n
          \n
          - home/user/docker/app1/docker-compose.yml\n
          - home/user/docker/app2/docker-compose.yml\n
          - home/user/docker/app3/docker-compose.yml\n
          \n
          Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
          \n
          I access all my apps through their domain name on my LAN with wireguard.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1726812287 {#4052
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4041 …}
        +nested: Doctrine\ORM\PersistentCollection {#4039 …}
        +votes: Doctrine\ORM\PersistentCollection {#4037 …}
        +reports: Doctrine\ORM\PersistentCollection {#4035 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
        -id: 318887
        -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ml/comment/7493330"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575419 {#3988
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4043}
      +body: """
        Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
        \n
        Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705651520 {#4359
        date: 2024-01-19 09:05:20.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@N0x0n@lemmy.ml"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4362 …}
      +nested: Doctrine\ORM\PersistentCollection {#4364 …}
      +votes: Doctrine\ORM\PersistentCollection {#4366 …}
      +reports: Doctrine\ORM\PersistentCollection {#4368 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
      -id: 321930
      -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6507309"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705651520 {#4360
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
      \n
      I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705669441 {#4411
      date: 2024-01-19 14:04:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4414 …}
    +nested: Doctrine\ORM\PersistentCollection {#4416 …}
    +votes: Doctrine\ORM\PersistentCollection {#4418 …}
    +reports: Doctrine\ORM\PersistentCollection {#4420 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
    -id: 322546
    -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7522447"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705669441 {#4412
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4448
    date: 2024-01-19 18:39:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 323369
  -bodyTs: "'promis':3 'thank':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6516582"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705685960 {#4449
    date: 2024-01-19 18:39:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
20 DENIED moderate
App\Entity\EntryComment {#4450
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4413
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4361
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4043
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          This how I do it, not saying it’s the best way, but serves me well :).\n
          \n
          For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !\n
          \n
          Every application in it’s respective folder.\n
          \n
          - home/user/docker/app1/docker-compose.yml\n
          - home/user/docker/app2/docker-compose.yml\n
          - home/user/docker/app3/docker-compose.yml\n
          \n
          Everything is behind an application proxy ([traefik](https://github.com/traefik/traefik) in my case) and served with self-signed certificate.\n
          \n
          I access all my apps through their domain name on my LAN with wireguard.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1726812287 {#4052
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4041 …}
        +nested: Doctrine\ORM\PersistentCollection {#4039 …}
        +votes: Doctrine\ORM\PersistentCollection {#4037 …}
        +reports: Doctrine\ORM\PersistentCollection {#4035 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4003 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4007 …}
        -id: 318887
        -bodyTs: "'/traefik/traefik)':59 '1':22,31 'access':71 'app':74 'applic':21,37,41,54 'behind':52 'best':11 'case':62 'certif':69 'contain':29 'differ':36 'docker-compose.yaml':23 'domain':77 'everi':40 'everyth':50 'file':32 'folder':46 'github.com':58 'github.com/traefik/traefik)':57 'home/user/docker/app1/docker-compose.yml':47 'home/user/docker/app2/docker-compose.yml':48 'home/user/docker/app3/docker-compose.yml':49 'lan':81 'link':28 'name':78 'proxi':55 'respect':45 'say':7 'self':67 'self-sign':66 'seper':39 'serv':14,64 'sign':68 'traefik':56 'type':19 'way':12 'well':16 'wireguard':83"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ml/comment/7493330"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575419 {#3988
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4043}
      +body: """
        Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).\n
        \n
        Does it take up the RAM of 2 mysql processes? It seems wasteful if that’s the case, especially since I’m on a low-RAM VPS. I’m getting conflicting answers, so it looks like I’ll have to try it out and see.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705651520 {#4359
        date: 2024-01-19 09:05:20.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@N0x0n@lemmy.ml"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4362 …}
      +nested: Doctrine\ORM\PersistentCollection {#4364 …}
      +votes: Doctrine\ORM\PersistentCollection {#4366 …}
      +reports: Doctrine\ORM\PersistentCollection {#4368 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4370 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4372 …}
      -id: 321930
      -bodyTs: "'2':38 'also':28 'answer':63 'app':19 'app1':23 'app2':27 'case':48 'conflict':62 'docker':13 'especi':49 'exampl':21 'get':61 'like':67 'll':69 'look':66 'low':56 'low-ram':55 'm':52,60 'manag':14 'mysql':25,30,39 'process':16,40 'question':10 'ram':36,57 'see':76 'seem':42 'share':15 'sinc':50 'take':33 'tri':72 'use':24,29 'vps':58 'want':6 'wast':43 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6507309"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705651520 {#4360
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +body: """
      Nah, that’s not how it works ! I have over 10 applications and half of them have databases, and that’s the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !\n
      \n
      I have no idea how it works underneath, that’s a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i’m sure you will find out how it works :).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705669441 {#4411
      date: 2024-01-19 14:04:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@N0x0n@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4414 …}
    +nested: Doctrine\ORM\PersistentCollection {#4416 …}
    +votes: Doctrine\ORM\PersistentCollection {#4418 …}
    +reports: Doctrine\ORM\PersistentCollection {#4420 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4422 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4424 …}
    -id: 322546
    -bodyTs: "'10':11,43,47 'abl':54 'applic':12,48 'ask':83 'chatgpt':84 'comput':50 'contain':26,74 'databas':18 'deploy':33,42 'easier':31 'end':36 'engin':75 'find':97 'half':14 'handl':56 'idea':61 'intens':29 'kind':89 'less':27 'low':35 'm':93 'machin':37 'nah':1 'object':24 'prime':23 'question':71 'resourc':28 'searx':80 'sure':94 'technic':70 'tool':91 'underneath':65 'use':87 'vms':44 'work':7,64,76,101 'would':51"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7522447"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705669441 {#4412
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4448
    date: 2024-01-19 18:39:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@N0x0n@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 323369
  -bodyTs: "'promis':3 'thank':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6516582"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705685960 {#4449
    date: 2024-01-19 18:39:20.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
21 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
22 DENIED moderate
App\Entity\EntryComment {#4075
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
    \n
    To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
    \n
    I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
    \n
    I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
    \n
    Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1726692922 {#4081
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4079 …}
  +votes: Doctrine\ORM\PersistentCollection {#4070 …}
  +reports: Doctrine\ORM\PersistentCollection {#4073 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
  -id: 318868
  -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493180"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705574799 {#4086
    date: 2024-01-18 11:46:39.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
23 DENIED edit
App\Entity\EntryComment {#4075
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
    \n
    To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
    \n
    I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
    \n
    I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
    \n
    Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1726692922 {#4081
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4079 …}
  +votes: Doctrine\ORM\PersistentCollection {#4070 …}
  +reports: Doctrine\ORM\PersistentCollection {#4073 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
  -id: 318868
  -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493180"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705574799 {#4086
    date: 2024-01-18 11:46:39.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
24 DENIED moderate
App\Entity\EntryComment {#4075
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
    \n
    To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
    \n
    I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
    \n
    I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
    \n
    Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1726692922 {#4081
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4079 …}
  +votes: Doctrine\ORM\PersistentCollection {#4070 …}
  +reports: Doctrine\ORM\PersistentCollection {#4073 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
  -id: 318868
  -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7493180"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705574799 {#4086
    date: 2024-01-18 11:46:39.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
25 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
26 DENIED moderate
App\Entity\EntryComment {#4346
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4075
    +user: App\Entity\User {#4064 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
      \n
      To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
      \n
      I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
      \n
      I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
      \n
      Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1726692922 {#4081
      date: 2024-09-18 22:55:22.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4079 …}
    +votes: Doctrine\ORM\PersistentCollection {#4070 …}
    +reports: Doctrine\ORM\PersistentCollection {#4073 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
    -id: 318868
    -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493180"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705574799 {#4086
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651047 {#4344
    date: 2024-01-19 08:57:27.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4347 …}
  +nested: Doctrine\ORM\PersistentCollection {#4349 …}
  +votes: Doctrine\ORM\PersistentCollection {#4351 …}
  +reports: Doctrine\ORM\PersistentCollection {#4353 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
  -id: 321912
  -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507219"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651047 {#4345
    date: 2024-01-19 08:57:27.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
27 DENIED edit
App\Entity\EntryComment {#4346
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4075
    +user: App\Entity\User {#4064 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
      \n
      To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
      \n
      I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
      \n
      I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
      \n
      Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1726692922 {#4081
      date: 2024-09-18 22:55:22.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4079 …}
    +votes: Doctrine\ORM\PersistentCollection {#4070 …}
    +reports: Doctrine\ORM\PersistentCollection {#4073 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
    -id: 318868
    -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493180"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705574799 {#4086
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651047 {#4344
    date: 2024-01-19 08:57:27.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4347 …}
  +nested: Doctrine\ORM\PersistentCollection {#4349 …}
  +votes: Doctrine\ORM\PersistentCollection {#4351 …}
  +reports: Doctrine\ORM\PersistentCollection {#4353 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
  -id: 321912
  -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507219"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651047 {#4345
    date: 2024-01-19 08:57:27.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
28 DENIED moderate
App\Entity\EntryComment {#4346
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4075
    +user: App\Entity\User {#4064 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
      \n
      To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
      \n
      I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
      \n
      I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
      \n
      Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1726692922 {#4081
      date: 2024-09-18 22:55:22.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4079 …}
    +votes: Doctrine\ORM\PersistentCollection {#4070 …}
    +reports: Doctrine\ORM\PersistentCollection {#4073 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
    -id: 318868
    -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/7493180"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705574799 {#4086
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651047 {#4344
    date: 2024-01-19 08:57:27.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4347 …}
  +nested: Doctrine\ORM\PersistentCollection {#4349 …}
  +votes: Doctrine\ORM\PersistentCollection {#4351 …}
  +reports: Doctrine\ORM\PersistentCollection {#4353 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
  -id: 321912
  -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507219"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651047 {#4345
    date: 2024-01-19 08:57:27.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
29 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
30 DENIED moderate
App\Entity\EntryComment {#4398
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4346
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4075
      +user: App\Entity\User {#4064 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
        \n
        To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
        \n
        I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
        \n
        I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
        \n
        Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1726692922 {#4081
        date: 2024-09-18 22:55:22.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4079 …}
      +votes: Doctrine\ORM\PersistentCollection {#4070 …}
      +reports: Doctrine\ORM\PersistentCollection {#4073 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
      -id: 318868
      -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493180"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705574799 {#4086
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4075}
    +body: """
      Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
      \n
      I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651047 {#4344
      date: 2024-01-19 08:57:27.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@ShortN0te@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4347 …}
    +nested: Doctrine\ORM\PersistentCollection {#4349 …}
    +votes: Doctrine\ORM\PersistentCollection {#4351 …}
    +reports: Doctrine\ORM\PersistentCollection {#4353 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
    -id: 321912
    -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507219"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651047 {#4345
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    A compose file is just the configuration of one or many containers. The container is downloaded from the chosen registry and pretty much does not get touched.\n
    \n
    A compose file ‘composes’ multiple containers together. Thats where the name comes from.\n
    \n
    When you run multiple databases then those run parallel. So every database has its own processes. You can even see them on the host system by running something like top or htop. The container images themself can get deduplicated that means that container images that contain the same layer just use the already downloaded files from that layer. A layer is nothing else as multiple files bundled. For example you can choose a ‘ubuntu layer’ for the base of your container image and every container that you want to download using that same layer will just simply use those files on creation time. But that basically does not matter. We are talking about a few 10th or 100th of MB in extreme cases.\n
    \n
    But important, thoses files are just shared statically and changing a file in one container does not affect the other. Every container has its own isolated filesystem.\n
    \n
    > I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    Quite simple actually. It gives every container its own environment thats to namespacing. Every process thinks (more or less) it is running on its own machine.\n
    \n
    There are quite simple docker implementations with just a couple of hundreds lines of code.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705660713 {#4396
    date: 2024-01-19 11:38:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4399 …}
  +nested: Doctrine\ORM\PersistentCollection {#4401 …}
  +votes: Doctrine\ORM\PersistentCollection {#4403 …}
  +reports: Doctrine\ORM\PersistentCollection {#4405 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4407 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4409 …}
  -id: 322237
  -bodyTs: "'100th':158 '10th':156 'actual':214 'affect':181 'alreadi':93 'architectur':194 'base':118 'basic':146 'bundl':107 'case':163 'chang':173 'choos':112 'chosen':19 'code':252 'come':39 'compos':2,29,31 'configur':7 'contain':12,14,33,74,83,86,121,125,178,185,205,218 'coupl':247 'creation':142 'databas':45,52 'dedupl':79 'docker':202,242 'download':16,94,130 'eg':210 'els':103 'environ':221 'even':59 'everi':51,124,184,217,225 'exampl':109 'extrem':162 'file':3,30,95,106,140,167,175 'filesystem':190 'get':26,78 'give':216 'host':64 'htop':72 'hundr':249 'imag':75,84,122 'implement':243 'import':165 'isol':189 'layer':89,98,100,115,134 'less':230 'like':69 'line':250 'm':196 'machin':237 'mani':11 'matter':149 'mb':160 'mean':81 'much':23 'multipl':32,44,105 'mysql':211 'name':38 'namespac':224 'noth':102 'one':9,177 'parallel':49 'pretti':22 'process':56,209,226 'quit':212,240 'registri':20 'run':43,48,67,206,233 'see':60 'separ':204 'share':170 'simpl':213,241 'simpli':137 'someth':68 'static':171 'streamlin':203 'sure':199 'system':65 'talk':152 'that':35,222 'themself':76 'think':227 'those':166 'time':143 'togeth':34 'top':70 'touch':27 'ubuntu':114 'understand':192 'use':91,131,138 'want':128"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7520471"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705660713 {#4397
    date: 2024-01-19 11:38:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
31 DENIED edit
App\Entity\EntryComment {#4398
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4346
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4075
      +user: App\Entity\User {#4064 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
        \n
        To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
        \n
        I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
        \n
        I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
        \n
        Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1726692922 {#4081
        date: 2024-09-18 22:55:22.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4079 …}
      +votes: Doctrine\ORM\PersistentCollection {#4070 …}
      +reports: Doctrine\ORM\PersistentCollection {#4073 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
      -id: 318868
      -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493180"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705574799 {#4086
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4075}
    +body: """
      Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
      \n
      I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651047 {#4344
      date: 2024-01-19 08:57:27.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@ShortN0te@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4347 …}
    +nested: Doctrine\ORM\PersistentCollection {#4349 …}
    +votes: Doctrine\ORM\PersistentCollection {#4351 …}
    +reports: Doctrine\ORM\PersistentCollection {#4353 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
    -id: 321912
    -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507219"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651047 {#4345
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    A compose file is just the configuration of one or many containers. The container is downloaded from the chosen registry and pretty much does not get touched.\n
    \n
    A compose file ‘composes’ multiple containers together. Thats where the name comes from.\n
    \n
    When you run multiple databases then those run parallel. So every database has its own processes. You can even see them on the host system by running something like top or htop. The container images themself can get deduplicated that means that container images that contain the same layer just use the already downloaded files from that layer. A layer is nothing else as multiple files bundled. For example you can choose a ‘ubuntu layer’ for the base of your container image and every container that you want to download using that same layer will just simply use those files on creation time. But that basically does not matter. We are talking about a few 10th or 100th of MB in extreme cases.\n
    \n
    But important, thoses files are just shared statically and changing a file in one container does not affect the other. Every container has its own isolated filesystem.\n
    \n
    > I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    Quite simple actually. It gives every container its own environment thats to namespacing. Every process thinks (more or less) it is running on its own machine.\n
    \n
    There are quite simple docker implementations with just a couple of hundreds lines of code.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705660713 {#4396
    date: 2024-01-19 11:38:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4399 …}
  +nested: Doctrine\ORM\PersistentCollection {#4401 …}
  +votes: Doctrine\ORM\PersistentCollection {#4403 …}
  +reports: Doctrine\ORM\PersistentCollection {#4405 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4407 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4409 …}
  -id: 322237
  -bodyTs: "'100th':158 '10th':156 'actual':214 'affect':181 'alreadi':93 'architectur':194 'base':118 'basic':146 'bundl':107 'case':163 'chang':173 'choos':112 'chosen':19 'code':252 'come':39 'compos':2,29,31 'configur':7 'contain':12,14,33,74,83,86,121,125,178,185,205,218 'coupl':247 'creation':142 'databas':45,52 'dedupl':79 'docker':202,242 'download':16,94,130 'eg':210 'els':103 'environ':221 'even':59 'everi':51,124,184,217,225 'exampl':109 'extrem':162 'file':3,30,95,106,140,167,175 'filesystem':190 'get':26,78 'give':216 'host':64 'htop':72 'hundr':249 'imag':75,84,122 'implement':243 'import':165 'isol':189 'layer':89,98,100,115,134 'less':230 'like':69 'line':250 'm':196 'machin':237 'mani':11 'matter':149 'mb':160 'mean':81 'much':23 'multipl':32,44,105 'mysql':211 'name':38 'namespac':224 'noth':102 'one':9,177 'parallel':49 'pretti':22 'process':56,209,226 'quit':212,240 'registri':20 'run':43,48,67,206,233 'see':60 'separ':204 'share':170 'simpl':213,241 'simpli':137 'someth':68 'static':171 'streamlin':203 'sure':199 'system':65 'talk':152 'that':35,222 'themself':76 'think':227 'those':166 'time':143 'togeth':34 'top':70 'touch':27 'ubuntu':114 'understand':192 'use':91,131,138 'want':128"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7520471"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705660713 {#4397
    date: 2024-01-19 11:38:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
32 DENIED moderate
App\Entity\EntryComment {#4398
  +user: App\Entity\User {#4064 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4346
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4075
      +user: App\Entity\User {#4064 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        So from what i get reading your question, i would recommend reading more about container, compose files and how they work.\n
        \n
        To your question, i assume when you are talking about adding to container you are actually referring to compose files (often called ‘stacks’)? Containers are basically almost no computational overhead.\n
        \n
        I keep my services in extra compose files. Every service that needs a db gets a extra one. This helps to keep things simple and modular.\n
        \n
        I need to upgrade a db from a service? -> i do just that and can leave everything else untouched.\n
        \n
        Also, typically compose automatically creates a network where all the containing services of that stack communicate. Separating the compose files help to isolate them a little bit with the default settings.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1726692922 {#4081
        date: 2024-09-18 22:55:22.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4079 …}
      +votes: Doctrine\ORM\PersistentCollection {#4070 …}
      +reports: Doctrine\ORM\PersistentCollection {#4073 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4068 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4066 …}
      -id: 318868
      -bodyTs: "'actual':37 'ad':32 'almost':48 'also':97 'assum':26 'automat':100 'basic':47 'bit':123 'call':43 'communic':112 'compos':16,40,58,99,115 'comput':50 'contain':15,34,45,107 'creat':101 'db':65,83 'default':126 'els':95 'everi':60 'everyth':94 'extra':57,68 'file':17,41,59,116 'get':5,66 'help':71,117 'isol':119 'keep':53,73 'leav':93 'littl':122 'modular':77 'need':63,79 'network':103 'often':42 'one':69 'overhead':51 'question':8,24 'read':6,12 'recommend':11 'refer':38 'separ':113 'servic':55,61,86,108 'set':127 'simpl':75 'stack':44,111 'talk':30 'thing':74 'typic':98 'untouch':96 'upgrad':81 'work':21 'would':10"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/7493180"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705574799 {#4086
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4075}
    +body: """
      Aren’t containers the product of compose files? i.e. the compose files spin up containers. I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
      \n
      I’m getting some answers saying that it deduplicates, and others saying that it doesn’t. It looks more likely that it’s the former though.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705651047 {#4344
      date: 2024-01-19 08:57:27.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@ShortN0te@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4347 …}
    +nested: Doctrine\ORM\PersistentCollection {#4349 …}
    +votes: Doctrine\ORM\PersistentCollection {#4351 …}
    +reports: Doctrine\ORM\PersistentCollection {#4353 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4355 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4357 …}
    -id: 321912
    -bodyTs: "'answer':41 'architectur':19 'aren':1 'compos':7,11 'contain':3,15,30 'dedupl':45 'docker':27 'doesn':51 'eg':35 'file':8,12 'former':61 'get':39 'i.e':9 'like':56 'look':54 'm':21,38 'mysql':36 'other':47 'process':34 'product':5 'run':31 'say':42,48 'separ':29 'spin':13 'streamlin':28 'sure':24 'though':62 'understand':17"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6507219"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705651047 {#4345
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4075}
  +body: """
    A compose file is just the configuration of one or many containers. The container is downloaded from the chosen registry and pretty much does not get touched.\n
    \n
    A compose file ‘composes’ multiple containers together. Thats where the name comes from.\n
    \n
    When you run multiple databases then those run parallel. So every database has its own processes. You can even see them on the host system by running something like top or htop. The container images themself can get deduplicated that means that container images that contain the same layer just use the already downloaded files from that layer. A layer is nothing else as multiple files bundled. For example you can choose a ‘ubuntu layer’ for the base of your container image and every container that you want to download using that same layer will just simply use those files on creation time. But that basically does not matter. We are talking about a few 10th or 100th of MB in extreme cases.\n
    \n
    But important, thoses files are just shared statically and changing a file in one container does not affect the other. Every container has its own isolated filesystem.\n
    \n
    > I understand the architecture, I’m just not sure about how docker streamlines separate containers running the same process (eg, mysql).\n
    \n
    Quite simple actually. It gives every container its own environment thats to namespacing. Every process thinks (more or less) it is running on its own machine.\n
    \n
    There are quite simple docker implementations with just a couple of hundreds lines of code.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705660713 {#4396
    date: 2024-01-19 11:38:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@ShortN0te@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4399 …}
  +nested: Doctrine\ORM\PersistentCollection {#4401 …}
  +votes: Doctrine\ORM\PersistentCollection {#4403 …}
  +reports: Doctrine\ORM\PersistentCollection {#4405 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4407 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4409 …}
  -id: 322237
  -bodyTs: "'100th':158 '10th':156 'actual':214 'affect':181 'alreadi':93 'architectur':194 'base':118 'basic':146 'bundl':107 'case':163 'chang':173 'choos':112 'chosen':19 'code':252 'come':39 'compos':2,29,31 'configur':7 'contain':12,14,33,74,83,86,121,125,178,185,205,218 'coupl':247 'creation':142 'databas':45,52 'dedupl':79 'docker':202,242 'download':16,94,130 'eg':210 'els':103 'environ':221 'even':59 'everi':51,124,184,217,225 'exampl':109 'extrem':162 'file':3,30,95,106,140,167,175 'filesystem':190 'get':26,78 'give':216 'host':64 'htop':72 'hundr':249 'imag':75,84,122 'implement':243 'import':165 'isol':189 'layer':89,98,100,115,134 'less':230 'like':69 'line':250 'm':196 'machin':237 'mani':11 'matter':149 'mb':160 'mean':81 'much':23 'multipl':32,44,105 'mysql':211 'name':38 'namespac':224 'noth':102 'one':9,177 'parallel':49 'pretti':22 'process':56,209,226 'quit':212,240 'registri':20 'run':43,48,67,206,233 'see':60 'separ':204 'share':170 'simpl':213,241 'simpli':137 'someth':68 'static':171 'streamlin':203 'sure':199 'system':65 'talk':152 'that':35,222 'themself':76 'think':227 'those':166 'time':143 'togeth':34 'top':70 'touch':27 'ubuntu':114 'understand':192 'use':91,131,138 'want':128"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7520471"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705660713 {#4397
    date: 2024-01-19 11:38:33.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
33 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
34 DENIED moderate
App\Entity\EntryComment {#4160
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726383597 {#4155
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4161 …}
  +nested: Doctrine\ORM\PersistentCollection {#4163 …}
  +votes: Doctrine\ORM\PersistentCollection {#4165 …}
  +reports: Doctrine\ORM\PersistentCollection {#4167 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
  -id: 318819
  -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4060909"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572388 {#4156
    date: 2024-01-18 11:06:28.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
35 DENIED edit
App\Entity\EntryComment {#4160
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726383597 {#4155
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4161 …}
  +nested: Doctrine\ORM\PersistentCollection {#4163 …}
  +votes: Doctrine\ORM\PersistentCollection {#4165 …}
  +reports: Doctrine\ORM\PersistentCollection {#4167 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
  -id: 318819
  -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4060909"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572388 {#4156
    date: 2024-01-18 11:06:28.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
36 DENIED moderate
App\Entity\EntryComment {#4160
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726383597 {#4155
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4161 …}
  +nested: Doctrine\ORM\PersistentCollection {#4163 …}
  +votes: Doctrine\ORM\PersistentCollection {#4165 …}
  +reports: Doctrine\ORM\PersistentCollection {#4167 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
  -id: 318819
  -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4060909"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572388 {#4156
    date: 2024-01-18 11:06:28.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
37 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
38 DENIED moderate
App\Entity\EntryComment {#4331
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4160
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726383597 {#4155
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4161 …}
    +nested: Doctrine\ORM\PersistentCollection {#4163 …}
    +votes: Doctrine\ORM\PersistentCollection {#4165 …}
    +reports: Doctrine\ORM\PersistentCollection {#4167 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
    -id: 318819
    -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4060909"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572388 {#4156
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705575201 {#4329
    date: 2024-01-18 11:53:21.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4332 …}
  +nested: Doctrine\ORM\PersistentCollection {#4334 …}
  +votes: Doctrine\ORM\PersistentCollection {#4336 …}
  +reports: Doctrine\ORM\PersistentCollection {#4338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
  -id: 318877
  -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6482642"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575201 {#4330
    date: 2024-01-18 11:53:21.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
39 DENIED edit
App\Entity\EntryComment {#4331
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4160
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726383597 {#4155
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4161 …}
    +nested: Doctrine\ORM\PersistentCollection {#4163 …}
    +votes: Doctrine\ORM\PersistentCollection {#4165 …}
    +reports: Doctrine\ORM\PersistentCollection {#4167 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
    -id: 318819
    -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4060909"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572388 {#4156
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705575201 {#4329
    date: 2024-01-18 11:53:21.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4332 …}
  +nested: Doctrine\ORM\PersistentCollection {#4334 …}
  +votes: Doctrine\ORM\PersistentCollection {#4336 …}
  +reports: Doctrine\ORM\PersistentCollection {#4338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
  -id: 318877
  -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6482642"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575201 {#4330
    date: 2024-01-18 11:53:21.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
40 DENIED moderate
App\Entity\EntryComment {#4331
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4160
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726383597 {#4155
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4161 …}
    +nested: Doctrine\ORM\PersistentCollection {#4163 …}
    +votes: Doctrine\ORM\PersistentCollection {#4165 …}
    +reports: Doctrine\ORM\PersistentCollection {#4167 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
    -id: 318819
    -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4060909"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572388 {#4156
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705575201 {#4329
    date: 2024-01-18 11:53:21.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4332 …}
  +nested: Doctrine\ORM\PersistentCollection {#4334 …}
  +votes: Doctrine\ORM\PersistentCollection {#4336 …}
  +reports: Doctrine\ORM\PersistentCollection {#4338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
  -id: 318877
  -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6482642"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575201 {#4330
    date: 2024-01-18 11:53:21.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
41 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
42 DENIED moderate
App\Entity\EntryComment {#4380
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4331
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4160
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 1
      +score: 0
      +lastActive: DateTime @1726383597 {#4155
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4161 …}
      +nested: Doctrine\ORM\PersistentCollection {#4163 …}
      +votes: Doctrine\ORM\PersistentCollection {#4165 …}
      +reports: Doctrine\ORM\PersistentCollection {#4167 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
      -id: 318819
      -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4060909"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705572388 {#4156
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705575201 {#4329
      date: 2024-01-18 11:53:21.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4332 …}
    +nested: Doctrine\ORM\PersistentCollection {#4334 …}
    +votes: Doctrine\ORM\PersistentCollection {#4336 …}
    +reports: Doctrine\ORM\PersistentCollection {#4338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
    -id: 318877
    -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6482642"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575201 {#4330
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1705575597 {#4379
    date: 2024-01-18 11:59:57.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4383 …}
  +nested: Doctrine\ORM\PersistentCollection {#4388 …}
  +votes: Doctrine\ORM\PersistentCollection {#4384 …}
  +reports: Doctrine\ORM\PersistentCollection {#4390 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
  -id: 318892
  -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4061332"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575597 {#4376
    date: 2024-01-18 11:59:57.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
43 DENIED edit
App\Entity\EntryComment {#4380
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4331
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4160
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 1
      +score: 0
      +lastActive: DateTime @1726383597 {#4155
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4161 …}
      +nested: Doctrine\ORM\PersistentCollection {#4163 …}
      +votes: Doctrine\ORM\PersistentCollection {#4165 …}
      +reports: Doctrine\ORM\PersistentCollection {#4167 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
      -id: 318819
      -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4060909"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705572388 {#4156
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705575201 {#4329
      date: 2024-01-18 11:53:21.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4332 …}
    +nested: Doctrine\ORM\PersistentCollection {#4334 …}
    +votes: Doctrine\ORM\PersistentCollection {#4336 …}
    +reports: Doctrine\ORM\PersistentCollection {#4338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
    -id: 318877
    -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6482642"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575201 {#4330
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1705575597 {#4379
    date: 2024-01-18 11:59:57.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4383 …}
  +nested: Doctrine\ORM\PersistentCollection {#4388 …}
  +votes: Doctrine\ORM\PersistentCollection {#4384 …}
  +reports: Doctrine\ORM\PersistentCollection {#4390 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
  -id: 318892
  -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4061332"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575597 {#4376
    date: 2024-01-18 11:59:57.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
44 DENIED moderate
App\Entity\EntryComment {#4380
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4331
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4160
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 1
      +score: 0
      +lastActive: DateTime @1726383597 {#4155
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4161 …}
      +nested: Doctrine\ORM\PersistentCollection {#4163 …}
      +votes: Doctrine\ORM\PersistentCollection {#4165 …}
      +reports: Doctrine\ORM\PersistentCollection {#4167 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
      -id: 318819
      -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4060909"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705572388 {#4156
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1705575201 {#4329
      date: 2024-01-18 11:53:21.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4332 …}
    +nested: Doctrine\ORM\PersistentCollection {#4334 …}
    +votes: Doctrine\ORM\PersistentCollection {#4336 …}
    +reports: Doctrine\ORM\PersistentCollection {#4338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
    -id: 318877
    -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6482642"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575201 {#4330
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1705575597 {#4379
    date: 2024-01-18 11:59:57.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4383 …}
  +nested: Doctrine\ORM\PersistentCollection {#4388 …}
  +votes: Doctrine\ORM\PersistentCollection {#4384 …}
  +reports: Doctrine\ORM\PersistentCollection {#4390 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
  -id: 318892
  -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4061332"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705575597 {#4376
    date: 2024-01-18 11:59:57.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
45 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
46 DENIED moderate
App\Entity\EntryComment {#4436
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4380
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4331
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4160
        +user: App\Entity\User {#4173 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 1
        +score: 0
        +lastActive: DateTime @1726383597 {#4155
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4161 …}
        +nested: Doctrine\ORM\PersistentCollection {#4163 …}
        +votes: Doctrine\ORM\PersistentCollection {#4165 …}
        +reports: Doctrine\ORM\PersistentCollection {#4167 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
        -id: 318819
        -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.cafe/comment/4060909"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705572388 {#4156
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705575201 {#4329
        date: 2024-01-18 11:53:21.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4332 …}
      +nested: Doctrine\ORM\PersistentCollection {#4334 …}
      +votes: Doctrine\ORM\PersistentCollection {#4336 …}
      +reports: Doctrine\ORM\PersistentCollection {#4338 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
      -id: 318877
      -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6482642"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575201 {#4330
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1705575597 {#4379
      date: 2024-01-18 11:59:57.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4383 …}
    +nested: Doctrine\ORM\PersistentCollection {#4388 …}
    +votes: Doctrine\ORM\PersistentCollection {#4384 …}
    +reports: Doctrine\ORM\PersistentCollection {#4390 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
    -id: 318892
    -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4061332"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575597 {#4376
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705576759 {#4437
    date: 2024-01-18 12:19:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4433 …}
  +nested: Doctrine\ORM\PersistentCollection {#4429 …}
  +votes: Doctrine\ORM\PersistentCollection {#4427 …}
  +reports: Doctrine\ORM\PersistentCollection {#4442 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
  -id: 318932
  -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6483058"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705576759 {#4440
    date: 2024-01-18 12:19:19.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
47 DENIED edit
App\Entity\EntryComment {#4436
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4380
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4331
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4160
        +user: App\Entity\User {#4173 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 1
        +score: 0
        +lastActive: DateTime @1726383597 {#4155
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4161 …}
        +nested: Doctrine\ORM\PersistentCollection {#4163 …}
        +votes: Doctrine\ORM\PersistentCollection {#4165 …}
        +reports: Doctrine\ORM\PersistentCollection {#4167 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
        -id: 318819
        -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.cafe/comment/4060909"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705572388 {#4156
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705575201 {#4329
        date: 2024-01-18 11:53:21.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4332 …}
      +nested: Doctrine\ORM\PersistentCollection {#4334 …}
      +votes: Doctrine\ORM\PersistentCollection {#4336 …}
      +reports: Doctrine\ORM\PersistentCollection {#4338 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
      -id: 318877
      -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6482642"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575201 {#4330
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1705575597 {#4379
      date: 2024-01-18 11:59:57.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4383 …}
    +nested: Doctrine\ORM\PersistentCollection {#4388 …}
    +votes: Doctrine\ORM\PersistentCollection {#4384 …}
    +reports: Doctrine\ORM\PersistentCollection {#4390 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
    -id: 318892
    -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4061332"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575597 {#4376
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705576759 {#4437
    date: 2024-01-18 12:19:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4433 …}
  +nested: Doctrine\ORM\PersistentCollection {#4429 …}
  +votes: Doctrine\ORM\PersistentCollection {#4427 …}
  +reports: Doctrine\ORM\PersistentCollection {#4442 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
  -id: 318932
  -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6483058"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705576759 {#4440
    date: 2024-01-18 12:19:19.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
48 DENIED moderate
App\Entity\EntryComment {#4436
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4380
    +user: App\Entity\User {#4173 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4331
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4160
        +user: App\Entity\User {#4173 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 1
        +score: 0
        +lastActive: DateTime @1726383597 {#4155
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4161 …}
        +nested: Doctrine\ORM\PersistentCollection {#4163 …}
        +votes: Doctrine\ORM\PersistentCollection {#4165 …}
        +reports: Doctrine\ORM\PersistentCollection {#4167 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
        -id: 318819
        -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.cafe/comment/4060909"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705572388 {#4156
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705575201 {#4329
        date: 2024-01-18 11:53:21.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4332 …}
      +nested: Doctrine\ORM\PersistentCollection {#4334 …}
      +votes: Doctrine\ORM\PersistentCollection {#4336 …}
      +reports: Doctrine\ORM\PersistentCollection {#4338 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
      -id: 318877
      -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/6482642"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575201 {#4330
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 2
    +score: 0
    +lastActive: DateTime @1705575597 {#4379
      date: 2024-01-18 11:59:57.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4383 …}
    +nested: Doctrine\ORM\PersistentCollection {#4388 …}
    +votes: Doctrine\ORM\PersistentCollection {#4384 …}
    +reports: Doctrine\ORM\PersistentCollection {#4390 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
    -id: 318892
    -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.cafe/comment/4061332"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705575597 {#4376
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705576759 {#4437
    date: 2024-01-18 12:19:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4433 …}
  +nested: Doctrine\ORM\PersistentCollection {#4429 …}
  +votes: Doctrine\ORM\PersistentCollection {#4427 …}
  +reports: Doctrine\ORM\PersistentCollection {#4442 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
  -id: 318932
  -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6483058"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705576759 {#4440
    date: 2024-01-18 12:19:19.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
49 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
50 DENIED moderate
App\Entity\EntryComment {#4464
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4436
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4380
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4331
        +user: Proxies\__CG__\App\Entity\User {#1978 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4160
          +user: App\Entity\User {#4173 …}
          +entry: App\Entity\Entry {#2400}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
          +lang: "en"
          +isAdult: false
          +favouriteCount: 1
          +score: 0
          +lastActive: DateTime @1726383597 {#4155
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4161 …}
          +nested: Doctrine\ORM\PersistentCollection {#4163 …}
          +votes: Doctrine\ORM\PersistentCollection {#4165 …}
          +reports: Doctrine\ORM\PersistentCollection {#4167 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
          -id: 318819
          -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.cafe/comment/4060909"
          +editedAt: null
          +createdAt: DateTimeImmutable @1705572388 {#4156
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4160}
        +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 0
        +score: 0
        +lastActive: DateTime @1705575201 {#4329
          date: 2024-01-18 11:53:21.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
          "@Illecors@lemmy.cafe"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4332 …}
        +nested: Doctrine\ORM\PersistentCollection {#4334 …}
        +votes: Doctrine\ORM\PersistentCollection {#4336 …}
        +reports: Doctrine\ORM\PersistentCollection {#4338 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
        -id: 318877
        -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/6482642"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575201 {#4330
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1705575597 {#4379
        date: 2024-01-18 11:59:57.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4383 …}
      +nested: Doctrine\ORM\PersistentCollection {#4388 …}
      +votes: Doctrine\ORM\PersistentCollection {#4384 …}
      +reports: Doctrine\ORM\PersistentCollection {#4390 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
      -id: 318892
      -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4061332"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575597 {#4376
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705576759 {#4437
      date: 2024-01-18 12:19:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4433 …}
    +nested: Doctrine\ORM\PersistentCollection {#4429 …}
    +votes: Doctrine\ORM\PersistentCollection {#4427 …}
    +reports: Doctrine\ORM\PersistentCollection {#4442 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
    -id: 318932
    -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6483058"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705576759 {#4440
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4469
    date: 2024-01-18 13:29:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4472 …}
  +nested: Doctrine\ORM\PersistentCollection {#4476 …}
  +votes: Doctrine\ORM\PersistentCollection {#4478 …}
  +reports: Doctrine\ORM\PersistentCollection {#4479 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4481 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4483 …}
  -id: 319044
  -bodyTs: "'/comics/ten_thousand.png)':3 'imgs.xkcd.com':2 'imgs.xkcd.com/comics/ten_thousand.png)':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4062379"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705580944 {#4466
    date: 2024-01-18 13:29:04.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
51 DENIED edit
App\Entity\EntryComment {#4464
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4436
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4380
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4331
        +user: Proxies\__CG__\App\Entity\User {#1978 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4160
          +user: App\Entity\User {#4173 …}
          +entry: App\Entity\Entry {#2400}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
          +lang: "en"
          +isAdult: false
          +favouriteCount: 1
          +score: 0
          +lastActive: DateTime @1726383597 {#4155
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4161 …}
          +nested: Doctrine\ORM\PersistentCollection {#4163 …}
          +votes: Doctrine\ORM\PersistentCollection {#4165 …}
          +reports: Doctrine\ORM\PersistentCollection {#4167 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
          -id: 318819
          -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.cafe/comment/4060909"
          +editedAt: null
          +createdAt: DateTimeImmutable @1705572388 {#4156
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4160}
        +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 0
        +score: 0
        +lastActive: DateTime @1705575201 {#4329
          date: 2024-01-18 11:53:21.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
          "@Illecors@lemmy.cafe"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4332 …}
        +nested: Doctrine\ORM\PersistentCollection {#4334 …}
        +votes: Doctrine\ORM\PersistentCollection {#4336 …}
        +reports: Doctrine\ORM\PersistentCollection {#4338 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
        -id: 318877
        -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/6482642"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575201 {#4330
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1705575597 {#4379
        date: 2024-01-18 11:59:57.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4383 …}
      +nested: Doctrine\ORM\PersistentCollection {#4388 …}
      +votes: Doctrine\ORM\PersistentCollection {#4384 …}
      +reports: Doctrine\ORM\PersistentCollection {#4390 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
      -id: 318892
      -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4061332"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575597 {#4376
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705576759 {#4437
      date: 2024-01-18 12:19:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4433 …}
    +nested: Doctrine\ORM\PersistentCollection {#4429 …}
    +votes: Doctrine\ORM\PersistentCollection {#4427 …}
    +reports: Doctrine\ORM\PersistentCollection {#4442 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
    -id: 318932
    -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6483058"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705576759 {#4440
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4469
    date: 2024-01-18 13:29:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4472 …}
  +nested: Doctrine\ORM\PersistentCollection {#4476 …}
  +votes: Doctrine\ORM\PersistentCollection {#4478 …}
  +reports: Doctrine\ORM\PersistentCollection {#4479 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4481 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4483 …}
  -id: 319044
  -bodyTs: "'/comics/ten_thousand.png)':3 'imgs.xkcd.com':2 'imgs.xkcd.com/comics/ten_thousand.png)':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4062379"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705580944 {#4466
    date: 2024-01-18 13:29:04.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
52 DENIED moderate
App\Entity\EntryComment {#4464
  +user: App\Entity\User {#4173 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4436
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4380
      +user: App\Entity\User {#4173 …}
      +entry: App\Entity\Entry {#2400}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4331
        +user: Proxies\__CG__\App\Entity\User {#1978 …}
        +entry: App\Entity\Entry {#2400}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4160
          +user: App\Entity\User {#4173 …}
          +entry: App\Entity\Entry {#2400}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: "I would suggest having an nginx as a reverse proxy (I prefer avoiding a container as it’s easier to manage) and the have your services in whatever medium you prefer."
          +lang: "en"
          +isAdult: false
          +favouriteCount: 1
          +score: 0
          +lastActive: DateTime @1726383597 {#4155
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4161 …}
          +nested: Doctrine\ORM\PersistentCollection {#4163 …}
          +votes: Doctrine\ORM\PersistentCollection {#4165 …}
          +reports: Doctrine\ORM\PersistentCollection {#4167 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4169 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4171 …}
          -id: 318819
          -bodyTs: "'avoid':13 'contain':15 'easier':19 'manag':21 'medium':29 'nginx':6 'prefer':12,31 'proxi':10 'revers':9 'servic':26 'suggest':3 'whatev':28 'would':2"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.cafe/comment/4060909"
          +editedAt: null
          +createdAt: DateTimeImmutable @1705572388 {#4156
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4160}
        +body: "Yes, that’s exactly what I’m doing now, I was only unsure about how to map the remaining services - in the same docker containers, or in new ones."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 0
        +score: 0
        +lastActive: DateTime @1705575201 {#4329
          date: 2024-01-18 11:53:21.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
          "@Illecors@lemmy.cafe"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4332 …}
        +nested: Doctrine\ORM\PersistentCollection {#4334 …}
        +votes: Doctrine\ORM\PersistentCollection {#4336 …}
        +reports: Doctrine\ORM\PersistentCollection {#4338 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4340 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4342 …}
        -id: 318877
        -bodyTs: "'contain':25 'docker':24 'exact':4 'm':7 'map':17 'new':28 'one':29 'remain':19 'servic':20 'unsur':13 'yes':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/6482642"
        +editedAt: null
        +createdAt: DateTimeImmutable @1705575201 {#4330
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4160}
      +body: "Separate. That’s the whole point of containerisation! Otherwise you’re just doing a regular deploy with extra steps"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1705575597 {#4379
        date: 2024-01-18 11:59:57.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
        "@Illecors@lemmy.cafe"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4383 …}
      +nested: Doctrine\ORM\PersistentCollection {#4388 …}
      +votes: Doctrine\ORM\PersistentCollection {#4384 …}
      +reports: Doctrine\ORM\PersistentCollection {#4390 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4392 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4394 …}
      -id: 318892
      -bodyTs: "'containeris':8 'deploy':16 'extra':18 'otherwis':9 'point':6 're':11 'regular':15 'separ':1 'step':19 'whole':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.cafe/comment/4061332"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705575597 {#4376
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4160}
    +body: "Thank you. Yes makes sense. I guess it’s fairly obvious in hindsight."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1705576759 {#4437
      date: 2024-01-18 12:19:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
      "@Illecors@lemmy.cafe"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4433 …}
    +nested: Doctrine\ORM\PersistentCollection {#4429 …}
    +votes: Doctrine\ORM\PersistentCollection {#4427 …}
    +reports: Doctrine\ORM\PersistentCollection {#4442 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4444 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4446 …}
    -id: 318932
    -bodyTs: "'fair':10 'guess':7 'hindsight':13 'make':4 'obvious':11 'sens':5 'thank':1 'yes':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/6483058"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705576759 {#4440
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4160}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4469
    date: 2024-01-18 13:29:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@Illecors@lemmy.cafe"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4472 …}
  +nested: Doctrine\ORM\PersistentCollection {#4476 …}
  +votes: Doctrine\ORM\PersistentCollection {#4478 …}
  +reports: Doctrine\ORM\PersistentCollection {#4479 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4481 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4483 …}
  -id: 319044
  -bodyTs: "'/comics/ten_thousand.png)':3 'imgs.xkcd.com':2 'imgs.xkcd.com/comics/ten_thousand.png)':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.cafe/comment/4062379"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705580944 {#4466
    date: 2024-01-18 13:29:04.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
53 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
54 DENIED moderate
App\Entity\EntryComment {#4233
  +user: App\Entity\User {#4246 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726640049 {#4228
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4234 …}
  +nested: Doctrine\ORM\PersistentCollection {#4236 …}
  +votes: Doctrine\ORM\PersistentCollection {#4238 …}
  +reports: Doctrine\ORM\PersistentCollection {#4240 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
  -id: 318808
  -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6795996"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572072 {#4229
    date: 2024-01-18 11:01:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
55 DENIED edit
App\Entity\EntryComment {#4233
  +user: App\Entity\User {#4246 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726640049 {#4228
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4234 …}
  +nested: Doctrine\ORM\PersistentCollection {#4236 …}
  +votes: Doctrine\ORM\PersistentCollection {#4238 …}
  +reports: Doctrine\ORM\PersistentCollection {#4240 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
  -id: 318808
  -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6795996"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572072 {#4229
    date: 2024-01-18 11:01:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
56 DENIED moderate
App\Entity\EntryComment {#4233
  +user: App\Entity\User {#4246 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1726640049 {#4228
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4234 …}
  +nested: Doctrine\ORM\PersistentCollection {#4236 …}
  +votes: Doctrine\ORM\PersistentCollection {#4238 …}
  +reports: Doctrine\ORM\PersistentCollection {#4240 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
  -id: 318808
  -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6795996"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705572072 {#4229
    date: 2024-01-18 11:01:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
57 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
58 DENIED moderate
App\Entity\EntryComment {#4313
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4233
    +user: App\Entity\User {#4246 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726640049 {#4228
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4234 …}
    +nested: Doctrine\ORM\PersistentCollection {#4236 …}
    +votes: Doctrine\ORM\PersistentCollection {#4238 …}
    +reports: Doctrine\ORM\PersistentCollection {#4240 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
    -id: 318808
    -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6795996"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572072 {#4229
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4233}
  +body: "That was my impression as well. But since I’m on a low-RAM VPS any overhead in RAM adds up, and I wanted to know how process deduplication works before I get into it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651672 {#4312
    date: 2024-01-19 09:07:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@markr@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4316 …}
  +nested: Doctrine\ORM\PersistentCollection {#4321 …}
  +votes: Doctrine\ORM\PersistentCollection {#4317 …}
  +reports: Doctrine\ORM\PersistentCollection {#4323 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4325 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4327 …}
  -id: 321936
  -bodyTs: "'add':21 'dedupl':30 'get':34 'impress':4 'know':27 'low':14 'low-ram':13 'm':10 'overhead':18 'process':29 'ram':15,20 'sinc':8 'vps':16 'want':25 'well':6 'work':31"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507340"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651672 {#4309
    date: 2024-01-19 09:07:52.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
59 DENIED edit
App\Entity\EntryComment {#4313
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4233
    +user: App\Entity\User {#4246 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726640049 {#4228
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4234 …}
    +nested: Doctrine\ORM\PersistentCollection {#4236 …}
    +votes: Doctrine\ORM\PersistentCollection {#4238 …}
    +reports: Doctrine\ORM\PersistentCollection {#4240 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
    -id: 318808
    -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6795996"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572072 {#4229
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4233}
  +body: "That was my impression as well. But since I’m on a low-RAM VPS any overhead in RAM adds up, and I wanted to know how process deduplication works before I get into it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651672 {#4312
    date: 2024-01-19 09:07:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@markr@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4316 …}
  +nested: Doctrine\ORM\PersistentCollection {#4321 …}
  +votes: Doctrine\ORM\PersistentCollection {#4317 …}
  +reports: Doctrine\ORM\PersistentCollection {#4323 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4325 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4327 …}
  -id: 321936
  -bodyTs: "'add':21 'dedupl':30 'get':34 'impress':4 'know':27 'low':14 'low-ram':13 'm':10 'overhead':18 'process':29 'ram':15,20 'sinc':8 'vps':16 'want':25 'well':6 'work':31"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507340"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651672 {#4309
    date: 2024-01-19 09:07:52.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
60 DENIED moderate
App\Entity\EntryComment {#4313
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2400
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +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 {#275
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -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 {#269
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#271
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1889 …}
    +slug: "Adding-services-to-an-existing-Docker-nginx-container"
    +title: "Adding services to an existing Docker nginx container"
    +url: null
    +body: """
      Hi, I’m just getting started with Docker, so apologies in advance if this seems silly.\n
      \n
      I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.\n
      \n
      So I’ve set up the invoicing software ([InvoiceNinja](https://hub.docker.com/r/invoiceninja/invoiceninja/)), and everything is working as I want.\n
      \n
      Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.\n
      \n
      Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I’m worried that an update to Invoiceninja would have a chance of messing up the other setups as well.\n
      \n
      It shouldn’t, from my understanding of how docker containers work, but I’m not 100% sure. What would be the best way to proceed?
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 14
    +favouriteCount: 9
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1726812287 {#2414
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1688 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1965 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 31447
    -titleTs: "'ad':1 'contain':8 'docker':6 'exist':5 'nginx':7 'servic':2"
    -bodyTs: "'/r/invoiceninja/invoiceninja/)),':67 '100':151 'add':80,99 'addit':100 'advanc':12 'apolog':10 'best':157 'chanc':127 'compos':111 'config':101 'contain':92,145 'direct':31 'docker':8,54,110,144 'docker-compos':109 'dokuwiki':86 'everyth':69 'exist':104 'feel':94 'generat':112 'get':5 'hi':1 'host':22 'hub.docker.com':66 'hub.docker.com/r/invoiceninja/invoiceninja/)),':65 'instead':96 'invoic':27,62 'invoiceninja':64,108,123 'm':3,117,149 'mariadb':38 'mess':40,129 'multipl':23 'mysql':115 'new':91 'nginx':36,113 'person':29 'proceed':160 'reader':26 'recent':43 'rout':55 'rss':25 'seem':15 'self':21 'self-host':20 'server':105 'servic':24,83 'set':59,89 'setup':133 'shouldn':137 'silli':16 'softwar':28,63 'start':6,46 'sure':152 'time':50 'took':52 'ttrss':84 'understand':141 'updat':121 'use':18,35 've':58 'vps':34 'want':74,78 'wast':95 'way':158 'well':135 'wiki':30 'work':71,146 'worri':118 'would':124,154"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705635780
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/13532132"
    +editedAt: DateTimeImmutable @1726356978 {#1793
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2402
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4233
    +user: App\Entity\User {#4246 …}
    +entry: App\Entity\Entry {#2400}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Containers are very lightweight. I have no desire to build anything so I always just add another service container to my existing stacks."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 1
    +score: 0
    +lastActive: DateTime @1726640049 {#4228
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4234 …}
    +nested: Doctrine\ORM\PersistentCollection {#4236 …}
    +votes: Doctrine\ORM\PersistentCollection {#4238 …}
    +reports: Doctrine\ORM\PersistentCollection {#4240 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4242 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4244 …}
    -id: 318808
    -bodyTs: "'add':16 'alway':14 'anoth':17 'anyth':11 'build':10 'contain':1,19 'desir':8 'exist':22 'lightweight':4 'servic':18 'stack':23"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6795996"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705572072 {#4229
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4233}
  +body: "That was my impression as well. But since I’m on a low-RAM VPS any overhead in RAM adds up, and I wanted to know how process deduplication works before I get into it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705651672 {#4312
    date: 2024-01-19 09:07:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
    "@markr@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4316 …}
  +nested: Doctrine\ORM\PersistentCollection {#4321 …}
  +votes: Doctrine\ORM\PersistentCollection {#4317 …}
  +reports: Doctrine\ORM\PersistentCollection {#4323 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4325 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4327 …}
  -id: 321936
  -bodyTs: "'add':21 'dedupl':30 'get':34 'impress':4 'know':27 'low':14 'low-ram':13 'm':10 'overhead':18 'process':29 'ram':15,20 'sinc':8 'vps':16 'want':25 'well':6 'work':31"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/6507340"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705651672 {#4309
    date: 2024-01-19 09:07:52.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
61 DENIED edit
App\Entity\Magazine {#265
  +icon: Proxies\__CG__\App\Entity\Image {#246 …}
  +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 {#275
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#237 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
  +entries: Doctrine\ORM\PersistentCollection {#180 …}
  +posts: Doctrine\ORM\PersistentCollection {#138 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
  +bans: Doctrine\ORM\PersistentCollection {#117 …}
  +reports: Doctrine\ORM\PersistentCollection {#103 …}
  +badges: Doctrine\ORM\PersistentCollection {#81 …}
  +logs: Doctrine\ORM\PersistentCollection {#71 …}
  +awards: Doctrine\ORM\PersistentCollection {#1346 …}
  +categories: Doctrine\ORM\PersistentCollection {#1823 …}
  -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 {#269
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#271
    date: 2023-12-25 04:10:26.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details