The real fix was in .gitignore (dist → /dist) so panel/dist
is now properly tracked. The CI workarounds are no longer needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
npm run build only outputs assets/dist/ (Vite JS/CSS).
Add an explicit step to copy kirby/, vendor/, site/, assets/fonts+svg
and index.php from public/ into dist/ so the FTP mirrors have
the correct source. Also removes the wrong panel/ workaround.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The panel/dist is compiled by Kirby and not in the repo.
The mirror --delete was wiping it on every deploy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Enable automatic deletion of remote files that no longer exist locally.
This ensures the production server stays in sync with the repository,
removing obsolete files like the renamed stylesheet.css.
Protected directories (accounts, cache, sessions) remain excluded.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add Forgejo workflow for automated build and deploy
- Build creates dist/ from public/ then adds Vue app build
- Configure Vite to build to dist/assets/dist with fixed filenames
- Deploy entire dist/ directory to production via FTP
- Add workflow documentation with FTP setup instructions
The workflow mirrors the GitLab CI approach: dist/ is created during build
and synchronized to production root on every push to main.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>