|
|
1 сар өмнө | |
|---|---|---|
| .. | ||
| docs | 1 сар өмнө | |
| examples | 1 сар өмнө | |
| manage-client | 1 сар өмнө | |
| scripts | 1 сар өмнө | |
| README.md | 1 сар өмнө | |
Update and backup client for PHP projects, together with the complete documentation for integrating it. This folder is built so it can be handed over as a single ZIP: whoever receives it needs neither access to the Manage server's repository nor further explanation.
A PHP client that
The client runs standalone from the command line, brings a ready-made UI for the admin area, and exposes every function for direct calls from the project. All three paths call the same functions, so a given operation behaves identically no matter how it's triggered.
No dependencies: no Composer, no build step, no external libraries. PHP 8.0
or newer, ext-zip for updates, write access to the data directory.
# 1. Copy the folder into the project
cp -r manage-client /path/to/project/manage-client
# 2. Create an instance on the Manage server and copy the token shown once
# 3. Create the configuration
cd /path/to/project/manage-client
cp config.sample.php config.php
# Set MANAGE_SERVER_URL, MANAGE_INSTANCE, MANAGE_TOKEN and MANAGE_BACKUP_SOURCES
# 4. Check the connection
php bin/manage-client.php status
# 5. First backup
php bin/manage-client.php backup
Details: docs/01_QUICKSTART.md.
manage-client/ <- this folder gets copied into the project
config.sample.php template, becomes config.php
lib/ the library; client.php is the only entry point
bin/manage-client.php command line for cron and shell
ui/panel.php ready-made page for the admin area
ui/status-partial.php small status block for an existing page
docs/ the documentation, see below
examples/ working examples to copy from
scripts/ build script for release packages, see below
Readable in the browser: open docs/index.php through any PHP server, for
example php -S localhost:8080 -t docs. The files are also readable as
plain Markdown.
| Document | Content |
|---|---|
| 01_QUICKSTART | from this folder to the first backup |
| 02_INTEGRATION | integration into an existing project, cron, permissions |
| 03_CONFIG_REFERENCE | every constant with its default value and meaning |
| 04_FUNCTION_API | the callable functions with return values |
| 05_BACKUP_SOURCES | what gets backed up, database dumps, extra targets |
| 06_UPDATE_PACKAGING | how a release package must be built |
| 07_POST_UPDATE_HOOKS | migrations and the project callback after an update |
| 08_PROTOCOL | the HTTP interface, for custom clients and debugging |
| 09_TROUBLESHOOTING | every error message with cause and fix |
| 10_SECURITY | token, permissions, checklist before going live |
Recommended order for the first read: 01, 02, 05, 06. The rest is reference material.
| File | Content |
|---|---|
examples/flat-file-project/ |
project with JSON files, including an example migration |
examples/mysql-project/ |
project with MySQL, database dump and an ALTER TABLE migration |
examples/after-update.php |
template for the post-update callback |
examples/integration-snippet.php |
the lines an existing project needs |
examples/cron/manage-client.cron |
ready-made crontab lines |
scripts/create-release-zip.sh builds the ZIP from a project that gets
uploaded to the Manage server as a release. It gets copied to scripts/ of
the project, adjusted once at the top (product name, version file,
exclusions), and then run from the project directory:
./scripts/create-release-zip.sh v1.3.0
Details: docs/06_UPDATE_PACKAGING.md.
php manage-client/bin/manage-client.php status
check exit 2 = update available
update [--force] [--yes] [--skip-hook]
migrate [--dry-run]
backup [--trigger=cron]
heartbeat
Exit codes: 0 success, 1 error, 2 update available (check only).
--quiet suppresses normal output; errors still go to STDERR.
update is always a deliberate decision.This folder is maintained per project. Adjustments to ui/panel.php — for
example to the login or the project's look — are expected and explicitly
welcome. Changes inside lib/ should stay sparse, so a newer version of
the client package can still be adopted.