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
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 onlydetail: "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 downanddocker compose up -dwould 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
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/LinuxOS: Linux Mint
node -v v24.15.0npm -v 11.12.1