api-fryntiz

Proyecto de API con información en tiempo real sobre mis páginas web. Mirro de https://gitlab.com/raupulus/api-fryntiz

https://github.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

api curriculum flightaware keycounter laravel laravel-application laravel-framework php smartplant vue vue3 vuejs weather-station
Last synced: 4 months ago · JSON representation ·

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
api curriculum flightaware keycounter laravel laravel-application laravel-framework php smartplant vue vue3 vuejs weather-station
Created over 7 years ago · Last pushed 5 months ago
Metadata Files
Readme License Citation

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

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 (8) javascript (6) php (2)

Dependencies

package-lock.json npm
  • 823 dependencies
package.json npm
  • @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
yarn.lock npm
  • 823 dependencies
composer.json packagist
  • 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
composer.lock packagist
  • 124 dependencies
pnpm-lock.yaml npm
  • 840 dependencies