Download the PHP package dynamia-tools/buckie without Composer
On this page you can find all versions of the php package dynamia-tools/buckie. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dynamia-tools/buckie
More information about dynamia-tools/buckie
Files in dynamia-tools/buckie
Package buckie
Short Description Buckie PHP — filesystem-native file server with a minimal S3-style REST API. Standalone application.
License MIT
Informations about the package buckie
Buckie PHP
PHP 8+ implementation of Buckie — a filesystem-native file server with a minimal S3-style REST API.
Designed for shared hosting and standard PHP environments: no framework, no database, no message broker. Just PHP and a disk.
Standalone application — Buckie PHP runs as a self-contained CLI tool and/or HTTP server. It is not a reusable library to be required inside another project.
Usage modes
| Mode | How | Description |
|---|---|---|
| CLI | php bin/buckie <command> |
Manage buckets, identities, files and permissions from the terminal |
| HTTP server (dev) | php bin/buckie serve |
Starts PHP's built-in server — useful for local development |
| HTTP server (prod) | Apache / Nginx / FrankenPHP | Deploy public/index.php under any standard PHP web server |
Features
- Zero external dependencies — only PHP 8.0+ and standard extensions (GD, finfo)
- Single config file — all state lives in
.buckie/config.json - On-the-fly thumbnails — GD (default) or Imagick; automatic caching
- Same REST API as the Node.js implementation
- Same CLI contract as the Node.js implementation
- Local FS only — no SFTP; ideal for shared hosting
- Authentication via
X-Buckie-Identity/X-Buckie-Secretheaders or HTTP Basic Auth - Secret hashing with
password_hash(PASSWORD_DEFAULT)(bcrypt) — cross-compatible with the Node.js implementation - Staging + atomic rename for uploads — no partial reads
Requirements
| Requirement | Minimum |
|---|---|
| PHP | 8.0 |
| Composer | 2+ |
| GD extension | any recent version (or Imagick) |
| finfo extension | bundled with PHP 8 |
Installation
Option A — create-project (recommended)
This installs Buckie as a standalone application in the buckie-php/ directory.
Option B — clone + install
Make the CLI available globally
Quick Start
As a CLI tool
All management operations (buckets, identities, permissions, files) are handled through the buckie CLI:
Run php bin/buckie --help to see all available commands.
As an HTTP server (development)
As an HTTP server (production)
Deploy the public/ directory under Apache, Nginx or FrankenPHP (see Production Deployment below).
Production Deployment
Buckie PHP is deployed like any standard PHP application. Set the document root to the public/ directory.
Apache
Make sure mod_rewrite is enabled. The public/.htaccess file already contains the required configuration.
Nginx
FrankenPHP
Docker (pruebas locales con Apache)
El repositorio incluye un Dockerfile y un docker-compose.yml listos para pruebas locales.
Los datos persisten entre reinicios en ./docker-data/:
Variables de entorno disponibles (configurables en docker-compose.yml):
| Variable | Default en Docker | Descripción |
|---|---|---|
BUCKIE_DATA_DIR |
/var/buckie-data |
Config, logs y caché |
BUCKIE_STORAGE_DIR |
/var/buckie-storage |
Almacenamiento de archivos |
BUCKIE_LOG_LEVEL |
debug |
Nivel de log |
Environment Variables
| Variable | Default | Description |
|---|---|---|
BUCKIE_DATA_DIR |
<cwd>/.buckie |
Data directory (config, logs, cache) |
BUCKIE_HOST |
0.0.0.0 |
Bind host (development server only) |
BUCKIE_PORT |
8080 |
Bind port (development server only) |
BUCKIE_LOG_LEVEL |
info |
Log level |
CLI Reference
REST API
All requests (except GET /health) require authentication via X-Buckie-Identity + X-Buckie-Secret headers, or HTTP Basic Auth.
Health check
Download a file
Download a thumbnail (on-the-fly resize)
Supported query parameters: w (width), h (height), fit (cover | contain | fill), format (webp | jpeg | png).
List a directory
List bucket contents (paginated)
Upload a file
Delete a file
curl Examples
Project Structure
Data Directory Structure
Each local bucket also maintains an internal directory:
Differences from the Node.js Implementation
| Feature | Node.js | PHP |
|---|---|---|
| Storage backends | Local FS + SFTP | Local FS only |
| Secret hashing | bcrypt (bcrypt npm) |
password_hash / bcrypt |
| Hash interoperability | ✅ Compatible | ✅ Compatible |
| HTTP server | Fastify | PHP built-in / Apache / Nginx / FrankenPHP |
| File streaming | Node.js streams | fpassthru |
| Thumbnails | Sharp | GD / Imagick |
| Programmatic API | Full SDK | Not available |
Security
- Private by default — every request requires authentication; only
/healthis public - bcrypt password hashing — secrets are never stored in plain text; hashes are cross-compatible with the Node.js implementation
- Prefix-based authorization — access can be restricted by bucket and path prefix
- Path traversal protection — canonical path validation on every request
- Staging + atomic commit — uploads are written to staging first to prevent partial reads
Related Implementations
| Implementation | Repository | Best for |
|---|---|---|
| Buckie Node.js | github.com/dynamiatools/buckie-node-js | High-throughput servers — includes SFTP storage backend and full programmatic TypeScript SDK |
License
MIT © Dynamia Soluciones IT SAS