Download the PHP package vmvarela/smbwebclient without Composer
On this page you can find all versions of the php package vmvarela/smbwebclient. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download vmvarela/smbwebclient
More information about vmvarela/smbwebclient
Files in vmvarela/smbwebclient
Package smbwebclient
Short Description Modern PHP 8 SMB/CIFS web client using icewind/smb library
License MIT
Informations about the package smbwebclient
SMB Web Client
A modern PHP 8 web-based file browser for SMB/CIFS network shares, powered by FrankenPHP and the icewind/smb library.
Features
- 🚀 PHP 8.2+ with modern syntax (typed properties, constructor promotion, strict typing)
- 🔥 FrankenPHP powered by Go and Caddy for high performance
- 📦 icewind/smb library for native SMB/CIFS support
- 🎨 Multiple themes (Windows, macOS, Ubuntu)
- 🔒 Session-based authentication with credential management
- 🌍 Multi-language support (40+ languages with auto-detection)
- 📁 File operations: upload, download, create folders, delete, rename
- 🖱️ Drag & drop file uploads
- 🔄 Sortable columns (name, size, date, type)
- 🐳 Docker ready with docker-compose
Requirements
- PHP 8.2 or higher
- libsmbclient library and PHP extension
- Composer
Quick Start with Docker
Using GitHub Container Registry (Recommended)
Using Docker Compose
Create a docker-compose.yml file:
Then run:
Building from Source
Manual Installation
-
Install dependencies:
-
Configure environment:
- Run with FrankenPHP:
Or use PHP's built-in server for development:
Using as a Composer Package
You can integrate SMB Web Client into your own PHP application:
Installation
Basic Usage
Anonymous Access
Using Environment Variables
Requirements
When using as a library, ensure you have:
- PHP 8.2+
libsmbclientsystem library- PHP
smbclientextension (pecl install smbclient)
On Debian/Ubuntu:
On macOS:
Configuration
All configuration is managed through environment variables in the .env file:
SMB Settings
| Variable | Description | Default |
|---|---|---|
SMB_DEFAULT_SERVER |
Default SMB server hostname | localhost |
SMB_SERVER_LIST |
Comma-separated list of allowed servers | (empty) |
SMB_ROOT_PATH |
Root path to restrict navigation (e.g., /server/share) |
(empty) |
SMB_HIDE_DOT_FILES |
Hide files starting with dot | true |
SMB_HIDE_SYSTEM_SHARES |
Hide system shares (C$, ADMIN$, IPC$) | true |
SMB_HIDE_PRINTER_SHARES |
Hide printer shares | false |
Application Settings
| Variable | Description | Default |
|---|---|---|
APP_DEFAULT_LANGUAGE |
Default UI language | en |
APP_DEFAULT_CHARSET |
Character encoding | UTF-8 |
APP_CACHE_PATH |
Directory for temporary files | (empty) |
APP_SESSION_NAME |
Custom session cookie name | SMBWebClientID |
APP_ALLOW_ANONYMOUS |
Allow anonymous access | false |
APP_MOD_REWRITE |
Enable clean URLs | false |
APP_BASE_URL |
Base URL for clean URLs | (empty) |
Other Settings
| Variable | Description | Default |
|---|---|---|
LOG_LEVEL |
Logging verbosity (0-3) | 0 |
LOG_FACILITY |
Syslog facility | LOG_DAEMON |
Supported Languages
The application supports automatic language detection and includes translations for:
af, ar, az, bg, bs, ca, cs, da, de, el, en, eo, es, et, eu, fa, fi, fr, gl, he, hi, hr, hu, id, it, ja, ko, ka, lt, lv, ms, nl, no, pl, pt, pt-br, ro, ru, sk, sl, sq, sr, sv, th, tr, uk, zh, zh-tw
Available Themes
- Windows - Classic Windows Explorer style
- macOS - Apple Finder style
- Ubuntu - Nautilus file manager style
Architecture
Docker Compose Services
The included docker-compose.yml provides:
- smbwebclient: Main application on port 8080
- samba1: Test Samba server with sample shares
- samba2: Additional test Samba server
Test credentials for Samba servers: user / pass
Development
Code Standards
- PSR-4 autoloading
- PSR-12 coding style
- Strict typing enabled
- PHP 8.2+ features (constructor promotion, match expressions, named arguments)
License
MIT License - Copyright (c) 2003-2025 Victor M. Varela
See LICENSE file for details.
Author
Victor M. Varela [email protected]
Troubleshooting
Connection Issues
- Verify
SMB_DEFAULT_SERVERis accessible from the container/server - Check that credentials have appropriate permissions
- Ensure libsmbclient and PHP smbclient extension are installed
Permission Issues
- Ensure the cache directory is writable
- Check SMB share permissions for the authenticating user
Performance Tips
- Use FrankenPHP for best performance
- Enable OPcache in production
- Consider using
SMB_ROOT_PATHto limit browsing scope