Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

PHP based server side software for web based digital signage systems.

License

NotificationsYou must be signed in to change notification settings

michz/shinage-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT licenseBuild StatusOpen Source Love

Introduction

This is a piece of software running on a web server providing managementfunctionality forShinage digital signage solutions.

It's based onSymfony.

Hosted

If you don't want to care about stuff like servers and securitywe can provide the fully functionally hosted solution for you.No knowledge about servers or programming needed.Please contact us!

Prerequisites

  • A machine with a running, up-to-date PHP installationwith mysql support, libgd and terminal access.
  • MariaDB- or MySQL-Server (local or remote).
  • At least one database on this MySQL-Server.
    (Runmysql -uroot -p and then typeCREATE DATABASE your_database_name; )
  • At least one user with full access to this database.
    (RunCREATE USER 'your_user_name'@'localhost' IDENTIFIED BY 'your_password'; andGRANT ALL PRIVILEGES ON your_db_name . * TO 'your_user_name'@'localhost';)
  • Local or globalComposer-Installationon this machine.

Installation

  • This guide assumes thatcomposer is installed globally.(If yours is installed somewhere locally,replacecomposer by something likephp /path/to/composer.phar )
  • Please check (and install) thePrerequisites.
  • Clone this repository.
  • Change to the freshly cloned directory. (Something likecd shinage-server )
  • Runcomposer install --no-dev
  • Create a.env file containing configuration and credentials (for example see.env.dist).
  • Runphp bin/console doctrine:schema:update --force
  • To create a first user run:
    php bin/console fos:user:create --super-admin
  • Perhaps you have to adjust the file system permissions. On Linux/Unix/BSD/... do:
    mkdir ./data; chmod -R 0777 ./var ./data
    (If you know what you do you can avoid giving 777-permissions by only grantingread-write permission to the user the web server is running as.)
  • Build assets:nvm use && corepack enable && yarn install --frozen-lockfile
  • If you want to host your own service,youreally should know what to do from here.(i.e. installing and configuring a web server)
  • If youdo not know what to do but still want to useshinage,please think about using ahosted solution.

Development

  • Follow theInstallation steps above,but do acomposer install instead ofcomposer install --no-dev.
  • There are two ways of running the application for development:
    • Executingphp bin/console server:start will run the built-inwebserver on loopback device (127.0.0.1 or::1) on port8000.You can even run the webserver on a specific device/address and port:
      php bin/console server:start 192.168.0.1:8080.

      For details see Symfony'sHow to Use PHP's built-in Web Server.

    • For better testing (including sending mails) you can use a ready-to-go docker based development environment:bin/devEnv.sh start.For this you need a workingdocker anddocker-compose installation.The relevant ports are mapped to host ports and printed to console during startup.For example, you can open the web interface viahttp://localhost:8001/ orhttps://localhost:44301.

      In the docker development environment there is a workingMailpit installationthat catches all mails sent via PHPmail() function in the php container.

    • If you use the docker based environmentit is important to understand that must commands have to be executedinside the php container.There is a tiny helper script that executes the necessarydocker exec command atbin/runInDev.sh.For example to call the Symfony console you have to runbin/runInDev.sh bin/console.

To initialize the development database, do:

php bin/console doctrine:database:create --if-not-existsphp bin/console doctrine:schema:update --forcephp bin/console doctrine:fixtures:load --no-interaction

Or for docker based setup respectively:

bin/runInDev.sh php bin/console doctrine:database:create --if-not-existsbin/runInDev.sh php bin/console doctrine:schema:update --forcebin/runInDev.sh php bin/console doctrine:fixtures:load --no-interaction

Testing

To run phpspec, do:

./vendor/bin/phpspec run --format=dot --no-code-generation

To run behat, first initialize the testing database:

php bin/console doctrine:database:create --env=test --if-not-existsphp bin/console doctrine:schema:update --force --env=test --no-interactionphp bin/console doctrine:fixtures:load --env=test --no-interaction

Then start the development webserver:

APP_ENV=test symfony local:server:start --no-tls --port=8000

And in a separate shell execute behat:

APP_ENV=test vendor/bin/behat --format=progress --strict -n --tags="~@todo"

Containerize me

If you are brave you can run this server application in a container based setup (for example using Docker).The development environment uses a bunch of docker containers,including a redis container for decentralized efficient session storage.So if you want to, try your luck.

Some notes:

  • Remember to use a centralized session storage (for example Redis, memcached, ...)
  • The/data directory has to be in sync between all nodes. Use a network storage (nfs),another shared storage mechanism or at least sync the files in realtime (discouraged)!

Contributing

Feel free to file issues, fork and/or create pull requests.

License

MIT, see also fileLICENSE.


[8]ページ先頭

©2009-2025 Movatter.jp