Skip to content

403 Error With Caddy #54

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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