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 …}
}
18.46 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

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

Access Decision

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

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\Entry {#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 {#4023
  +user: App\Entity\User {#3971 …}
  +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 {#4032
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4021 …}
  +nested: Doctrine\ORM\PersistentCollection {#4019 …}
  +votes: Doctrine\ORM\PersistentCollection {#4017 …}
  +reports: Doctrine\ORM\PersistentCollection {#4015 …}
  +favourites: Doctrine\ORM\PersistentCollection {#3983 …}
  +notifications: Doctrine\ORM\PersistentCollection {#3987 …}
  -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 {#3968
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\EntryComment {#4023
  +user: App\Entity\User {#3971 …}
  +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 {#4032
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4021 …}
  +nested: Doctrine\ORM\PersistentCollection {#4019 …}
  +votes: Doctrine\ORM\PersistentCollection {#4017 …}
  +reports: Doctrine\ORM\PersistentCollection {#4015 …}
  +favourites: Doctrine\ORM\PersistentCollection {#3983 …}
  +notifications: Doctrine\ORM\PersistentCollection {#3987 …}
  -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 {#3968
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\EntryComment {#4023
  +user: App\Entity\User {#3971 …}
  +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 {#4032
    date: 2024-09-20 08:04:47.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4021 …}
  +nested: Doctrine\ORM\PersistentCollection {#4019 …}
  +votes: Doctrine\ORM\PersistentCollection {#4017 …}
  +reports: Doctrine\ORM\PersistentCollection {#4015 …}
  +favourites: Doctrine\ORM\PersistentCollection {#3983 …}
  +notifications: Doctrine\ORM\PersistentCollection {#3987 …}
  -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 {#3968
    date: 2024-01-18 11:56:59.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
9 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
10 DENIED moderate
App\Entity\EntryComment {#4055
  +user: App\Entity\User {#4044 …}
  +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 {#4061
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4060 …}
  +nested: Doctrine\ORM\PersistentCollection {#4059 …}
  +votes: Doctrine\ORM\PersistentCollection {#4050 …}
  +reports: Doctrine\ORM\PersistentCollection {#4053 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4048 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4046 …}
  -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 {#4066
    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
11 DENIED edit
App\Entity\EntryComment {#4055
  +user: App\Entity\User {#4044 …}
  +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 {#4061
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4060 …}
  +nested: Doctrine\ORM\PersistentCollection {#4059 …}
  +votes: Doctrine\ORM\PersistentCollection {#4050 …}
  +reports: Doctrine\ORM\PersistentCollection {#4053 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4048 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4046 …}
  -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 {#4066
    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
12 DENIED moderate
App\Entity\EntryComment {#4055
  +user: App\Entity\User {#4044 …}
  +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 {#4061
    date: 2024-09-18 22:55:22.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4060 …}
  +nested: Doctrine\ORM\PersistentCollection {#4059 …}
  +votes: Doctrine\ORM\PersistentCollection {#4050 …}
  +reports: Doctrine\ORM\PersistentCollection {#4053 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4048 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4046 …}
  -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 {#4066
    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
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 {#4140
  +user: App\Entity\User {#4153 …}
  +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 {#4135
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4141 …}
  +nested: Doctrine\ORM\PersistentCollection {#4143 …}
  +votes: Doctrine\ORM\PersistentCollection {#4145 …}
  +reports: Doctrine\ORM\PersistentCollection {#4147 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4149 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4151 …}
  -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 {#4136
    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
15 DENIED edit
App\Entity\EntryComment {#4140
  +user: App\Entity\User {#4153 …}
  +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 {#4135
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4141 …}
  +nested: Doctrine\ORM\PersistentCollection {#4143 …}
  +votes: Doctrine\ORM\PersistentCollection {#4145 …}
  +reports: Doctrine\ORM\PersistentCollection {#4147 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4149 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4151 …}
  -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 {#4136
    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
16 DENIED moderate
App\Entity\EntryComment {#4140
  +user: App\Entity\User {#4153 …}
  +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 {#4135
    date: 2024-09-18 08:14:09.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4141 …}
  +nested: Doctrine\ORM\PersistentCollection {#4143 …}
  +votes: Doctrine\ORM\PersistentCollection {#4145 …}
  +reports: Doctrine\ORM\PersistentCollection {#4147 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4149 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4151 …}
  -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 {#4136
    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
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 {#4213
  +user: App\Entity\User {#4226 …}
  +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 {#4208
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4214 …}
  +nested: Doctrine\ORM\PersistentCollection {#4216 …}
  +votes: Doctrine\ORM\PersistentCollection {#4218 …}
  +reports: Doctrine\ORM\PersistentCollection {#4220 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4222 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4224 …}
  -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 {#4209
    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
19 DENIED edit
App\Entity\EntryComment {#4213
  +user: App\Entity\User {#4226 …}
  +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 {#4208
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4214 …}
  +nested: Doctrine\ORM\PersistentCollection {#4216 …}
  +votes: Doctrine\ORM\PersistentCollection {#4218 …}
  +reports: Doctrine\ORM\PersistentCollection {#4220 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4222 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4224 …}
  -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 {#4209
    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
20 DENIED moderate
App\Entity\EntryComment {#4213
  +user: App\Entity\User {#4226 …}
  +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 {#4208
    date: 2024-09-15 08:59:57.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@mudeth@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4214 …}
  +nested: Doctrine\ORM\PersistentCollection {#4216 …}
  +votes: Doctrine\ORM\PersistentCollection {#4218 …}
  +reports: Doctrine\ORM\PersistentCollection {#4220 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4222 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4224 …}
  -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 {#4209
    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
21 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