Major changes
This commit is contained in:
18
.gitignore
vendored
18
.gitignore
vendored
@@ -2,18 +2,11 @@
|
||||
.*.swp
|
||||
.DS_Store
|
||||
|
||||
# Application
|
||||
web/app/composer.json
|
||||
web/app/composer.lock
|
||||
web/app/vendor/
|
||||
web/app/doc/
|
||||
web/app/report/
|
||||
data/
|
||||
# Website
|
||||
Open-RSC-Website
|
||||
|
||||
# PHPStorm
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/dictionaries
|
||||
# Game
|
||||
Open-RSC
|
||||
|
||||
# Netbeans
|
||||
nbproject/
|
||||
@@ -23,3 +16,6 @@ nbproject/
|
||||
|
||||
# SSL Certs
|
||||
etc/ssl/
|
||||
|
||||
# Database
|
||||
data
|
||||
|
||||
80
Makefile
80
Makefile
@@ -10,48 +10,34 @@ help:
|
||||
@echo "usage: make COMMAND"
|
||||
@echo ""
|
||||
@echo "Commands:"
|
||||
@echo " apidoc Generate documentation of API"
|
||||
@echo " code-sniff Check the API with PHP Code Sniffer (PSR2)"
|
||||
@echo " clean Clean directories for reset"
|
||||
@echo " composer-up Update PHP dependencies with composer"
|
||||
@echo " docker-start Create and start containers"
|
||||
@echo " docker-stop Stop and clear all services"
|
||||
@echo " gen-certs Generate SSL certificates"
|
||||
@echo " pull Get the latest GitHub repos"
|
||||
@echo " start Create and start containers"
|
||||
@echo " stop Stop all services"
|
||||
@echo " restart Restart containers"
|
||||
@echo " logs Follow log output"
|
||||
@echo " mysql-dump Create backup of all databases"
|
||||
@echo " mysql-restore Restore backup of all databases"
|
||||
@echo " phpmd Analyse the API with PHP Mess Detector"
|
||||
@echo " test Test application"
|
||||
@echo " import Import all databases from the GitHub repos"
|
||||
@echo " dump Create backup of all local databases"
|
||||
@echo " restore Restore backup of all local databases"
|
||||
|
||||
init:
|
||||
@$(shell cp -n $(shell pwd)/web/app/composer.json.dist $(shell pwd)/web/app/composer.json 2> /dev/null)
|
||||
|
||||
apidoc:
|
||||
@docker-compose exec -T php php -d memory_limit=256M -d xdebug.profiler_enable=0 ./app/vendor/bin/apigen generate app/src --destination app/doc
|
||||
@make resetOwner
|
||||
|
||||
clean:
|
||||
@rm -Rf data/db/mysql/*
|
||||
@rm -Rf $(MYSQL_DUMPS_DIR)/*
|
||||
@rm -Rf web/app/vendor
|
||||
@rm -Rf web/app/composer.lock
|
||||
@rm -Rf web/app/doc
|
||||
@rm -Rf web/app/report
|
||||
@rm -Rf etc/ssl/*
|
||||
|
||||
code-sniff:
|
||||
@echo "Checking the standard code..."
|
||||
@docker-compose exec -T php ./app/vendor/bin/phpcs -v --standard=PSR2 app/src
|
||||
|
||||
composer-up:
|
||||
@docker run --rm -v $(shell pwd)/web/app:/app composer update
|
||||
|
||||
docker-start: init
|
||||
start: init
|
||||
docker-compose up -d
|
||||
|
||||
docker-stop:
|
||||
stop:
|
||||
@docker-compose down -v
|
||||
@make clean
|
||||
|
||||
restart:
|
||||
@docker-compose down -v
|
||||
docker-compose up -d
|
||||
|
||||
pull:
|
||||
@$(shell git clone https://github.com/Marwolf/Open-RSC-Website.git)
|
||||
cd Open-RSC-Website
|
||||
git pull
|
||||
cd ..
|
||||
@$(shell git clone https://github.com/Marwolf/Open-RSC)
|
||||
cd Open-RSC
|
||||
git pull
|
||||
cd ..
|
||||
|
||||
gen-certs:
|
||||
@docker run --rm -v $(shell pwd)/etc/ssl:/certificates -e "SERVER=$(NGINX_HOST)" jacoelho/generate-certificate
|
||||
@@ -59,25 +45,21 @@ gen-certs:
|
||||
logs:
|
||||
@docker-compose logs -f
|
||||
|
||||
mysql-dump:
|
||||
dump:
|
||||
@mkdir -p $(MYSQL_DUMPS_DIR)
|
||||
@docker exec $(shell docker-compose ps -q mysqldb) mysqldump --all-databases -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" > $(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null
|
||||
@make resetOwner
|
||||
|
||||
mysql-restore:
|
||||
restore:
|
||||
@docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < $(MYSQL_DUMPS_DIR)/db.sql 2>/dev/null
|
||||
|
||||
phpmd:
|
||||
@docker-compose exec -T php \
|
||||
./app/vendor/bin/phpmd \
|
||||
./app/src \
|
||||
text cleancode,codesize,controversial,design,naming,unusedcode
|
||||
|
||||
test: code-sniff
|
||||
@docker-compose exec -T php ./app/vendor/bin/phpunit --colors=always --configuration ./app/
|
||||
@make resetOwner
|
||||
import:
|
||||
@docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc_config.sql 2>/dev/null
|
||||
@docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc_logs.sql 2>/dev/null
|
||||
@docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC/Databases/openrsc.sql 2>/dev/null
|
||||
@docker exec -i $(shell docker-compose ps -q mysqldb) mysql -u"$(MYSQL_ROOT_USER)" -p"$(MYSQL_ROOT_PASSWORD)" < Open-RSC-Website/openrsc_forum.sql 2>/dev/null
|
||||
|
||||
resetOwner:
|
||||
@$(shell chown -Rf $(SUDO_USER):$(shell id -g -n $(SUDO_USER)) $(MYSQL_DUMPS_DIR) "$(shell pwd)/etc/ssl" "$(shell pwd)/web/app" 2> /dev/null)
|
||||
@$(shell chown -Rf $(SUDO_USER):$(shell id -g -n $(SUDO_USER)) $(MYSQL_DUMPS_DIR) "$(shell pwd)/etc/ssl" 2> /dev/null)
|
||||
|
||||
.PHONY: clean test code-sniff init
|
||||
@@ -5,11 +5,11 @@ services:
|
||||
volumes:
|
||||
- "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"
|
||||
- "./etc/ssl:/etc/ssl"
|
||||
- "./web:/var/www/html"
|
||||
- "./Open-RSC-Website:/var/www/html/public"
|
||||
- "./etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template"
|
||||
ports:
|
||||
- "8000:80"
|
||||
- "3000:443"
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
environment:
|
||||
- NGINX_HOST=${NGINX_HOST}
|
||||
command: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
|
||||
@@ -22,12 +22,7 @@ services:
|
||||
restart: always
|
||||
volumes:
|
||||
- "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
|
||||
- "./web:/var/www/html"
|
||||
composer:
|
||||
image: "composer"
|
||||
volumes:
|
||||
- "./web/app:/app"
|
||||
command: install
|
||||
- "./Open-RSC-Website:/var/www/html/public"
|
||||
myadmin:
|
||||
image: phpmyadmin/phpmyadmin
|
||||
container_name: phpmyadmin
|
||||
@@ -51,6 +46,6 @@ services:
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
ports:
|
||||
- "8989:3306"
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- "./data/db/mysql:/var/lib/mysql"
|
||||
@@ -21,7 +21,7 @@ server {
|
||||
}
|
||||
}
|
||||
|
||||
# server {
|
||||
# server { #SSL configuration below
|
||||
# server_name localhost;
|
||||
|
||||
# listen 443 ssl;
|
||||
|
||||
@@ -21,7 +21,7 @@ server {
|
||||
}
|
||||
}
|
||||
|
||||
# server {
|
||||
# server { #SSL configuration below
|
||||
# server_name ${NGINX_HOST};
|
||||
|
||||
# listen 443 ssl;
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"require": {
|
||||
|
||||
},
|
||||
"require-dev": {
|
||||
"apigen/apigen": "dev-master",
|
||||
"phpmd/phpmd": "@stable",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"roave/better-reflection": "dev-master#c87d856",
|
||||
"squizlabs/php_codesniffer": "3.*"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\Acme\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"AppTest\\Acme\\": "test/"
|
||||
}
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"prefer-stable": true
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
|
||||
bootstrap="test/bootstrap.php"
|
||||
colors="true">
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="PHP Test suite">
|
||||
<directory>./test/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<whitelist addUncoveredFilesFromWhitelist="false">
|
||||
<directory suffix=".php">./src</directory>
|
||||
<exclude>
|
||||
<directory suffix=".php">./vendor</directory>
|
||||
</exclude>
|
||||
</whitelist>
|
||||
</filter>
|
||||
|
||||
<php>
|
||||
<ini name="date.timezone" value="UTC"/>
|
||||
</php>
|
||||
|
||||
<logging>
|
||||
<log type="coverage-html" target="./report/phpunit" charset="UTF-8" yui="true" highlight="true"/>
|
||||
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
|
||||
</logging>
|
||||
</phpunit>
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Acme;
|
||||
|
||||
class Foo
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return 'Nginx PHP MySQL';
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace AppTest\Acme;
|
||||
|
||||
use App\Acme\Foo;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class FooTest extends TestCase
|
||||
{
|
||||
public function testGetName()
|
||||
{
|
||||
$foo = new Foo();
|
||||
$this->assertEquals($foo->getName(), 'Nginx PHP MySQL');
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
/**
|
||||
* Setup autoloading
|
||||
*/
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
include '../app/vendor/autoload.php';
|
||||
$foo = new App\Acme\Foo();
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Docker <?php echo $foo->getName(); ?></title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Docker <?php echo $foo->getName(); ?></h1>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user