PHPackages                             websk/skif - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. websk/skif

ActiveLibrary[Admin Panels](/categories/admin)

websk/skif
==========

Skif Admin

2.5.7(1w ago)1290[16 PRs](https://github.com/websk/skif/pulls)JavaScriptPHP ^8.3

Since Jun 29Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/websk/skif)[ Packagist](https://packagist.org/packages/websk/skif)[ Docs](https://websk.ru/)[ RSS](/packages/websk-skif/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (36)Versions (51)Used By (0)

WebSK Skif
==========

[](#websk-skif)

Skif is an admin panel and CMS toolkit built on Slim 4 and the WebSK PHP components. It provides ready-made modules (auth, key–value settings, logger, content, blocks, comments, forms, polls, redirects, site menu, captcha, image manager) and an AdminLTE-based UI. You can use it as a dependency in your PHP project or run the included demo with Docker.

Packagist:

Tech stack
----------

[](#tech-stack)

- Language: PHP 8.3
- Framework: Slim 4 (PSR-7/15/17), PHP-DI integration (Jgut Slim PHPDI)
- Modules: websk/php-\* packages (auth, cache, captcha, config, db, entity, crud, imagemanager, keyvalue, logger, slim helpers, utils, view)
- Templates/Views: PHP view (slim/php-view)
- Frontend assets: Node.js + Webpack (copy-only build) with AdminLTE, Bootstrap 3, jQuery, CKEditor 4, etc.
- Storage: MySQL (default), Memcached (cache)
- Web server: Nginx + PHP-FPM (via Docker compose in var/docker)

Entry points
------------

[](#entry-points)

- HTTP: public/index.php – boots the application, loads config/config.php, builds the DI container, and runs WebSK\\Skif\\SkifApp.
- Admin UI: /admin (route name admin:main). Public routes are registered via WebSK\\Skif\\SkifApp.

Requirements
------------

[](#requirements)

- PHP 8.3 with extensions:
    - ext-mbstring
    - ext-pdo
    - ext-json
- Composer
- MySQL 8.x (or compatible) database
- Memcached (optional, default cache engine)
- Node.js 14.17.x and npm 7.12.x (as constrained by package.json engines) for building static assets
- For the local demo: Docker and Docker Compose, mkcert for local HTTPS

Installation and configuration
------------------------------

[](#installation-and-configuration)

You can either use Skif as a Composer dependency in an existing Slim project or run the included demo stack.

### Use as a library in your project

[](#use-as-a-library-in-your-project)

1. Install dependency via Composer:

```
composer require websk/skif
```

2. Create your application config from the example and adjust values:

```
cp config/config.example.php config/config.php
```

- The example merges your overrides with config/config.default.php. Key sections:
    - settings.displayErrorDetails – toggle Slim error details
    - settings.db.\* – DB connection settings per module (default host mysql, db skif, user root, password root)
    - settings.cache.\* – cache engine and Memcached server
    - settings.skif.\* – admin path, menu, assets, etc.
    - paths like views/layouts and data directories are absolute inside the container in the demo; adapt for your environment.

3. Prepare a MySQL database (default name skif) and run migrations:

```
php vendor/bin/websk_db_migration.php migrations:migration_auto
# or
php vendor/bin/websk_db_migration.php migrations:migration_handle
```

4. Create an admin user for the backend:

```
php vendor/bin/websk_auth_create_user.php auth:create_user
```

5. Serve the public/ directory with your web server (Nginx/Apache). The document root must be the public folder; front controller is public/index.php.

### Build static assets

[](#build-static-assets)

```
npm install
npm run build
```

This copies third‑party libraries from node\_modules to public/assets/libraries according to webpack.config.js. No JS bundling/minification is performed (copy only, minimize=false).

### Run the demo locally with Docker (HTTPS)

[](#run-the-demo-locally-with-docker-https)

Below is a polished version of the existing demo instructions.

1. Install mkcert:  and set up the local CA:

```
mkcert --install
```

2. Issue a certificate for skif.devbox:

```
mkcert skif.devbox
```

3. Copy the generated certificate and key to var/docker/nginx/ssl:

- skif.devbox.pem
- skif.devbox-key.pem

Note: The previous README mentioned \_wildcard files; use the actual filenames produced by mkcert on your machine.

4. Add host mapping (Linux/macOS: /etc/hosts; Windows: %WINDIR%\\System32\\drivers\\etc\\hosts):

```
127.0.0.1 skif.devbox

```

5. Create local app config if not present:

```
cp config/config.example.php config/config.php
```

6. Move to the Docker directory and create a local .env from the example, then adjust values as needed:

```
cd var/docker
cp .example.env .env
```

7. Build and start containers:

```
docker compose up -d --build
```

8. Install PHP dependencies inside the container:

```
docker compose exec php-fpm composer install
```

9. Run DB migrations:

```
docker compose exec php-fpm php vendor/bin/websk_db_migration.php migrations:migration_auto
# or
docker compose exec php-fpm php vendor/bin/websk_db_migration.php migrations:migration_handle
```

10. Create an admin user:

```
docker compose exec php-fpm php vendor/bin/websk_auth_create_user.php auth:create_user
```

11. Open the admin panel:

-
- Login with the user you created.

Scripts and tooling
-------------------

[](#scripts-and-tooling)

- Composer (no custom scripts defined in composer.json):
    - vendor/bin/websk\_db\_migration.php – database migrations
    - vendor/bin/websk\_auth\_create\_user.php – create admin user
- NPM scripts:
    - npm run build – runs webpack (copy assets)

Configuration and environment variables
---------------------------------------

[](#configuration-and-environment-variables)

- Application configuration is PHP-based. Start from config/config.example.php which merges with config/config.default.php and override values for your environment.
- Docker environment: var/docker/.example.env contains variables for services (PHP version, ports, MySQL credentials, etc.). Copy it to var/docker/.env and adjust.
- Common settings to review:
    - DB credentials under settings.db.\*
    - Cache engine and Memcached server under settings.cache.\*
    - Paths (log\_path, tmp\_path, files\_data\_path, site\_full\_path) – ensure they exist and are writable
    - settings.skif.url\_path (admin base path), site\_domain

Project structure
-----------------

[](#project-structure)

- public/ – document root (index.php entry point, static assets under assets/)
- src/WebSK/Skif – application bootstrap (SkifApp), routes, handlers
- config/ – default and example configuration; create config.php for local overrides
- views/ – PHP templates/layouts
- var/docker – Docker setup (nginx, php-fpm, mysql, memcached, compose)
- vendor/ – Composer dependencies
- node\_modules/ – Frontend dependencies
- webpack.config.js – asset copying map

Troubleshooting
---------------

[](#troubleshooting)

- 404s to routes: ensure your web server points to public/ and forwards all requests to public/index.php (see var/docker/nginx/sites/skif.devbox.conf for an example).
- Asset 404s: run npm run build to populate public/assets/libraries.
- DB connection issues: verify settings.db.\* in config/config.php and that MySQL is reachable (see var/docker/.env).
- Cache issues: either run Memcached (default) or switch cache engine in settings.cache.\*.

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance82

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity91

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 99.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~89 days

Total

33

Last Release

12d ago

Major Versions

1.0.3 → 2.0.0-alpha2018-12-14

1.0.5 → 2.0.12019-02-27

PHP version history (2 changes)2.1.0PHP ^7.4

2.5.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/d0c0c6b71d5bd081fed2e89c933ed52991baabc2f32c559317dbeb5e8aae3cf7?d=identicon)[websk](/maintainers/websk)

---

Top Contributors

[![skulkov](https://avatars.githubusercontent.com/u/18742741?v=4)](https://github.com/skulkov "skulkov (1293 commits)")[![websk](https://avatars.githubusercontent.com/u/14013132?v=4)](https://github.com/websk "websk (1 commits)")

### Embed Badge

![Health badge](/badges/websk-skif/health.svg)

```
[![Health](https://phpackages.com/badges/websk-skif/health.svg)](https://phpackages.com/packages/websk-skif)
```

###  Alternatives

[saithink/saiadmin

webman plugin

2709.9k1](/packages/saithink-saiadmin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
