# Deployment Files

The hosting deployment is built by `scripts/build-deploy-artifact.sh` into `build/deploy/`.

Included:

- `app/`
- `bootstrap/`
- `public/`
- `routes/`
- `vendor/`
- `composer.json`
- `composer.lock`
- `spark`
- `preload.php`
- `writable/.htaccess`
- `writable/index.html`
- `writable/.gitkeep`
- `writable/*/.gitkeep`
- `writable/tcpdf_fonts/`

Excluded:

- `.git/`
- `.gitea/`
- `.env` and local env backups
- `tests/`
- `Database_Dump/`
- `build/` except the generated deploy artifact during CI
- documentation/planning files
- local scripts that are not needed at runtime
- runtime cache, logs, sessions, uploads, and generated reports

The server keeps its own `.env` and runtime `writable/` contents. The deploy job syncs from `build/deploy/` and excludes mutable writable subdirectories so production data is not overwritten.

## Gitea Package

The deploy workflow also archives `build/deploy/` and publishes it to Gitea Packages as a generic package:

- Package name: `alrahma_sunday_school`
- Version format: `{branch}-{run_number}-{short_sha}`
- File format: `alrahma_sunday_school-{version}.tar.gz`

Required repository secrets for package publishing:

- `GITEAPACKAGEUSER`
- `GITEAPACKAGETOKEN`

Optional repository secrets:

- `GITEA_BASE_URL` - defaults to `https://192.168.3.80`.
- `GITEA_PACKAGE_OWNER` - defaults to `melabidi`.

The token must have permission to publish packages for the package owner.
