S3 · region de-fra · Frankfurt DC

Object storage for Nextcloud – sovereign, S3-native, reseller-ready

Move your Nextcloud/ownCloud data to S3-compatible primary or external storage from our Frankfurt datacenter. 99.999999% durability, strong read-after-write, GDPR/DPA, 100% green power. 1 TB egress included per TB – predictable from €2.49/TB.

Nextcloud Object Storage S3 – Frankfurt DC | intercolo
S3 API
natively compatible
read-after-write
strongly consistent
No egress
traffic included

A German S3 endpoint instead of hyperscaler lock-in

Nextcloud answers the collaboration question – but the storage beneath it decides compliance and cost. Your objects live exclusively in the Frankfurt datacenter, operated under German jurisdiction with a DPA per Art. 28 GDPR. No CLOUD Act reach, no transatlantic data journey, no opaque egress model. Access runs over the real S3 endpoint https://de-fra.i3storage.com (region de-fra) – the same SigV4 signature your tools already speak, just with a provider you and your clients can hold legally accountable.

Primary storage vs. external storage – choose deliberately

As primary storage the bucket becomes the instance's sole data store: Nextcloud writes every file as an object while metadata stays in the database. This is the path for new instances and for scaling without local disks – but it must be set before the first login and cannot be swapped afterwards. As external storage you mount the bucket as an additional drive via the External Storage app – visible per user or group, attachable or detachable at any time, ideal for existing instances, project shares, or moving large datasets. Both paths talk to the same endpoint https://de-fra.i3storage.com; they differ only in who owns object management – Nextcloud itself or the external-storage layer.

Primary storage vs. external storage – choose deliberately

Configure primary storage in config.php

1

1 · Create bucket & API key

In the customer portal create a bucket (e.g. nextcloud-primary) and an API key pair (access key + secret). Access runs solely through these SigV4 credentials – treat the secret like a root password and issue a separate key pair per tenant.

2

2 · Add the objectstore block

In config/config.php add the objectstore block with the S3 class: bucket, key, secret, hostname = de-fra.i3storage.com, port = 443, use_ssl = true, region = de-fra and use_path_style = true. The hostname is always de-fra.i3storage.com – the full endpoint reads https://de-fra.i3storage.com.

3

3 · Understand path-style

With use_path_style = true Nextcloud addresses the bucket as a path: https://de-fra.i3storage.com/<bucket>. Virtual-hosted style https://<bucket>.de-fra.i3storage.com works too – for Nextcloud setups path-style is the most robust default because it needs no bucket wildcard DNS.

4

4 · autocreate & first run

Set autocreate = true so the empty bucket is initialised on first access, and finish installation before the first user logs in. An occ maintenance:mode window prevents write conflicts during the switch.

5

5 · Verify

Upload a test file and verify with aws s3 ls or rclone lsf against https://de-fra.i3storage.com (region de-fra) that the object appears in the bucket. Strong read-after-write guarantees the upload is immediately consistent to read.

config.php – objectstore block (primary storage)

php
<?php
$CONFIG = [
  // ... existing Nextcloud configuration ...

  'objectstore' => [
    'class' => \OC\Files\ObjectStore\S3::class,
    'arguments' => [
      'bucket'         => 'nextcloud-primary',
      'autocreate'     => true,
      'key'            => 'YOUR_ACCESS_KEY',      // API key (SigV4)
      'secret'         => 'YOUR_SECRET_KEY',      // API secret
      'hostname'       => 'de-fra.i3storage.com', // endpoint host
      'port'           => 443,
      'use_ssl'        => true,                   // enforce TLS transfer
      'region'         => 'de-fra',
      'use_path_style' => true,                   // https://de-fra.i3storage.com/<bucket>
    ],
  ],
];

Full endpoint: https://de-fra.i3storage.com · region de-fra. For external storage use the same values in the app dialog (Amazon S3): hostname de-fra.i3storage.com, port 443, region de-fra, SSL on, path-style on.

Required: strong read-after-write

Nextcloud relies on a freshly written object being immediately and fully readable – during chunked uploads of large files, photo previews, or multi-client sync. Eventual-consistency storage causes file errors, vanishing uploads and broken previews here. Our object storage delivers strong read-after-write consistency for new objects from the first byte – exactly the guarantee Nextcloud assumes. Without it, an S3 backend simply isn't production-grade for Nextcloud.

Versioning, permissions & encryption live in the app layer

Important for expectation management: file versions, trash bin, shares, group permissions and server-side encryption are handled by Nextcloud itself – not the object store. That's an advantage, not a gap: you keep your familiar Nextcloud features independent of the storage. Enable the Server-Side Encryption app and objects are encrypted by Nextcloud client-side before they reach the bucket – key custody stays with you. For immutability, don't rely on storage features but on a second copy following the 3-2-1 principle (e.g. a separate backup bucket or an external target).

Primary vs. external vs. backup – which bucket for what

Primary Storage External Storage Backup target
Role Sole data store of the instance Additional drive per user/group Second copy in 3-2-1
Setup config.php objectstore block External Storage app (S3 dialog) occ/backup tool, s3fs or rclone
When to set Before first login, cannot be swapped Attachable/detachable anytime Separate bucket, own key
Ideal for New instances, full scaling Existing instances, project shares Ransomware resilience, DR
Consistency strong read-after-write (required) strong read-after-write strong read-after-write
Endpoint https://de-fra.i3storage.com https://de-fra.i3storage.com https://de-fra.i3storage.com

For hosters & agencies: managed Nextcloud as a product

Clean tenant isolation

One bucket plus a dedicated API key pair per customer – if a key compromises one instance, every other tenant stays untouched. Clean separation without shared credentials, cleanly billable per bucket.

Predictable egress math

1 TB egress is included per TB of storage, each additional TB is a fixed rate – never “free”, but never a surprise. You price managed plans on a stable margin instead of hyperscaler egress roulette.

Reseller margin from €2.49/TB

You buy storage from €2.49/TB and resell it as part of your managed Nextcloud package including operations, support and SLA. Storage is your cost base – the value-add and markup are yours. High CLV with low churn.

GDPR as a sales argument

DPA per Art. 28, Frankfurt DC only, 100% green power, TLS transfer – arguments you pass straight to clients in healthcare, legal and public-sector settings. Sovereignty sells, especially in DACH B2B.

Mountable for automation

Via s3fs or rclone mount you attach buckets as a filesystem – for migration scripts, bulk imports or backup jobs outside Nextcloud. The S3 endpoint stays the same: https://de-fra.i3storage.com, region de-fra.

CDN & dual-stack included

Deliver publicly shared objects via the CDN (DACH/Europe) with low latency; IPv4 and IPv6 are natively available. Ideal for media shares and public downloads served from Nextcloud.

How storage becomes margin – without egress anxiety

The most expensive line item in any cloud-storage offer isn't the terabyte – it's unpredictability. When a customer suddenly syncs, shares and downloads, egress models make the bill explode, and your margin with it. Our model ends that: storage from €2.49/TB, 1 TB egress included per TB, each additional TB at a fixed rate. You know your cost base before the sale and build managed plans with a markup that carries the margin. Because access runs purely through SigV4 keys and signed URLs, you don't operate complex access infrastructure – one key pair per tenant, one bucket per instance, done. Less operational overhead, more contribution margin. That's what turns managed Nextcloud on this foundation into a high customer-lifetime-value product rather than a bottomless support pit.

How storage becomes margin – without egress anxiety

Operational practice: running Nextcloud cleanly on S3

Pre-generate preview images

If Nextcloud creates previews only on demand, it triggers many small object reads and slows down gallery and file views. Install the Preview Generator app and run occ preview:generate-all once; at the same time cap the preview sizes in config.php to sensible edge lengths. That keeps your object access lean and the UI snappy.

Trash bin & versions: control retention

Nextcloud manages the trash bin and file versions in the app layer – every retained version takes up space in the bucket. Set versions_retention_obligation and trashbin_retention_obligation to values that fit your cost frame so deleted files and old versions don't quietly inflate the bucket. That keeps per-tenant storage usage predictable.

Large files: chunked upload & temp space

Nextcloud splits large uploads into chunks and reassembles them server-side before the finished object is written to the bucket. Provide enough temporary space on the app server and generous upload limits in PHP and the web server. Strong read-after-write ensures every assembled object is immediately consistent to read.

We migrate your data for you

Our experience speaks for itself: We have successfully completed migrations involving multiple petabytes of data and over 500 million files.

500M+
files migrated
Petabytes
of data migrated
since 2006
in business

Still have questions?

Hostname de-fra.i3storage.com, port 443, use_ssl = true, region = de-fra and use_path_style = true. The full endpoint is https://de-fra.i3storage.com; in path-style the bucket is appended as a path: https://de-fra.i3storage.com/<bucket>.
For new instances scaling without local disks: primary storage via the objectstore block in config.php, set before the first login. For existing instances, project shares or moving large datasets: external storage via the app, attachable and detachable at any time. Both use the same endpoint https://de-fra.i3storage.com.
Yes – versions, trash bin and shares are managed by Nextcloud in the app layer, independent of the object store. We do not offer object versioning at the storage level; with Nextcloud that isn't needed, since version management lives in the application anyway.
Transfer is TLS-encrypted. For encryption at rest, enable Nextcloud's Server-Side Encryption app: objects are then encrypted client-side before they reach the bucket – key custody stays entirely with you.
Nextcloud re-reads freshly written objects immediately – during chunked uploads, previews and multi-client sync. Without strong consistency you get file errors and vanishing uploads. Our object storage guarantees strong read-after-write for new objects, exactly the prerequisite Nextcloud needs.
A dedicated bucket and a dedicated API key pair (SigV4) per tenant. Each instance is isolated, billable per bucket, and a compromised key never affects more than one customer. Access is solely via these keys and signed URLs.
Storage starts from €2.49/TB, 1 TB egress is included per TB, each additional TB costs a fixed rate. You buy at a known cost base and resell managed Nextcloud with operations and SLA at a markup – predictable instead of egress roulette.
Yes. Via s3fs or rclone mount you attach the bucket as a filesystem – handy for migrations, bulk imports and backup jobs. Endpoint and region stay identical: https://de-fra.i3storage.com, region de-fra.
1 month free trial

Try our S3 compatible storage for 1 month free of charge.