Sherlock es un servicio de control de Agentes de mensajeria, paqueteria y transporte en un Mapa.
Tiene dos interfaces principales: Interfaz de Agente e Interfaz de Manager.
Es compatible con Web, Android e iOS
-
Backend
- php >= 7.4
- composer
- Laravel 8
- Postgres SQL | SQLite | MariaDB
-
GUI
- Nodejs
- Yarn
- Quasar
- Android Studio + Android SDK + JDK (Solo para compilar apps)
-
Deployment
- php >= 7.4
- composer
- Postgres SQL | SQLite | MariaDB
Si ya tienes Laravel 8 puedes omitir este paso
apt install -y php7.4-fpm php7.4-mysql php7.4-mbstring php7.4-xml php7.4-bcmath php7.4-pgsql
Si ya tienes Laravel 8 puedes omitir este paso
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt';
unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
cd /project-root/backend
composer install
Si ya tienes NodeJs puedes omitir este paso
sudo apt install nodejs
npm i -g yarn @quasar/cli
cd /project-root/admin-ui
yarn
sudo chmod -R 775 storage
sudo chown -R $USER:www-data storage
Editar fichero /project-root/backend/.env
APP_NAME="Sherlock Godjango"
APP_ENV=local
APP_KEY=(php artisan key:generate)
APP_DEBUG=true
APP_URL="https://app.domain.com"
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_DATABASE=sherlock
DB_USERNAME=sherlock
DB_PASSWORD=
SESSION_DOMAIN=${APP_URL}
Para el Deployment del proyecto solamente es necesaria la Instalacion Backend y la Configuracion Backend
Clona el repositorio en tu VPS y posteriormente Configura el servidor
Usa la configuracion de NGINX siguiente reemplazando el /project-root/
del proyecto y el Dominio
server {
server_name app.domain.com;
root /project-root/backend/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php index.html;
charset utf-8;
# Optional configure logs
# access_log /var/log/nginx/app.domain.com-access.log;
# error_log /var/log/nginx/app.domain.com-error.log error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
Despues acceder al directorio de backend e inicializar Laravel
cd /project-root/backend
composer install
php artisan key:generate
php artisan storage:link
php artisan migrate:fresh --seed
O simplemente ejecutar el script de inicializacion db.init.sh
/project-root/backend/db.init.sh
Modificar Variables de entorno de la GUI
en /project-root/admin-ui/.env
API_SERVER="https://app.domain.com"
La compilacion de una app Android o iOS tiene que ser en una PC que tenga Android Studio (Para Android) o XCode (Para iOS).
Es necesaria la Instalacion de las dependencias de la GUI
cd /project-root/admin-ui
yarn build:android