GET https://kbin.spritesserver.nl/m/selfhosted@lemmy.world/t/32058/How-to-backup-object-storage-for-NextCloud

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

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

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.18 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 {#2414
  +user: Proxies\__CG__\App\Entity\User {#1934 …}
  +magazine: App\Entity\Magazine {#260
    +icon: Proxies\__CG__\App\Entity\Image {#240 …}
    +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: 168
    +entryCommentCount: 3031
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1727568544 {#273
      date: 2024-09-29 02:09:04.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#231 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#227 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#216 …}
    +entries: Doctrine\ORM\PersistentCollection {#174 …}
    +posts: Doctrine\ORM\PersistentCollection {#132 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#194 …}
    +bans: Doctrine\ORM\PersistentCollection {#111 …}
    +reports: Doctrine\ORM\PersistentCollection {#97 …}
    +badges: Doctrine\ORM\PersistentCollection {#75 …}
    +logs: Doctrine\ORM\PersistentCollection {#65 …}
    +awards: Doctrine\ORM\PersistentCollection {#1822 …}
    +categories: Doctrine\ORM\PersistentCollection {#1850 …}
    -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 {#1893 …}
  +slug: "How-to-backup-object-storage-for-NextCloud"
  +title: "How to backup object storage for NextCloud"
  +url: null
  +body: """
    I’m experimenting with running NextCloud (AIO) on a VPS with a B2 bucket as the primary storage. I want to compare performance compared to running it on my home server (esp. when I’m remote) and get an idea of the kinds of costs I’d rack up doing it.\n
    \n
    As part of the setup I have configured the built in borg backup but it has this caveat:\n
    \n
    > Be aware that this solution does not back up files and folders that are mounted into Nextcloud using the external storage app - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.\n
    \n
    The primary storage is external but I’m not using the “external storage” app. So, I have 2 questions.\n
    \n
    1. Does it backup object storage if it’s primary (my gut says no)?\n
    2. If no, what’s a good way to backup the B2 bucket?\n
    \n
    I’ve done some research on this topic and I’m kinda coming up empty. I would normally use restic but restic doesn’t work in that direction (B2 -> local backup).\n
    \n
    It looks like rclone can be used to mount a B2 bucket. One idea I had was to mount it, read-only, and let AIO/borg backup that path with the container backups.\n
    \n
    Has anyone done this before? Any thoughts?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 0
  +favouriteCount: 16
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1705801515 {#1814
    date: 2024-01-21 02:45:15.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1878 …}
  +votes: Doctrine\ORM\PersistentCollection {#1932 …}
  +reports: Doctrine\ORM\PersistentCollection {#1947 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2357 …}
  +badges: Doctrine\ORM\PersistentCollection {#2167 …}
  +children: []
  -id: 32058
  -titleTs: "'backup':3 'nextcloud':7 'object':4 'storag':5"
  -bodyTs: "'1':133 '2':131,147 'add':95 'aio':7 'aio/borg':216 'anyon':225 'app':91,127 'awar':71 'b2':13,158,188,201 'back':77,106 'backup':64,111,136,156,190,217,223 'borg':63 'bucket':14,159,202 'built':61 'caveat':69 'come':172 'compar':22,24 'configur':59 'contain':222 'cost':45 'd':47 'direct':187 'docker':97 'doesn':182 'done':113,162,226 'empti':174 'esp':32 'experi':3 'extern':89,118,125 'file':79 'folder':81 'get':38 'good':153 'gut':144 'home':30 'host':100 'idea':40,204 'initi':110 'kind':43 'kinda':171 'let':215 'like':193 'local':189 'look':192 'm':2,35,121,170 'mount':84,199,209 'nextcloud':6,86 'normal':177 'object':137 'one':203 'part':53 'path':101,219 'perform':23 'primari':17,115,142 'question':132 'rack':48 'rclone':194 'read':212 'read-on':211 'remot':36 'research':164 'restic':179,181 'run':5,26 'say':145 'server':31 'setup':56 'solut':74 'storag':18,90,116,126,138 'thought':230 'topic':167 'use':87,123,178,197 've':161 'volum':98 'vps':10 'want':20,104 'way':154 'work':184 'would':176"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705837515
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/post/317712"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705801515 {#2420
    date: 2024-01-21 02:45:15.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 {#2414
  +user: Proxies\__CG__\App\Entity\User {#1934 …}
  +magazine: App\Entity\Magazine {#260
    +icon: Proxies\__CG__\App\Entity\Image {#240 …}
    +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: 168
    +entryCommentCount: 3031
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1727568544 {#273
      date: 2024-09-29 02:09:04.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#231 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#227 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#216 …}
    +entries: Doctrine\ORM\PersistentCollection {#174 …}
    +posts: Doctrine\ORM\PersistentCollection {#132 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#194 …}
    +bans: Doctrine\ORM\PersistentCollection {#111 …}
    +reports: Doctrine\ORM\PersistentCollection {#97 …}
    +badges: Doctrine\ORM\PersistentCollection {#75 …}
    +logs: Doctrine\ORM\PersistentCollection {#65 …}
    +awards: Doctrine\ORM\PersistentCollection {#1822 …}
    +categories: Doctrine\ORM\PersistentCollection {#1850 …}
    -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 {#1893 …}
  +slug: "How-to-backup-object-storage-for-NextCloud"
  +title: "How to backup object storage for NextCloud"
  +url: null
  +body: """
    I’m experimenting with running NextCloud (AIO) on a VPS with a B2 bucket as the primary storage. I want to compare performance compared to running it on my home server (esp. when I’m remote) and get an idea of the kinds of costs I’d rack up doing it.\n
    \n
    As part of the setup I have configured the built in borg backup but it has this caveat:\n
    \n
    > Be aware that this solution does not back up files and folders that are mounted into Nextcloud using the external storage app - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.\n
    \n
    The primary storage is external but I’m not using the “external storage” app. So, I have 2 questions.\n
    \n
    1. Does it backup object storage if it’s primary (my gut says no)?\n
    2. If no, what’s a good way to backup the B2 bucket?\n
    \n
    I’ve done some research on this topic and I’m kinda coming up empty. I would normally use restic but restic doesn’t work in that direction (B2 -> local backup).\n
    \n
    It looks like rclone can be used to mount a B2 bucket. One idea I had was to mount it, read-only, and let AIO/borg backup that path with the container backups.\n
    \n
    Has anyone done this before? Any thoughts?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 0
  +favouriteCount: 16
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1705801515 {#1814
    date: 2024-01-21 02:45:15.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1878 …}
  +votes: Doctrine\ORM\PersistentCollection {#1932 …}
  +reports: Doctrine\ORM\PersistentCollection {#1947 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2357 …}
  +badges: Doctrine\ORM\PersistentCollection {#2167 …}
  +children: []
  -id: 32058
  -titleTs: "'backup':3 'nextcloud':7 'object':4 'storag':5"
  -bodyTs: "'1':133 '2':131,147 'add':95 'aio':7 'aio/borg':216 'anyon':225 'app':91,127 'awar':71 'b2':13,158,188,201 'back':77,106 'backup':64,111,136,156,190,217,223 'borg':63 'bucket':14,159,202 'built':61 'caveat':69 'come':172 'compar':22,24 'configur':59 'contain':222 'cost':45 'd':47 'direct':187 'docker':97 'doesn':182 'done':113,162,226 'empti':174 'esp':32 'experi':3 'extern':89,118,125 'file':79 'folder':81 'get':38 'good':153 'gut':144 'home':30 'host':100 'idea':40,204 'initi':110 'kind':43 'kinda':171 'let':215 'like':193 'local':189 'look':192 'm':2,35,121,170 'mount':84,199,209 'nextcloud':6,86 'normal':177 'object':137 'one':203 'part':53 'path':101,219 'perform':23 'primari':17,115,142 'question':132 'rack':48 'rclone':194 'read':212 'read-on':211 'remot':36 'research':164 'restic':179,181 'run':5,26 'say':145 'server':31 'setup':56 'solut':74 'storag':18,90,116,126,138 'thought':230 'topic':167 'use':87,123,178,197 've':161 'volum':98 'vps':10 'want':20,104 'way':154 'work':184 'would':176"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705837515
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/post/317712"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705801515 {#2420
    date: 2024-01-21 02:45:15.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 {#2414
  +user: Proxies\__CG__\App\Entity\User {#1934 …}
  +magazine: App\Entity\Magazine {#260
    +icon: Proxies\__CG__\App\Entity\Image {#240 …}
    +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: 168
    +entryCommentCount: 3031
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1727568544 {#273
      date: 2024-09-29 02:09:04.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#231 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#227 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#216 …}
    +entries: Doctrine\ORM\PersistentCollection {#174 …}
    +posts: Doctrine\ORM\PersistentCollection {#132 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#194 …}
    +bans: Doctrine\ORM\PersistentCollection {#111 …}
    +reports: Doctrine\ORM\PersistentCollection {#97 …}
    +badges: Doctrine\ORM\PersistentCollection {#75 …}
    +logs: Doctrine\ORM\PersistentCollection {#65 …}
    +awards: Doctrine\ORM\PersistentCollection {#1822 …}
    +categories: Doctrine\ORM\PersistentCollection {#1850 …}
    -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 {#1893 …}
  +slug: "How-to-backup-object-storage-for-NextCloud"
  +title: "How to backup object storage for NextCloud"
  +url: null
  +body: """
    I’m experimenting with running NextCloud (AIO) on a VPS with a B2 bucket as the primary storage. I want to compare performance compared to running it on my home server (esp. when I’m remote) and get an idea of the kinds of costs I’d rack up doing it.\n
    \n
    As part of the setup I have configured the built in borg backup but it has this caveat:\n
    \n
    > Be aware that this solution does not back up files and folders that are mounted into Nextcloud using the external storage app - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.\n
    \n
    The primary storage is external but I’m not using the “external storage” app. So, I have 2 questions.\n
    \n
    1. Does it backup object storage if it’s primary (my gut says no)?\n
    2. If no, what’s a good way to backup the B2 bucket?\n
    \n
    I’ve done some research on this topic and I’m kinda coming up empty. I would normally use restic but restic doesn’t work in that direction (B2 -> local backup).\n
    \n
    It looks like rclone can be used to mount a B2 bucket. One idea I had was to mount it, read-only, and let AIO/borg backup that path with the container backups.\n
    \n
    Has anyone done this before? Any thoughts?
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 0
  +favouriteCount: 16
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1705801515 {#1814
    date: 2024-01-21 02:45:15.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1878 …}
  +votes: Doctrine\ORM\PersistentCollection {#1932 …}
  +reports: Doctrine\ORM\PersistentCollection {#1947 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1366 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2357 …}
  +badges: Doctrine\ORM\PersistentCollection {#2167 …}
  +children: []
  -id: 32058
  -titleTs: "'backup':3 'nextcloud':7 'object':4 'storag':5"
  -bodyTs: "'1':133 '2':131,147 'add':95 'aio':7 'aio/borg':216 'anyon':225 'app':91,127 'awar':71 'b2':13,158,188,201 'back':77,106 'backup':64,111,136,156,190,217,223 'borg':63 'bucket':14,159,202 'built':61 'caveat':69 'come':172 'compar':22,24 'configur':59 'contain':222 'cost':45 'd':47 'direct':187 'docker':97 'doesn':182 'done':113,162,226 'empti':174 'esp':32 'experi':3 'extern':89,118,125 'file':79 'folder':81 'get':38 'good':153 'gut':144 'home':30 'host':100 'idea':40,204 'initi':110 'kind':43 'kinda':171 'let':215 'like':193 'local':189 'look':192 'm':2,35,121,170 'mount':84,199,209 'nextcloud':6,86 'normal':177 'object':137 'one':203 'part':53 'path':101,219 'perform':23 'primari':17,115,142 'question':132 'rack':48 'rclone':194 'read':212 'read-on':211 'remot':36 'research':164 'restic':179,181 'run':5,26 'say':145 'server':31 'setup':56 'solut':74 'storag':18,90,116,126,138 'thought':230 'topic':167 'use':87,123,178,197 've':161 'volum':98 'vps':10 'want':20,104 'way':154 'work':184 'would':176"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705837515
  +visibility: "visible             "
  +apId: "https://lemmy.procrastinati.org/post/317712"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705801515 {#2420
    date: 2024-01-21 02:45:15.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 edit
App\Entity\Magazine {#260
  +icon: Proxies\__CG__\App\Entity\Image {#240 …}
  +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: 168
  +entryCommentCount: 3031
  +postCount: 0
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1727568544 {#273
    date: 2024-09-29 02:09:04.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#231 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#227 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#216 …}
  +entries: Doctrine\ORM\PersistentCollection {#174 …}
  +posts: Doctrine\ORM\PersistentCollection {#132 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#194 …}
  +bans: Doctrine\ORM\PersistentCollection {#111 …}
  +reports: Doctrine\ORM\PersistentCollection {#97 …}
  +badges: Doctrine\ORM\PersistentCollection {#75 …}
  +logs: Doctrine\ORM\PersistentCollection {#65 …}
  +awards: Doctrine\ORM\PersistentCollection {#1822 …}
  +categories: Doctrine\ORM\PersistentCollection {#1850 …}
  -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