diff --git a/static/popups/cli.html b/static/popups/cli.html index 131216b..00ee69c 100644 --- a/static/popups/cli.html +++ b/static/popups/cli.html @@ -1,19 +1,26 @@ -
WarpBox accepts normal multipart uploads at /upload. The server returns JSON with a box_url you can open or share.
curl \
- -F 'files=@./my-file.zip' \
- -F 'retention=1h' \
- {{ origin }}/upload
-
+This version is small, portable, and works well as a personal warpbox command.
#!/usr/bin/env bash
+WarpBox accepts normal multipart uploads at /upload. The server returns JSON with a box_url you can open or share.
+
+
+ > Quick Upload: Use this command to upload a single file:
+ curl \
+ -F 'files=@./my-file.zip' \
+ -F 'retention=1h' \
+ {{ origin }}/upload
+
+
+Reusable Shell Wrapper
+This version is small, portable, and works well as a personal warpbox command.
+
+
+ > Save this as a file called warpbox and make it executable to use it as a command:
+ #!/usr/bin/env bash
set -euo pipefail
if [ "$#" -lt 1 ]; then
- echo "Usage: warpbox FILE [FILE ...]" >&2
- exit 64
+ echo "Usage: warpbox FILE [FILE ...]" >&2
+ exit 64
fi
endpoint="${WARPBOX_URL:-{{ origin }}}/upload"
@@ -21,42 +28,55 @@ retention="${WARPBOX_RETENTION:-1h}"
args=(-F "retention=${retention}")
for file in "$@"; do
- args+=(-F "files=@${file}")
+ args+=(-F "files=@${file}")
done
-curl --fail-with-body "${args[@]}" "${endpoint}"
-
+curl --fail-with-body "${args[@]}" "${endpoint}"
+
-Install it
+Install the Command
Put the wrapper somewhere on your PATH, then call it with one or more files.
-chmod +x ./warpbox
-sudo install -m 755 ./warpbox /usr/local/bin/warpbox
-warpbox ./photo.png ./archive.zip
-
-Print only the share URL
-If jq is installed, this variant extracts the returned link and expands it to a full URL.
-warpbox() {
- local endpoint="${WARPBOX_URL:-{{ origin }}}/upload"
- local retention="${WARPBOX_RETENTION:-1h}"
- local args=(-F "retention=${retention}")
+
+ > Install Steps:
+
+ - Make the script executable:
chmod +x ./warpbox
+ - Install to system path:
sudo install -m 755 ./warpbox /usr/local/bin/warpbox
+ - Use it:
warpbox ./photo.png ./archive.zip
+
+
- for file in "$@"; do
- args+=(-F "files=@${file}")
- done
+Print Only the Share URL
+If jq is installed, this variant extracts the returned link and expands it to a full URL.
- curl --fail-with-body -sS "${args[@]}" "${endpoint}" |
- jq -r --arg origin "${WARPBOX_URL:-{{ origin }}}" '"\($origin)\(.box_url)"'
-}
-
+
+ > Function Version: Add this function to your shell profile (like ~/.bashrc or ~/.zshrc):
+ warpbox() {
+ local endpoint="${WARPBOX_URL:-{{ origin }}}/upload"
+ local retention="${WARPBOX_RETENTION:-1h}"
+ local args=(-F "retention=${retention}")
-Add password or retention
-You can keep the wrapper simple and pass fixed options through environment variables or extra form fields.
-WARPBOX_RETENTION=24h warpbox ./release.tar.gz
+ for file in "$@"; do
+ args+=(-F "files=@${file}")
+ done
-curl \
- -F 'files=@./private.zip' \
- -F 'retention=1h' \
- -F 'password=correct-horse-battery-staple' \
- {{ origin }}/upload
-
+ curl --fail-with-body -sS "${args[@]}" "${endpoint}" |
+ jq -r --arg origin "${WARPBOX_URL:-{{ origin }}}" '"\($origin)\(.box_url)"'
+}
+
+
+Add Password or Retention
+You can keep the wrapper simple and pass fixed options through environment variables or extra form fields.
+
+
+ > Examples:
+ Set retention period for one upload:
+ WARPBOX_RETENTION=24h warpbox ./release.tar.gz
+
+ Add password protection to a specific upload:
+ curl \
+ -F 'files=@./private.zip' \
+ -F 'retention=1h' \
+ -F 'password=correct-horse-battery-staple' \
+ {{ origin }}/upload
+
\ No newline at end of file
diff --git a/static/popups/faq.html b/static/popups/faq.html
index 8cf2ff1..684b3c1 100644
--- a/static/popups/faq.html
+++ b/static/popups/faq.html
@@ -1,17 +1,79 @@
-Help & FAQ
+Help & FAQ
+
+
+ > Fast path: Add files, choose any Box Options you need, then start the upload. WarpBox creates one share link for the whole box.
+
+ - Add files: drag files onto the window or use Ctrl + O.
+ - Check options: set expiry, password, ZIP download, or one-time download before uploading.
+ - Upload: press Ctrl + U or use the Upload button.
+ - Share: copy the returned link with Ctrl + L.
+
+
+
- Keyboard shortcuts
+ Keyboard Shortcuts
- Ctrl + O Browse for files.
- Ctrl + U Start the current upload.
- Ctrl + K Copy the full cURL command.
- Ctrl + L Copy the share URL after upload.
- - F1 Open this window.
+ - F1 Open this help window.
- Esc Close menus and popups.
+
+Common Questions
- Can I password protect uploads?
Yes. Set a password in Box Options before starting the upload.
- What happens if one file fails?
The failed row stays red, successful files remain available, and WarpBox marks the failed file in the manifest.
- Are all options server-backed?
Expiry, password, ZIP download, and one-time download are sent to the backend. Notes like box name, custom slug, and API key mode are saved locally until backend support exists.
+
+ What is a box?
+ A box is the temporary share page WarpBox creates after upload. It can contain one file or many files, plus the manifest that records upload status.
+
+
+ Can I password protect uploads?
+ Yes. Set a password in Box Options before starting the upload. Anyone opening the box must enter that password before downloading protected files.
+
+
+ How does expiry work?
+ The expiry value is sent with the upload as retention. After that period, the server may delete the box and its files according to the running WarpBox configuration.
+
+
+ What does one-time download do?
+ One-time download tells the backend to treat a file or box as burn-after-read. After a successful download, the link should no longer be reusable.
+
+
+ Can people download everything at once?
+ Enable ZIP download before uploading. When supported by the backend, the share page offers a single archive for the box.
+
+
+ What happens if one file fails?
+ The failed row stays red, successful files remain available, and WarpBox marks the failed file in the manifest so you can tell what needs another attempt.
+
+
+ Can I upload from terminal or automation?
+ Yes. Use the CLI help window for ready-made curl, shell, Node.js, Go, and Java examples. Copy command with Ctrl + K.
+
+
+ Are all options server-backed?
+ Expiry, password, ZIP download, and one-time download are sent to the backend. Box name, custom slug, and API key mode are saved locally until backend support exists.
+
+
+
+Troubleshooting
+
+
+ Upload button is disabled.
+ Add at least one file, remove duplicates if prompted, and check Upload Limits for configured box and single-file limits.
+
+
+ Copy failed.
+ Some browsers block clipboard access outside secure contexts or direct user gestures. WarpBox shows a fallback text box so the link or command can be selected manually.
+
+
+ Shared link opens but download fails.
+ The box may be expired, consumed by one-time download, password-protected, or removed by server cleanup. Re-upload the file if the box is no longer available.
+
+
+ Large file fails early.
+ Check Upload Limits first. If the file is inside limits, retry on a stable connection or use the terminal upload flow so the exact server error is visible.
+