Skip to content

403 Error With Caddy #54

@Nebula-0-System

Description

@Nebula-0-System

Description

when setting up Sheaf i'm getting a 403 error forbidden with caddy.

i followed the backend and frontend sections of the guide, then ran docker compose up -d, and i'm getting 403 errors with caddy. the backend API shows only detail: "Not Found" on the page.

my first thought was the port was the issue, then i thought about the trusted proxies and corrected that, then i thought it was carry but i double checked the caddyfile and restarted the service twice. i thought maybe docker compose down and docker compose up -d would fix it, then i thought "ok since it's a file server, and Caddy's a root service, that means root needs to read the files" and checked that but they have read perms for user, group, and others.

Sheaf has a lot of stuff and security built in (it's impressive) and i'm a bit lost on what's going wrong here since there's so much.

Steps to reproduce

near as i can tell, this should reproduce it:
1: git clone the repo
2: copy env example to .env
3: generate keys & adjust other settings (mode, admin emails, port, etc)
4: follow frontend instructions in documentation

Expected behaviour

get a UI of some sort, or a setup screen, something other than errors.

Sheaf version / commit

8db460d

Deployment

Self-hosted (Docker Compose)

Relevant logs

npm install

added 2 packages, and audited 445 packages in 797ms

155 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities


npm run build

> web@0.1.0 build
> tsc -b && vite build && node scripts/build-manifest.mjs

vite v7.3.3 building client environment for production...
✓ 4145 modules transformed.
dist/index.html                               2.23 kB │ gzip:   0.88 kB
dist/assets/github.min-U4im7YUz.css           1.06 kB │ gzip:   0.45 kB
dist/assets/github-dark.min-DOOs4slz.css      1.07 kB │ gzip:   0.45 kB
dist/assets/index-oiPfCU2X.css               99.28 kB │ gzip:  15.84 kB
dist/assets/bio-editor-d1LJ8zRz.js          359.00 kB │ gzip: 110.71 kB
dist/assets/index-CBR1yRfR.js             1,431.28 kB │ gzip: 419.08 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 4.37s

Environment

uname -a Linux The-Abyss-Primordial-Eldritch-Horror-Cradle-Of-The-Unknown 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
OS: Linux Mint

node -v v24.15.0

npm -v 11.12.1

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions