{
  "id": 9301001,
  "title": "Why Nextcloud Locked Me Out of My Own Server (and How trusted_proxies Fixed It)",
  "url": "https://urgent.news/2026/09/23/why-nextcloud-locked-me-out-of-my-own-server-and-how-trusted-proxies",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-23T08:46:40.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/tspeedcobra/why-nextcloud-locked-me-out-of-my-own-server-and-how-trustedproxies-fixed-it-381e"
  },
  "original_language": "en",
  "account": "In order to resolve the authentication issues experienced when migrating a Nextcloud server from an EC2 instance to a $10 Lightsail box, two key fixes were required: configuring trusted proxies and adjusting the handling of the Authorization header in relation to Basic authentication.\n\nThe initial problem arose from the fact that all requests were being treated as originating from Caddy's container IP (172.18.0.2). This caused Nextcloud's brute-force protection mechanism to block the IP, resulting in the \"Too many requests\" error for the user. To address this issue, the trusted_proxies configuration in Nextcloud was updated to recognize the proxy IP range, allowing the system to correctly identify the client IP and prevent the IP-based locking out.\n\nThe second challenge involved a conflict between Basic authentication set up at the reverse proxy level and Nextcloud's own Authorization header handling. Initially, the addition of header_up -Authorization inside the reverse_proxy did not resolve the issue. However, moving the configuration to the site-block level, specifically in the Caddyfile, proved effective. By specifying the proxy, non-office requests should only pass through Basic authentication before being granted access to Nextcloud, the problem was resolved.",
  "summary": "TL;DR I moved a client file-sharing server from ownCloud on a reserved EC2 instance to Nextcloud on a $10 Lightsail box . Two things drove the move: the cost no longer made sense (a 1.7 GB workload sitting on a 24/7 instance, made worse by a reserved-instance commitment and a weakening yen), and the old ownCloud/OS stack had reached end-of-life. The migration itself was trivial. Two…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}