All Projects → michz → shinage-server

michz / shinage-server

Licence: MIT license
PHP based server side software for web based digital signage systems.

Programming Languages

PHP
23972 projects - #3 most used programming language
HTML
75241 projects
Twig
543 projects
javascript
184084 projects - #8 most used programming language
Gherkin
971 projects
Less
1899 projects

Projects that are alternatives of or similar to shinage-server

pynhd
A part of HyRiver software stack that provides access to NHD+ V2 data through NLDI and WaterData web services
Stars: ✭ 12 (-61.29%)
Mutual labels:  webservices
site
RailroadPM.org 2.x Site
Stars: ✭ 18 (-41.94%)
Mutual labels:  webservices
rest-api-node-typescript
This is a simple REST API with node and express with typescript
Stars: ✭ 154 (+396.77%)
Mutual labels:  webservices
xmldsigjs
XMLDSIGjs provides an implementation of XMLDSIG in Typescript/Javascript based on WebCrypto
Stars: ✭ 27 (-12.9%)
Mutual labels:  webservices
multicontainer-demo-rpi3
A demo of balena multicontainer on Raspberry Pi3 with PiTFT LCDs
Stars: ✭ 18 (-41.94%)
Mutual labels:  digital-signage
ezdmb
A dead-simple digital menu board display and configuration, written in Python.
Stars: ✭ 17 (-45.16%)
Mutual labels:  digital-signage
API-Testing-Automation-Framework
It is Data-Driven and Keyword-Driven framework to test REST/SOAP webservices automatically
Stars: ✭ 24 (-22.58%)
Mutual labels:  webservices
pygeohydro
A part of HyRiver software stack for accessing hydrology data through web services
Stars: ✭ 47 (+51.61%)
Mutual labels:  webservices
lcds
Light Centralized Digital Signage
Stars: ✭ 17 (-45.16%)
Mutual labels:  digital-signage
WSBoletoSantander
WS Boletos Santander são classes criadas para facilitar a integração entre aplicativos feitos em PHP e a geração de boletos online no banco Santander.
Stars: ✭ 43 (+38.71%)
Mutual labels:  webservices
Guzzle
Guzzle, an extensible PHP HTTP client
Stars: ✭ 21,384 (+68880.65%)
Mutual labels:  webservices
Awesome Serverless
☁️ A curated list of awesome services, solutions and resources for serverless / nobackend applications.
Stars: ✭ 6,654 (+21364.52%)
Mutual labels:  webservices
Chromecast-Kiosk
A open source software to create a digital signage system with google chromecasts.
Stars: ✭ 81 (+161.29%)
Mutual labels:  digital-signage
The-PHP-Workshop
A New, Interactive Approach to Learning PHP
Stars: ✭ 30 (-3.23%)
Mutual labels:  webservices
selenified
The Selenified Test Framework provides mechanisms for simply testing applications at multiple tiers while easily integrating into DevOps build environments. Selenified provides traceable reporting for both web and API testing, wraps and extends Selenium calls to more appropriately handle testing errors, and supports testing over multiple browser…
Stars: ✭ 38 (+22.58%)
Mutual labels:  webservices
granitic
Web/micro-services and IoC framework for Golang developers
Stars: ✭ 32 (+3.23%)
Mutual labels:  webservices
py3dep
A part of HyRiver software stack for getting topography data within the US through 3D Elevation Program (3DEP)
Stars: ✭ 30 (-3.23%)
Mutual labels:  webservices
playsonify
An opinionated micro-framework to help you build practical JSON APIs with Play Framework (or akka-http)
Stars: ✭ 42 (+35.48%)
Mutual labels:  webservices
WebTechnologies
CRAN Task View: WebTechnologies
Stars: ✭ 163 (+425.81%)
Mutual labels:  webservices
streetsign
HTML5 based Digital Signage software written in python. (github clone of bitbucket master repo)
Stars: ✭ 34 (+9.68%)
Mutual labels:  digital-signage

Shinage Server

MIT license Build Status Scrutinizer Code Quality Open Source Love png1

Introduction

This is a piece of software running on a web server providing management functionality for Shinage digital signage solutions.

It's based on Symfony 5.4.

Hosted

If you don't want to care about stuff like servers and security we 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 PHP installation (7.4 or newer) with mysql support, libgd and terminal access.
  • MariaDB- or MySQL-Server (local or remote).
  • At least one database on this MySQL-Server.
    (Run mysql -uroot -p and then type CREATE DATABASE your_database_name; )
  • At least one user with full access to this database.
    (Run CREATE USER 'your_user_name'@'localhost' IDENTIFIED BY 'your_password'; and GRANT ALL PRIVILEGES ON your_db_name . * TO 'your_user_name'@'localhost';)
  • Local or global Composer-Installation on this machine.

Installation

  • This guide assumes that composer is installed globally. (If yours is installed somewhere locally, replace composer by something like php /path/to/composer.phar )
  • Please check (and install) the Prerequisites.
  • Clone this repository.
  • Change to the freshly cloned directory. (Something like cd shinage-server )
  • Run composer install --no-dev
  • Create a .env file containing configuration and credentials (for example see .env.dist).
  • Run php 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 granting read-write permission to the user the web server is running as.)
  • If you want to host your own service, you really should know what to do from here. (i.e. installing and configuring a web server)
  • If you do not know what to do but still want to use shinage, please think about using a hosted solution.

Development

  • Follow the Installation steps above, but do a composer install instead of composer install --no-dev.
  • There are two ways of running the application for development:
    • Executing php bin/console server:start will run the built-in webserver on loopback device (127.0.0.1 or ::1) on port 8000. 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's How 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 working docker and docker-composer installation. The relevant ports are mapped to host ports and printed to console during startup. For example you can open the web interface via http://localhost:8001/ or https://localhost:44301.

      In the docker development environment there is a working Mailhog installation that catches all mails sent via PHP mail() function in the php container.

    • If you use the docker based environment it is important to understand that must commands have to be executed inside the php container. There is a tiny helper script that executes the necessary docker exec command at bin/runInDev.sh. For example to call the Symfony console you have to run bin/runInDev.sh bin/console.

Testing

To run behat, start the development webserver:

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 file LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].