api-fryntiz
Proyecto de API con información en tiempo real sobre mis páginas web. Mirro de https://gitlab.com/raupulus/api-fryntiz
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (4.3%) to scientific vocabulary
Keywords
Repository
Proyecto de API con información en tiempo real sobre mis páginas web. Mirro de https://gitlab.com/raupulus/api-fryntiz
Basic Info
- Host: GitHub
- Owner: raupulus
- License: gpl-3.0
- Language: PHP
- Default Branch: main
- Homepage: https://api.fryntiz.dev
- Size: 15.8 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Api de propósito general
Secciones
- Estación Meteorológica
- Contador de pulsaciones para teclado/ratón
- SmartPlant para control y monitorización de plantas
- Radar de vuelos para aviones en las proximidades
Pendiente
- Preparar vista de emails generales
- Terminar de revisar vista de email para verificar newsletter
Instalación
git clone https://gitlab.com/raupulus/api-fryntiz.git
- Editar .env
- Crear Base de datos (postgresql)
cd /var/www/web/api-fryntiz sudo -u postgres createdb -O web -T template1 api_fryntiz cp .env.example .env nano .env
composer install --no-dev php artisan migrate php artisan db:seed php artisan passport:install php artisan key:generate
ln -s $PWD/storage/app/public $PWD/public/storage
php artisan storage:link
npm install --production
sudo chown -R www-data:www-data /var/www/web/api-fryntiz sudo find /var/www/web/api-fryntiz/ -type f -exec chmod 644 {} \; sudo find /var/www/web/api-fryntiz/ -type d -exec chmod 775 {} \;
sudo mkdir /var/log/apache2/api-fryntiz sudo cp /var/www/web/api-fryntiz/api-fryntiz.conf /etc/apache2/sites-available/ sudo a2ensite api-fryntiz.conf
echo '127.0.0.1 fryntiz.dev' | sudo tee -a /etc/hosts echo '127.0.0.1 api.fryntiz.dev' | sudo tee -a /etc/hosts
sudo systemctl reload apache2
sudo certbot --authenticator webroot --installer apache \ -w /var/www/web/api-fryntiz/public \ -d www.api.fryntiz.dev -d api.fryntiz.dev
sudo certbot certonly --webroot -w /var/www/web/api-fryntiz/public \ -d www.api.fryntiz.dev -d api.fryntiz.dev
API Estación meteorológica
Ruta de acceso: /weatherstation
API Contador de teclas (Keycounter)
Ruta de acceso: /keycounter
API Smart Plant
Ruta de acceso: /smartplant
API Airflight
Ruta de acceso: /airflight
Cronjobs
Añadir tarea cron para ejecutar cada minuto el comando de laravel para ejecutar los cronjobs:
```bash
Laravel api-fryntiz
- * * * * fryntiz cd /var/www/public/api-fryntiz && php artisan schedule:run >> /dev/null 2>&1 ```
Así laravel podrá gestionar las tareas programadas controladas por código internamente.
Websockets
Antes de continuar, todo lo que ves a continuación es para instalar websockets en un servidor con Debian Stable, en caso de usar otro sistema operativo o versión de Debian, puede que no funcione o haya que adaptar los comandos.
De cualquier forma, me salto las partes de configuración para la seguridad por ser de ámbito general y esto es un proyecto de código abierto, no un tutorial de seguridad. Lo mínimo que deberías plantear es tener un certificado SSL válido y que la aplicación no se ejecute como root, si no como un nuevo usuario con permisos limitados al menos para la parte de websockets. También deberías tener un firewall activo y configurado para evitar ataques. En el servidor de nginx/apache o el que uses deberías limitar el acceso a la aplicación por IP o rango de IPs (cualquier mecanismo para evitar accesos no autorizados que consuman recursos y/o puedan escalar acceso).
El ejemplo para la configuración de apache lo puedes encontrar en el archivo api-fryntiz.conf en la raíz del proyecto.
Para habilitar los websockets se hay que instalar algún gestor de tareas como supervisor
bash
sudo apt install supervisor
Y crear un archivo de configuración en /etc/supervisor/conf.d/api-fryntiz.conf con el siguiente contenido cambiando ruta y usuario:
[program:api_fryntiz_websockets]
command=/usr/bin/php /var/www/public/api-fryntiz/artisan websockets:serve --port 6001
numprocs=1
autostart=true
autorestart=true
user=fryntiz
Y reiniciar el servicio de supervisor
bash
sudo supervisorctl update
sudo supervisorctl restart api_fryntiz_websockets
sudo supervisorctl status api_fryntiz_websockets
Más información en https://beyondco.de/docs/laravel-websockets/getting-started/installation
Incrementar límites de conexiones al websockets, esto normalmente es un límite del sistema operativo, en este caso Debian Stable:
bash
sudo nano /etc/security/limits.d/laravel-echo.conf
Cambia el nombre del archivo y del usuario por el que corresponda, en este caso es laravel-echo como ejemplo.
Dentro deberá tener el siguiente contenido adaptado a tu caso:
```bash
laravel-echo soft nofile 10000 ```
Suele estar limitado a 1024.
Para más seguridad y evitar problemas, es mejor haber utilizado un usuario específico para la aplicación y no el usuario root o cualquier otro administrador.
Owner
- Name: Raúl Caro Pastorino
- Login: raupulus
- Kind: user
- Location: Chipiona (España)
- Company: Xerintel
- Website: https://fryntiz.es
- Twitter: raupulus
- Repositories: 2
- Profile: https://github.com/raupulus
Debian and Fedora user. Raspberry and arduino fan. Python, Bash and PHP developer. Technologically curious by nature
Citation (CITATION.txt)
If you use api_fryntiz for any published work, please cite it using the reference
below:
@Misc{,
author = {Raúl caro pastorino},
organization = {http://fryntiz.es},
title = {api_fryntiz: descripción},
year = {2018},
url = "https://github.com/fryntiz/api_fryntiz"
}
GitHub Events
Total
- Push event: 15
Last Year
- Push event: 15
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 9
- Average time to close issues: N/A
- Average time to close pull requests: 5 months
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.89
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 8
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- dependabot[bot] (8)
- raupulus (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 823 dependencies
- @tailwindcss/forms ^0.3.1 development
- @tailwindcss/typography ^0.4.0 development
- @vue/compiler-sfc ^3.2.21 development
- alpinejs ^2.7.3 development
- axios ^0.21.1 development
- bootstrap ^5.1.3 development
- jquery ^3.6 development
- laravel-mix ^6.0.6 development
- lodash ^4.17.21 development
- popper.js ^1.16.1 development
- postcss ^8.3.0 development
- postcss-import ^14.0.1 development
- resolve-url-loader ^3.1.3 development
- sass ^1.32.11 development
- sass-loader ^11.0.1 development
- tailwindcss ^2.0.1 development
- typescript ^4.4.4 development
- vue-loader ^16.2.0 development
- autoprefixer ^10.2.5
- bootstrap5 ^1.1.9
- chart.js ^3.7.1
- cross-env ^7.0.3
- flowbite ^1.4.1
- inputmask ^5.0.7
- primeicons ^5.0.0
- primevue ^3.12.4
- quill ^1.3.7
- rxjs ^7.0.1
- s ^1.0.0
- vue ^3.0.11
- vue-axios ^3.2.4
- vue-next ^0.0.1
- vue-router ^4.0.8
- vue-template-compiler ^2.6.12
- vuex ^4.0.0
- 823 dependencies
- barryvdh/laravel-debugbar ^3.5 development
- facade/ignition ^2.5 development
- fakerphp/faker ^1.9.1 development
- laravel/sail ^1.0.1 development
- mockery/mockery ^1.4.2 development
- nunomaduro/collision ^5.0 development
- phpunit/phpunit ^9.3.3 development
- roave/security-advisories dev-latest development
- fideloper/proxy ^4.4
- fruitcake/laravel-cors ^2.0
- guzzlehttp/guzzle ^7.0.1
- intervention/image ^2.7
- jeroennoten/laravel-adminlte ^3.7
- laravel/fortify ^1.10
- laravel/framework ^8.40
- laravel/sanctum ^2.6
- laravel/tinker ^2.5
- laravel/ui ^3.3
- php ^8.0
- 124 dependencies
- 840 dependencies