PHPackages                             shirtnetwork/designer-backend-skeleton - 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. shirtnetwork/designer-backend-skeleton

ActiveLibrary

shirtnetwork/designer-backend-skeleton
======================================

Project skeleton for shirtnetwork designer backend solution

1.0.11(5y ago)10MITPHP

Since Jan 13Pushed 5y ago1 watchersCompare

[ Source](https://github.com/aggrosoft/designer-backend-skeleton)[ Packagist](https://packagist.org/packages/shirtnetwork/designer-backend-skeleton)[ RSS](/packages/shirtnetwork-designer-backend-skeleton/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (13)Used By (0)

Shirtnetwork Designer Backend
=============================

[](#shirtnetwork-designer-backend)

This backend will handle configuration files, font management and uploading files for the [shirtnetwork](https://www.shirtnetwork.com) designer. This backend is used for all implementations. Feel free to adapt this skeleton to your own needs.

❗ **We recommend using the [nodejs based version](https://www.github.com/aggrosoft/designer-backend-skeleton-node) whenever possible**

Installation
------------

[](#installation)

Use git to clone the repository

```
git clone https://github.com/aggrosoft/designer-backend-skeleton.git
```

Then install the dependencies using composer inside the created folder

```
composer install
```

Configuration
-------------

[](#configuration)

The repository comes with a config.inc.sample.php file, copy this file to config.inc.php and adjust it to your needs. If you do not copy the file before first request it will be created automatically. Files are stored in the var/ subfolders by default.

Point your webserver to serve the root of the application, it is pre configured to work with apache webserver. We recommend using a subdomain or a separate domain for the app e.g.:

Usage
-----

[](#usage)

Depending on your consuming system you will need to configure upload and config urls. Use as following:

**Upload Endpoint**

**Config Endpoint**

Fire up the settings interface to define fonts:

Security
--------

[](#security)

❗ Be sure to add at least one user in the auth section of the config file, otherwise authentication is skipped and everybody will be able to modify your settings.

Also be sure to set allowed-origins in config.inc.php so only specific endpoints can upload files and configurations.

NGINX
-----

[](#nginx)

You can use NGINX as a webserver, as the designer backend is a slim application you will have to configure NGINX as following

```
server {
    listen 80;
    server_name example.com;
    index index.php;
    error_log /path/to/example.error.log;
    access_log /path/to/example.access.log;
    root /path/to/public;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
    }
}

```

❗ Since nginx will not route `/config` routes using this method you can rename `config.inc.php` to `cfg.inc.php`as a workaround. See the [Slim v4 Documentation](http://www.slimframework.com/docs/v4/start/web-servers.html)for further information. Contributions to improving the nginx config are very welcome.

Cron
----

[](#cron)

To cleanup old uploaded files including their metadata the server ships with a symfony console command. Execute as following

```
bin/console uploads:cleanup
```

This will delete all files older than 30 days, if the file was manifested it is valid 3 years instead.

Updating
--------

[](#updating)

Similar to installing, if you did not change the skeleton do the following:

```
git pull
composer update
```

Omit git pull if you did any changes to the skeleton.

Contributing
------------

[](#contributing)

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License
-------

[](#license)

[MIT](https://choosealicense.com/licenses/mit/)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~33 days

Recently: every ~77 days

Total

12

Last Release

1942d ago

### Community

Maintainers

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

---

Top Contributors

[![kingschnulli](https://avatars.githubusercontent.com/u/673805?v=4)](https://github.com/kingschnulli "kingschnulli (29 commits)")

---

Tags

composerphpshirtnetwork

### Embed Badge

![Health badge](/badges/shirtnetwork-designer-backend-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/shirtnetwork-designer-backend-skeleton/health.svg)](https://phpackages.com/packages/shirtnetwork-designer-backend-skeleton)
```

PHPackages © 2026

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