72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# Install And Update
|
|
|
|
Provider Exchange is a Laravel application. A server install needs PHP-FPM, Nginx, Composer, Node/npm for asset builds, and a database.
|
|
|
|
## Quick Ubuntu Install
|
|
|
|
From a fresh Ubuntu host:
|
|
|
|
```bash
|
|
sudo APP_URL=https://example.com \
|
|
APP_DIR=/var/www/technical-services-exchange \
|
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/jasonybird/technical-services-exchange/main/scripts/install-ubuntu.sh)"
|
|
```
|
|
|
|
The installer defaults to SQLite for a small test deployment. For production, use MariaDB/MySQL or PostgreSQL and set the database values in `.env` before running migrations.
|
|
|
|
## Update Existing Install
|
|
|
|
From the app directory:
|
|
|
|
```bash
|
|
bash scripts/update.sh
|
|
```
|
|
|
|
To create a database/storage backup immediately before updating:
|
|
|
|
```bash
|
|
TSE_BACKUP_BEFORE_UPDATE=1 bash scripts/update.sh
|
|
```
|
|
|
|
Or from anywhere:
|
|
|
|
```bash
|
|
APP_DIR=/var/www/technical-services-exchange bash /var/www/technical-services-exchange/scripts/update.sh
|
|
```
|
|
|
|
The preferred working loop for this project is:
|
|
|
|
1. Make and test changes locally.
|
|
2. Commit and push to GitHub.
|
|
3. SSH to the server and run `bash scripts/update.sh` from the deployed Git checkout.
|
|
4. Smoke test the live URL after the update completes.
|
|
|
|
## Backups And Health Checks
|
|
|
|
Create an on-demand backup from the app directory:
|
|
|
|
```bash
|
|
bash scripts/backup.sh
|
|
```
|
|
|
|
Backups default to `storage/app/backups`. Set `TSE_BACKUP_DIR=/path/to/backups` to store them elsewhere. Set `TSE_BACKUP_STORAGE=0` to back up only the database.
|
|
|
|
Run a deployment health check from the app directory:
|
|
|
|
```bash
|
|
bash scripts/health-check.sh
|
|
```
|
|
|
|
## Important Notes
|
|
|
|
- The installer is a first-pass Ubuntu/Nginx helper, not a universal hosting panel installer.
|
|
- Local and CI test runners need PHP SQLite and upload-test support: `pdo_sqlite`, `sqlite3`, `fileinfo`, and `gd`.
|
|
- Public attachment serving needs `php artisan storage:link`; the checked-in update script runs this automatically.
|
|
- Tune upload policy with `TSE_ATTACHMENT_DISK`, `TSE_ATTACHMENT_ROOT`, `TSE_ATTACHMENT_MAX_KB`, and `TSE_ATTACHMENT_MIME_TYPES`.
|
|
- Tune backup policy with `TSE_BACKUP_DIR`, `TSE_BACKUP_STORAGE`, and optional `TSE_BACKUP_BEFORE_UPDATE=1`.
|
|
- Review `.env` before production use.
|
|
- Configure real mail before inviting users.
|
|
- Move sessions, cache, and queues to Redis before serious traffic.
|
|
- Move uploads to shared or object storage before multi-server deployment.
|
|
- Use a real database server before treating the platform as production data.
|