# NINESKELETOR Squelette applicatif symfony ## Installation for local dev ``` curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list apt-get update apt-get install git docker-compose composer symfony-cli php php-xml php-zip php-gd php-curl php-pgsql yarn git clone https://forge.cadoles.com/Cadoles/nineskeletor.git cd nineskeletor symfony server:ca:install cp .env .env.local ``` Change in .env.local APP_SECRET variabile This secret is the init password for admin user Change in .env.local MERCURE_JWT_SECRET variable And report this secret in docker-compose.yml MERCURE_PUBLISHER_JWT_KEY and MERCURE_SUBSCRIBER_JWT_KEY And finish with ``` bin/reconfigure.sh ``` ## Run for local ``` symfony server:start ``` ## Installation for apache exec installation for local dev except /bin/reconfigure.sh Between Change in .env.local APP_WEBURL variable For sample ``` APP_WEBURL=MyDomaine ``` Change in .env.local MERCURE variable like The /hub alias must be the same on Apache configuration ProxyPass and ProxyPassReverse ``` MERCURE_URL=http://MyDomaine/hub/.well-known/mercure MERCURE_PUBLIC_URL=http://MyDomaine/hub/.well-known/mercure ``` Create the file docker-compose.override.yml like The port 9090 must be the same in the apache configuration ProxyPass and ProxyPassReverse ``` version: '3' services: mercure: ports: - "9090:80" environment: SERVER_NAME: ':80' MERCURE_PUBLISHER_JWT_KEY: '!ChangeMe!' MERCURE_SUBSCRIBER_JWT_KEY: '!ChangeMe!' MERCURE_EXTRA_DIRECTIVES: | cors_origins http://MyDomaine ``` And finish with ``` bin/reconfigure.sh ``` After install and configure apache ``` apt-get install apache libmodapache2 a2enmod rewrite proxy_http service apache2 restart ``` sample apache configuration in /etc/apache2/site-available/000- ``` DocumentRoot /var/www/html/nineskeletor/public CustomLog /var/log/apache2/access.log common ErrorLog /var/log/apache2/error.log DirectoryIndex index.php Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ RewriteRule .* - [E=BASE:%1] RewriteCond %{HTTP:Authorization} .+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ %{ENV:BASE}/index.php [L] RedirectMatch 307 ^/$ /index.php/ # For mercure server ProxyPass /hub/ http://localhost:9090/ ProxyPassReverse /hub/ http://localhost:9090/ # For mailer server ProxyPass / http://localhost:1080/ ProxyPassReverse / http://localhost:1080/ ``` ## Cron Job Make sure the cron job is running all the minute You can copy this bin/nineskeletor.cron in your crontab ``` cp /var/www/html/nineskeletor/bin/nineskeletor.cron /etc/cron.d/nineskeletor ``` ## Messenger worker Make sure the messenger consume the bus Needed to send mail You can copy this bin/nineskeletor.service in your systemd ``` cp /var/www/html/nineskeletor/bin/nineskeletor.service /etc/systemd/system/ systemctl enable nineskeletor.service systemctl start nineskeletor.service ```