diff --git a/templates/itemeditor_command_storage.html b/templates/itemeditor_command_storage.html index 0367a65..63001f8 100644 --- a/templates/itemeditor_command_storage.html +++ b/templates/itemeditor_command_storage.html @@ -111,23 +111,74 @@
-You can run this command storage system on your own webserver for production use:
-Dockerfile in the project)https://your-domain/projects/itemeditor/storagehttps://your-domain/projects/itemeditor/storage/<uuid>GET https://your-domain/projects/itemeditor/storage/<uuid> -{ - "command": "your command here", - "created_at": "...", - "expires_at": "..." -}
-For best performance and security, do not use the Flask development server in production. Use Gunicorn + Nginx or Docker for real deployments.
+Host this system on your own webserver with this simple PHP script:
+<?php
+header('Content-Type: application/json');
+$storage_file = 'commands.json';
+
+// Store command (POST)
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+ $data = json_decode(file_get_contents('php://input'), true);
+ $command = $data['command'] ?? '';
+
+ if (strlen($command) > 10000) {
+ http_response_code(400);
+ echo json_encode(['error' => 'Too long']);
+ exit;
+ }
+
+ $uuid = bin2hex(random_bytes(16));
+ $expires = time() + 1800; // 30 min
+
+ $storage = file_exists($storage_file)
+ ? json_decode(file_get_contents($storage_file), true)
+ : [];
+
+ $storage[$uuid] = [
+ 'command' => $command,
+ 'expires_at' => $expires
+ ];
+
+ file_put_contents($storage_file, json_encode($storage));
+
+ echo json_encode([
+ 'success' => true,
+ 'url' => "https://yourserver.com/storage.php?id=$uuid"
+ ]);
+ exit;
+}
+
+// Retrieve command (GET)
+if (isset($_GET['id'])) {
+ $storage = file_exists($storage_file)
+ ? json_decode(file_get_contents($storage_file), true)
+ : [];
+
+ $uuid = $_GET['id'];
+
+ if (!isset($storage[$uuid])) {
+ http_response_code(404);
+ echo json_encode(['error' => 'Not found']);
+ exit;
+ }
+
+ if ($storage[$uuid]['expires_at'] < time()) {
+ unset($storage[$uuid]);
+ file_put_contents($storage_file, json_encode($storage));
+ http_response_code(410);
+ echo json_encode(['error' => 'Expired']);
+ exit;
+ }
+
+ echo json_encode($storage[$uuid]);
+ exit;
+}
+?>
+
+ Setup: Save as storage.php on your webserver.
+ Make sure the directory is writable for commands.json.
+