Redirect 302 redirect from GET @entry_comment_create (329ec7)

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

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

Listeners

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

Authenticators

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

Access Decision

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

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\Entry {#2413
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +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 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -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 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
  +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 {#2418
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1408 …}
  +votes: Doctrine\ORM\PersistentCollection {#1961 …}
  +reports: Doctrine\ORM\PersistentCollection {#1972 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
  +badges: Doctrine\ORM\PersistentCollection {#2436 …}
  +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 {#1858
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2388
    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 {#2413
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +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 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -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 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
  +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 {#2418
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1408 …}
  +votes: Doctrine\ORM\PersistentCollection {#1961 …}
  +reports: Doctrine\ORM\PersistentCollection {#1972 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
  +badges: Doctrine\ORM\PersistentCollection {#2436 …}
  +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 {#1858
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2388
    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 {#2413
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +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 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -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 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
  +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 {#2418
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1408 …}
  +votes: Doctrine\ORM\PersistentCollection {#1961 …}
  +reports: Doctrine\ORM\PersistentCollection {#1972 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
  +badges: Doctrine\ORM\PersistentCollection {#2436 …}
  +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 {#1858
    date: 2024-09-15 01:36:18.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705571780 {#2388
    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 {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4052
    date: 2024-09-18 22:55:22.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: 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 {#3984
    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
7 DENIED edit
App\Entity\EntryComment {#4043
  +user: App\Entity\User {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4052
    date: 2024-09-18 22:55:22.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: 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 {#3984
    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
8 DENIED moderate
App\Entity\EntryComment {#4043
  +user: App\Entity\User {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4052
    date: 2024-09-18 22:55:22.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: 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 {#3984
    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
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 {#4342
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3992 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4052
      date: 2024-09-18 22:55:22.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: 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 {#3984
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4340
    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 {#4343 …}
  +nested: Doctrine\ORM\PersistentCollection {#4345 …}
  +votes: Doctrine\ORM\PersistentCollection {#4347 …}
  +reports: Doctrine\ORM\PersistentCollection {#4349 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
  -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 {#4341
    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
11 DENIED edit
App\Entity\EntryComment {#4342
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3992 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4052
      date: 2024-09-18 22:55:22.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: 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 {#3984
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4340
    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 {#4343 …}
  +nested: Doctrine\ORM\PersistentCollection {#4345 …}
  +votes: Doctrine\ORM\PersistentCollection {#4347 …}
  +reports: Doctrine\ORM\PersistentCollection {#4349 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
  -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 {#4341
    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
12 DENIED moderate
App\Entity\EntryComment {#4342
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4043
    +user: App\Entity\User {#3992 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4052
      date: 2024-09-18 22:55:22.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: 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 {#3984
      date: 2024-01-18 11:46:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4340
    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 {#4343 …}
  +nested: Doctrine\ORM\PersistentCollection {#4345 …}
  +votes: Doctrine\ORM\PersistentCollection {#4347 …}
  +reports: Doctrine\ORM\PersistentCollection {#4349 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
  -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 {#4341
    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
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 {#4394
  +user: App\Entity\User {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4342
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3992 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4052
        date: 2024-09-18 22:55:22.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: 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 {#3984
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +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 {#4340
      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 {#4343 …}
    +nested: Doctrine\ORM\PersistentCollection {#4345 …}
    +votes: Doctrine\ORM\PersistentCollection {#4347 …}
    +reports: Doctrine\ORM\PersistentCollection {#4349 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
    -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 {#4341
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4392
    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 {#4395 …}
  +nested: Doctrine\ORM\PersistentCollection {#4397 …}
  +votes: Doctrine\ORM\PersistentCollection {#4399 …}
  +reports: Doctrine\ORM\PersistentCollection {#4401 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4403 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4405 …}
  -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 {#4393
    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
15 DENIED edit
App\Entity\EntryComment {#4394
  +user: App\Entity\User {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4342
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3992 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4052
        date: 2024-09-18 22:55:22.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: 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 {#3984
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +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 {#4340
      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 {#4343 …}
    +nested: Doctrine\ORM\PersistentCollection {#4345 …}
    +votes: Doctrine\ORM\PersistentCollection {#4347 …}
    +reports: Doctrine\ORM\PersistentCollection {#4349 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
    -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 {#4341
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4392
    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 {#4395 …}
  +nested: Doctrine\ORM\PersistentCollection {#4397 …}
  +votes: Doctrine\ORM\PersistentCollection {#4399 …}
  +reports: Doctrine\ORM\PersistentCollection {#4401 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4403 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4405 …}
  -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 {#4393
    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
16 DENIED moderate
App\Entity\EntryComment {#4394
  +user: App\Entity\User {#3992 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4342
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4043
      +user: App\Entity\User {#3992 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4052
        date: 2024-09-18 22:55:22.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: 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 {#3984
        date: 2024-01-18 11:46:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4043}
    +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 {#4340
      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 {#4343 …}
    +nested: Doctrine\ORM\PersistentCollection {#4345 …}
    +votes: Doctrine\ORM\PersistentCollection {#4347 …}
    +reports: Doctrine\ORM\PersistentCollection {#4349 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4353 …}
    -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 {#4341
      date: 2024-01-19 08:57:27.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4043}
  +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 {#4392
    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 {#4395 …}
  +nested: Doctrine\ORM\PersistentCollection {#4397 …}
  +votes: Doctrine\ORM\PersistentCollection {#4399 …}
  +reports: Doctrine\ORM\PersistentCollection {#4401 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4403 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4405 …}
  -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 {#4393
    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
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 {#4089
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4095
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4081 …}
  +nested: Doctrine\ORM\PersistentCollection {#4084 …}
  +votes: Doctrine\ORM\PersistentCollection {#4082 …}
  +reports: Doctrine\ORM\PersistentCollection {#4080 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
  -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 {#4093
    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
19 DENIED edit
App\Entity\EntryComment {#4089
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4095
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4081 …}
  +nested: Doctrine\ORM\PersistentCollection {#4084 …}
  +votes: Doctrine\ORM\PersistentCollection {#4082 …}
  +reports: Doctrine\ORM\PersistentCollection {#4080 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
  -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 {#4093
    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
20 DENIED moderate
App\Entity\EntryComment {#4089
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4095
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4081 …}
  +nested: Doctrine\ORM\PersistentCollection {#4084 …}
  +votes: Doctrine\ORM\PersistentCollection {#4082 …}
  +reports: Doctrine\ORM\PersistentCollection {#4080 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
  -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 {#4093
    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
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 {#4357
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4089
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4095
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4081 …}
    +nested: Doctrine\ORM\PersistentCollection {#4084 …}
    +votes: Doctrine\ORM\PersistentCollection {#4082 …}
    +reports: Doctrine\ORM\PersistentCollection {#4080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
    -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 {#4093
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4355
    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 {#4358 …}
  +nested: Doctrine\ORM\PersistentCollection {#4360 …}
  +votes: Doctrine\ORM\PersistentCollection {#4362 …}
  +reports: Doctrine\ORM\PersistentCollection {#4364 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
  -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 {#4356
    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
23 DENIED edit
App\Entity\EntryComment {#4357
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4089
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4095
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4081 …}
    +nested: Doctrine\ORM\PersistentCollection {#4084 …}
    +votes: Doctrine\ORM\PersistentCollection {#4082 …}
    +reports: Doctrine\ORM\PersistentCollection {#4080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
    -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 {#4093
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4355
    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 {#4358 …}
  +nested: Doctrine\ORM\PersistentCollection {#4360 …}
  +votes: Doctrine\ORM\PersistentCollection {#4362 …}
  +reports: Doctrine\ORM\PersistentCollection {#4364 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
  -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 {#4356
    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
24 DENIED moderate
App\Entity\EntryComment {#4357
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4089
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4095
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4081 …}
    +nested: Doctrine\ORM\PersistentCollection {#4084 …}
    +votes: Doctrine\ORM\PersistentCollection {#4082 …}
    +reports: Doctrine\ORM\PersistentCollection {#4080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
    -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 {#4093
      date: 2024-01-18 11:56:59.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4355
    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 {#4358 …}
  +nested: Doctrine\ORM\PersistentCollection {#4360 …}
  +votes: Doctrine\ORM\PersistentCollection {#4362 …}
  +reports: Doctrine\ORM\PersistentCollection {#4364 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
  -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 {#4356
    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
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 {#4409
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4357
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4089
      +user: App\Entity\User {#4073 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4095
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4081 …}
      +nested: Doctrine\ORM\PersistentCollection {#4084 …}
      +votes: Doctrine\ORM\PersistentCollection {#4082 …}
      +reports: Doctrine\ORM\PersistentCollection {#4080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
      -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 {#4093
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4355
      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 {#4358 …}
    +nested: Doctrine\ORM\PersistentCollection {#4360 …}
    +votes: Doctrine\ORM\PersistentCollection {#4362 …}
    +reports: Doctrine\ORM\PersistentCollection {#4364 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
    -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 {#4356
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4407
    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 {#4410 …}
  +nested: Doctrine\ORM\PersistentCollection {#4412 …}
  +votes: Doctrine\ORM\PersistentCollection {#4414 …}
  +reports: Doctrine\ORM\PersistentCollection {#4416 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
  -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 {#4408
    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
27 DENIED edit
App\Entity\EntryComment {#4409
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4357
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4089
      +user: App\Entity\User {#4073 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4095
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4081 …}
      +nested: Doctrine\ORM\PersistentCollection {#4084 …}
      +votes: Doctrine\ORM\PersistentCollection {#4082 …}
      +reports: Doctrine\ORM\PersistentCollection {#4080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
      -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 {#4093
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4355
      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 {#4358 …}
    +nested: Doctrine\ORM\PersistentCollection {#4360 …}
    +votes: Doctrine\ORM\PersistentCollection {#4362 …}
    +reports: Doctrine\ORM\PersistentCollection {#4364 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
    -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 {#4356
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4407
    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 {#4410 …}
  +nested: Doctrine\ORM\PersistentCollection {#4412 …}
  +votes: Doctrine\ORM\PersistentCollection {#4414 …}
  +reports: Doctrine\ORM\PersistentCollection {#4416 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
  -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 {#4408
    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
28 DENIED moderate
App\Entity\EntryComment {#4409
  +user: App\Entity\User {#4073 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4357
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4089
      +user: App\Entity\User {#4073 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4095
        date: 2024-09-20 08:04:47.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4081 …}
      +nested: Doctrine\ORM\PersistentCollection {#4084 …}
      +votes: Doctrine\ORM\PersistentCollection {#4082 …}
      +reports: Doctrine\ORM\PersistentCollection {#4080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
      -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 {#4093
        date: 2024-01-18 11:56:59.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4355
      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 {#4358 …}
    +nested: Doctrine\ORM\PersistentCollection {#4360 …}
    +votes: Doctrine\ORM\PersistentCollection {#4362 …}
    +reports: Doctrine\ORM\PersistentCollection {#4364 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
    -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 {#4356
      date: 2024-01-19 09:05:20.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +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 {#4407
    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 {#4410 …}
  +nested: Doctrine\ORM\PersistentCollection {#4412 …}
  +votes: Doctrine\ORM\PersistentCollection {#4414 …}
  +reports: Doctrine\ORM\PersistentCollection {#4416 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
  -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 {#4408
    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
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 {#4446
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4409
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4357
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4089
        +user: App\Entity\User {#4073 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4095
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4081 …}
        +nested: Doctrine\ORM\PersistentCollection {#4084 …}
        +votes: Doctrine\ORM\PersistentCollection {#4082 …}
        +reports: Doctrine\ORM\PersistentCollection {#4080 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
        -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 {#4093
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4089}
      +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 {#4355
        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 {#4358 …}
      +nested: Doctrine\ORM\PersistentCollection {#4360 …}
      +votes: Doctrine\ORM\PersistentCollection {#4362 …}
      +reports: Doctrine\ORM\PersistentCollection {#4364 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
      -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 {#4356
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4407
      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 {#4410 …}
    +nested: Doctrine\ORM\PersistentCollection {#4412 …}
    +votes: Doctrine\ORM\PersistentCollection {#4414 …}
    +reports: Doctrine\ORM\PersistentCollection {#4416 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
    -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 {#4408
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4444
    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 {#4447 …}
  +nested: Doctrine\ORM\PersistentCollection {#4449 …}
  +votes: Doctrine\ORM\PersistentCollection {#4451 …}
  +reports: Doctrine\ORM\PersistentCollection {#4453 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4455 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4457 …}
  -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 {#4445
    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
31 DENIED edit
App\Entity\EntryComment {#4446
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4409
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4357
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4089
        +user: App\Entity\User {#4073 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4095
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4081 …}
        +nested: Doctrine\ORM\PersistentCollection {#4084 …}
        +votes: Doctrine\ORM\PersistentCollection {#4082 …}
        +reports: Doctrine\ORM\PersistentCollection {#4080 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
        -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 {#4093
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4089}
      +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 {#4355
        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 {#4358 …}
      +nested: Doctrine\ORM\PersistentCollection {#4360 …}
      +votes: Doctrine\ORM\PersistentCollection {#4362 …}
      +reports: Doctrine\ORM\PersistentCollection {#4364 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
      -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 {#4356
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4407
      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 {#4410 …}
    +nested: Doctrine\ORM\PersistentCollection {#4412 …}
    +votes: Doctrine\ORM\PersistentCollection {#4414 …}
    +reports: Doctrine\ORM\PersistentCollection {#4416 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
    -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 {#4408
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4444
    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 {#4447 …}
  +nested: Doctrine\ORM\PersistentCollection {#4449 …}
  +votes: Doctrine\ORM\PersistentCollection {#4451 …}
  +reports: Doctrine\ORM\PersistentCollection {#4453 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4455 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4457 …}
  -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 {#4445
    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
32 DENIED moderate
App\Entity\EntryComment {#4446
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4409
    +user: App\Entity\User {#4073 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4357
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4089
        +user: App\Entity\User {#4073 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4095
          date: 2024-09-20 08:04:47.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4081 …}
        +nested: Doctrine\ORM\PersistentCollection {#4084 …}
        +votes: Doctrine\ORM\PersistentCollection {#4082 …}
        +reports: Doctrine\ORM\PersistentCollection {#4080 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4079 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4070 …}
        -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 {#4093
          date: 2024-01-18 11:56:59.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4089}
      +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 {#4355
        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 {#4358 …}
      +nested: Doctrine\ORM\PersistentCollection {#4360 …}
      +votes: Doctrine\ORM\PersistentCollection {#4362 …}
      +reports: Doctrine\ORM\PersistentCollection {#4364 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4366 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4368 …}
      -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 {#4356
        date: 2024-01-19 09:05:20.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4089}
    +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 {#4407
      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 {#4410 …}
    +nested: Doctrine\ORM\PersistentCollection {#4412 …}
    +votes: Doctrine\ORM\PersistentCollection {#4414 …}
    +reports: Doctrine\ORM\PersistentCollection {#4416 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4418 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4420 …}
    -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 {#4408
      date: 2024-01-19 14:04:01.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4089}
  +body: "This is promising, thanks!"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705685960 {#4444
    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 {#4447 …}
  +nested: Doctrine\ORM\PersistentCollection {#4449 …}
  +votes: Doctrine\ORM\PersistentCollection {#4451 …}
  +reports: Doctrine\ORM\PersistentCollection {#4453 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4455 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4457 …}
  -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 {#4445
    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
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 {#4156
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4151
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4157 …}
  +nested: Doctrine\ORM\PersistentCollection {#4159 …}
  +votes: Doctrine\ORM\PersistentCollection {#4161 …}
  +reports: Doctrine\ORM\PersistentCollection {#4163 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
  -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 {#4152
    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 {#4156
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4151
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4157 …}
  +nested: Doctrine\ORM\PersistentCollection {#4159 …}
  +votes: Doctrine\ORM\PersistentCollection {#4161 …}
  +reports: Doctrine\ORM\PersistentCollection {#4163 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
  -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 {#4152
    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 {#4156
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4151
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4157 …}
  +nested: Doctrine\ORM\PersistentCollection {#4159 …}
  +votes: Doctrine\ORM\PersistentCollection {#4161 …}
  +reports: Doctrine\ORM\PersistentCollection {#4163 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
  -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 {#4152
    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 {#4327
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4156
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4151
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4157 …}
    +nested: Doctrine\ORM\PersistentCollection {#4159 …}
    +votes: Doctrine\ORM\PersistentCollection {#4161 …}
    +reports: Doctrine\ORM\PersistentCollection {#4163 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
    -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 {#4152
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4325
    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 {#4328 …}
  +nested: Doctrine\ORM\PersistentCollection {#4330 …}
  +votes: Doctrine\ORM\PersistentCollection {#4332 …}
  +reports: Doctrine\ORM\PersistentCollection {#4334 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
  -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 {#4326
    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 {#4327
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4156
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4151
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4157 …}
    +nested: Doctrine\ORM\PersistentCollection {#4159 …}
    +votes: Doctrine\ORM\PersistentCollection {#4161 …}
    +reports: Doctrine\ORM\PersistentCollection {#4163 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
    -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 {#4152
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4325
    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 {#4328 …}
  +nested: Doctrine\ORM\PersistentCollection {#4330 …}
  +votes: Doctrine\ORM\PersistentCollection {#4332 …}
  +reports: Doctrine\ORM\PersistentCollection {#4334 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
  -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 {#4326
    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 {#4327
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4156
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4151
      date: 2024-09-15 08:59:57.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4157 …}
    +nested: Doctrine\ORM\PersistentCollection {#4159 …}
    +votes: Doctrine\ORM\PersistentCollection {#4161 …}
    +reports: Doctrine\ORM\PersistentCollection {#4163 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
    -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 {#4152
      date: 2024-01-18 11:06:28.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4325
    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 {#4328 …}
  +nested: Doctrine\ORM\PersistentCollection {#4330 …}
  +votes: Doctrine\ORM\PersistentCollection {#4332 …}
  +reports: Doctrine\ORM\PersistentCollection {#4334 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
  -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 {#4326
    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 {#4376
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4327
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4156
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4151
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4157 …}
      +nested: Doctrine\ORM\PersistentCollection {#4159 …}
      +votes: Doctrine\ORM\PersistentCollection {#4161 …}
      +reports: Doctrine\ORM\PersistentCollection {#4163 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
      -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 {#4152
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4325
      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 {#4328 …}
    +nested: Doctrine\ORM\PersistentCollection {#4330 …}
    +votes: Doctrine\ORM\PersistentCollection {#4332 …}
    +reports: Doctrine\ORM\PersistentCollection {#4334 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
    -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 {#4326
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4375
    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 {#4379 …}
  +nested: Doctrine\ORM\PersistentCollection {#4384 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4386 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
  -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 {#4372
    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 {#4376
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4327
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4156
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4151
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4157 …}
      +nested: Doctrine\ORM\PersistentCollection {#4159 …}
      +votes: Doctrine\ORM\PersistentCollection {#4161 …}
      +reports: Doctrine\ORM\PersistentCollection {#4163 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
      -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 {#4152
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4325
      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 {#4328 …}
    +nested: Doctrine\ORM\PersistentCollection {#4330 …}
    +votes: Doctrine\ORM\PersistentCollection {#4332 …}
    +reports: Doctrine\ORM\PersistentCollection {#4334 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
    -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 {#4326
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4375
    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 {#4379 …}
  +nested: Doctrine\ORM\PersistentCollection {#4384 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4386 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
  -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 {#4372
    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 {#4376
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4327
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4156
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +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 {#4151
        date: 2024-09-15 08:59:57.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@mudeth@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4157 …}
      +nested: Doctrine\ORM\PersistentCollection {#4159 …}
      +votes: Doctrine\ORM\PersistentCollection {#4161 …}
      +reports: Doctrine\ORM\PersistentCollection {#4163 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
      -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 {#4152
        date: 2024-01-18 11:06:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4325
      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 {#4328 …}
    +nested: Doctrine\ORM\PersistentCollection {#4330 …}
    +votes: Doctrine\ORM\PersistentCollection {#4332 …}
    +reports: Doctrine\ORM\PersistentCollection {#4334 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
    -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 {#4326
      date: 2024-01-18 11:53:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4375
    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 {#4379 …}
  +nested: Doctrine\ORM\PersistentCollection {#4384 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4386 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
  -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 {#4372
    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 {#4432
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4376
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4327
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4156
        +user: App\Entity\User {#4169 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4151
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4157 …}
        +nested: Doctrine\ORM\PersistentCollection {#4159 …}
        +votes: Doctrine\ORM\PersistentCollection {#4161 …}
        +reports: Doctrine\ORM\PersistentCollection {#4163 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
        -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 {#4152
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4325
        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 {#4328 …}
      +nested: Doctrine\ORM\PersistentCollection {#4330 …}
      +votes: Doctrine\ORM\PersistentCollection {#4332 …}
      +reports: Doctrine\ORM\PersistentCollection {#4334 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
      -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 {#4326
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4375
      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 {#4379 …}
    +nested: Doctrine\ORM\PersistentCollection {#4384 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4386 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
    -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 {#4372
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4433
    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 {#4429 …}
  +nested: Doctrine\ORM\PersistentCollection {#4425 …}
  +votes: Doctrine\ORM\PersistentCollection {#4423 …}
  +reports: Doctrine\ORM\PersistentCollection {#4438 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
  -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 {#4436
    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 {#4432
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4376
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4327
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4156
        +user: App\Entity\User {#4169 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4151
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4157 …}
        +nested: Doctrine\ORM\PersistentCollection {#4159 …}
        +votes: Doctrine\ORM\PersistentCollection {#4161 …}
        +reports: Doctrine\ORM\PersistentCollection {#4163 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
        -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 {#4152
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4325
        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 {#4328 …}
      +nested: Doctrine\ORM\PersistentCollection {#4330 …}
      +votes: Doctrine\ORM\PersistentCollection {#4332 …}
      +reports: Doctrine\ORM\PersistentCollection {#4334 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
      -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 {#4326
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4375
      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 {#4379 …}
    +nested: Doctrine\ORM\PersistentCollection {#4384 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4386 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
    -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 {#4372
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4433
    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 {#4429 …}
  +nested: Doctrine\ORM\PersistentCollection {#4425 …}
  +votes: Doctrine\ORM\PersistentCollection {#4423 …}
  +reports: Doctrine\ORM\PersistentCollection {#4438 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
  -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 {#4436
    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 {#4432
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4376
    +user: App\Entity\User {#4169 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4327
      +user: Proxies\__CG__\App\Entity\User {#1973 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4156
        +user: App\Entity\User {#4169 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +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 {#4151
          date: 2024-09-15 08:59:57.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@mudeth@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4157 …}
        +nested: Doctrine\ORM\PersistentCollection {#4159 …}
        +votes: Doctrine\ORM\PersistentCollection {#4161 …}
        +reports: Doctrine\ORM\PersistentCollection {#4163 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
        -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 {#4152
          date: 2024-01-18 11:06:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4325
        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 {#4328 …}
      +nested: Doctrine\ORM\PersistentCollection {#4330 …}
      +votes: Doctrine\ORM\PersistentCollection {#4332 …}
      +reports: Doctrine\ORM\PersistentCollection {#4334 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
      -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 {#4326
        date: 2024-01-18 11:53:21.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4375
      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 {#4379 …}
    +nested: Doctrine\ORM\PersistentCollection {#4384 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4386 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
    -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 {#4372
      date: 2024-01-18 11:59:57.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +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 {#4433
    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 {#4429 …}
  +nested: Doctrine\ORM\PersistentCollection {#4425 …}
  +votes: Doctrine\ORM\PersistentCollection {#4423 …}
  +reports: Doctrine\ORM\PersistentCollection {#4438 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
  -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 {#4436
    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 {#4460
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4432
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4376
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4327
        +user: Proxies\__CG__\App\Entity\User {#1973 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4156
          +user: App\Entity\User {#4169 …}
          +entry: App\Entity\Entry {#2413}
          +magazine: App\Entity\Magazine {#264}
          +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 {#4151
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4157 …}
          +nested: Doctrine\ORM\PersistentCollection {#4159 …}
          +votes: Doctrine\ORM\PersistentCollection {#4161 …}
          +reports: Doctrine\ORM\PersistentCollection {#4163 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
          -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 {#4152
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4156}
        +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 {#4325
          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 {#4328 …}
        +nested: Doctrine\ORM\PersistentCollection {#4330 …}
        +votes: Doctrine\ORM\PersistentCollection {#4332 …}
        +reports: Doctrine\ORM\PersistentCollection {#4334 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
        -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 {#4326
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4375
        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 {#4379 …}
      +nested: Doctrine\ORM\PersistentCollection {#4384 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4386 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
      -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 {#4372
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4433
      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 {#4429 …}
    +nested: Doctrine\ORM\PersistentCollection {#4425 …}
    +votes: Doctrine\ORM\PersistentCollection {#4423 …}
    +reports: Doctrine\ORM\PersistentCollection {#4438 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
    -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 {#4436
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4465
    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 {#4468 …}
  +nested: Doctrine\ORM\PersistentCollection {#4472 …}
  +votes: Doctrine\ORM\PersistentCollection {#4474 …}
  +reports: Doctrine\ORM\PersistentCollection {#4475 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4477 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4479 …}
  -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 {#4462
    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 {#4460
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4432
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4376
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4327
        +user: Proxies\__CG__\App\Entity\User {#1973 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4156
          +user: App\Entity\User {#4169 …}
          +entry: App\Entity\Entry {#2413}
          +magazine: App\Entity\Magazine {#264}
          +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 {#4151
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4157 …}
          +nested: Doctrine\ORM\PersistentCollection {#4159 …}
          +votes: Doctrine\ORM\PersistentCollection {#4161 …}
          +reports: Doctrine\ORM\PersistentCollection {#4163 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
          -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 {#4152
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4156}
        +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 {#4325
          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 {#4328 …}
        +nested: Doctrine\ORM\PersistentCollection {#4330 …}
        +votes: Doctrine\ORM\PersistentCollection {#4332 …}
        +reports: Doctrine\ORM\PersistentCollection {#4334 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
        -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 {#4326
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4375
        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 {#4379 …}
      +nested: Doctrine\ORM\PersistentCollection {#4384 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4386 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
      -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 {#4372
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4433
      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 {#4429 …}
    +nested: Doctrine\ORM\PersistentCollection {#4425 …}
    +votes: Doctrine\ORM\PersistentCollection {#4423 …}
    +reports: Doctrine\ORM\PersistentCollection {#4438 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
    -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 {#4436
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4465
    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 {#4468 …}
  +nested: Doctrine\ORM\PersistentCollection {#4472 …}
  +votes: Doctrine\ORM\PersistentCollection {#4474 …}
  +reports: Doctrine\ORM\PersistentCollection {#4475 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4477 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4479 …}
  -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 {#4462
    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 {#4460
  +user: App\Entity\User {#4169 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4432
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4376
      +user: App\Entity\User {#4169 …}
      +entry: App\Entity\Entry {#2413}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4327
        +user: Proxies\__CG__\App\Entity\User {#1973 …}
        +entry: App\Entity\Entry {#2413}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4156
          +user: App\Entity\User {#4169 …}
          +entry: App\Entity\Entry {#2413}
          +magazine: App\Entity\Magazine {#264}
          +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 {#4151
            date: 2024-09-15 08:59:57.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@mudeth@lemmy.ca"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4157 …}
          +nested: Doctrine\ORM\PersistentCollection {#4159 …}
          +votes: Doctrine\ORM\PersistentCollection {#4161 …}
          +reports: Doctrine\ORM\PersistentCollection {#4163 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4165 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4167 …}
          -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 {#4152
            date: 2024-01-18 11:06:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4156}
        +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 {#4325
          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 {#4328 …}
        +nested: Doctrine\ORM\PersistentCollection {#4330 …}
        +votes: Doctrine\ORM\PersistentCollection {#4332 …}
        +reports: Doctrine\ORM\PersistentCollection {#4334 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4336 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4338 …}
        -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 {#4326
          date: 2024-01-18 11:53:21.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4156}
      +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 {#4375
        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 {#4379 …}
      +nested: Doctrine\ORM\PersistentCollection {#4384 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4386 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4388 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4390 …}
      -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 {#4372
        date: 2024-01-18 11:59:57.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4156}
    +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 {#4433
      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 {#4429 …}
    +nested: Doctrine\ORM\PersistentCollection {#4425 …}
    +votes: Doctrine\ORM\PersistentCollection {#4423 …}
    +reports: Doctrine\ORM\PersistentCollection {#4438 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4440 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4442 …}
    -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 {#4436
      date: 2024-01-18 12:19:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4156}
  +body: "![](https://imgs.xkcd.com/comics/ten_thousand.png)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1705580944 {#4465
    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 {#4468 …}
  +nested: Doctrine\ORM\PersistentCollection {#4472 …}
  +votes: Doctrine\ORM\PersistentCollection {#4474 …}
  +reports: Doctrine\ORM\PersistentCollection {#4475 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4477 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4479 …}
  -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 {#4462
    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 {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4224
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -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 {#4225
    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 {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4224
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -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 {#4225
    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 {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +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 {#4224
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -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 {#4225
    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 {#4309
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4229
    +user: App\Entity\User {#4242 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4224
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4230 …}
    +nested: Doctrine\ORM\PersistentCollection {#4232 …}
    +votes: Doctrine\ORM\PersistentCollection {#4234 …}
    +reports: Doctrine\ORM\PersistentCollection {#4236 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
    -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 {#4225
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4229}
  +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 {#4308
    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 {#4312 …}
  +nested: Doctrine\ORM\PersistentCollection {#4317 …}
  +votes: Doctrine\ORM\PersistentCollection {#4313 …}
  +reports: Doctrine\ORM\PersistentCollection {#4319 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4321 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4323 …}
  -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 {#4305
    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 {#4309
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4229
    +user: App\Entity\User {#4242 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4224
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4230 …}
    +nested: Doctrine\ORM\PersistentCollection {#4232 …}
    +votes: Doctrine\ORM\PersistentCollection {#4234 …}
    +reports: Doctrine\ORM\PersistentCollection {#4236 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
    -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 {#4225
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4229}
  +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 {#4308
    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 {#4312 …}
  +nested: Doctrine\ORM\PersistentCollection {#4317 …}
  +votes: Doctrine\ORM\PersistentCollection {#4313 …}
  +reports: Doctrine\ORM\PersistentCollection {#4319 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4321 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4323 …}
  -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 {#4305
    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 {#4309
  +user: Proxies\__CG__\App\Entity\User {#1973 …}
  +entry: App\Entity\Entry {#2413
    +user: Proxies\__CG__\App\Entity\User {#1973 …}
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +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 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -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 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#1899 …}
    +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 {#2418
      date: 2024-09-20 08:04:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1408 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1972 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +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 {#1858
      date: 2024-09-15 01:36:18.0 +02:00
    }
    +createdAt: DateTimeImmutable @1705571780 {#2388
      date: 2024-01-18 10:56:20.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#264}
  +image: null
  +parent: App\Entity\EntryComment {#4229
    +user: App\Entity\User {#4242 …}
    +entry: App\Entity\Entry {#2413}
    +magazine: App\Entity\Magazine {#264}
    +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 {#4224
      date: 2024-09-18 08:14:09.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@mudeth@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4230 …}
    +nested: Doctrine\ORM\PersistentCollection {#4232 …}
    +votes: Doctrine\ORM\PersistentCollection {#4234 …}
    +reports: Doctrine\ORM\PersistentCollection {#4236 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
    -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 {#4225
      date: 2024-01-18 11:01:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4229}
  +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 {#4308
    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 {#4312 …}
  +nested: Doctrine\ORM\PersistentCollection {#4317 …}
  +votes: Doctrine\ORM\PersistentCollection {#4313 …}
  +reports: Doctrine\ORM\PersistentCollection {#4319 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4321 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4323 …}
  -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 {#4305
    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 {#264
  +icon: Proxies\__CG__\App\Entity\Image {#245 …}
  +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 {#274
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#236 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
  +entries: Doctrine\ORM\PersistentCollection {#179 …}
  +posts: Doctrine\ORM\PersistentCollection {#137 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
  +bans: Doctrine\ORM\PersistentCollection {#116 …}
  +reports: Doctrine\ORM\PersistentCollection {#102 …}
  +badges: Doctrine\ORM\PersistentCollection {#80 …}
  +logs: Doctrine\ORM\PersistentCollection {#70 …}
  +awards: Doctrine\ORM\PersistentCollection {#1360 …}
  +categories: Doctrine\ORM\PersistentCollection {#1792 …}
  -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 {#268
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#270
    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