{"id":20098655,"url":"https://github.com/encryptex/alerty","last_synced_at":"2025-03-02T16:30:14.273Z","repository":{"id":55492062,"uuid":"520682754","full_name":"EncryptEx/alerty","owner":"EncryptEx","description":"A minimalistic platform which triggerers an action (emails by default) when a specific url is requested with an optional data sent. Useful when doing crontab/cronjob monitoring.","archived":false,"fork":false,"pushed_at":"2023-08-22T16:15:48.000Z","size":390,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T03:45:39.588Z","etag":null,"topics":["alerts","cronjob","event","monitoring","notifications","trigger"],"latest_commit_sha":null,"homepage":"https://alerty.jaumelopez.dev","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EncryptEx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-02T23:57:39.000Z","updated_at":"2024-12-26T20:45:49.000Z","dependencies_parsed_at":"2022-08-15T01:40:31.866Z","dependency_job_id":null,"html_url":"https://github.com/EncryptEx/alerty","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Falerty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Falerty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Falerty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Falerty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EncryptEx","download_url":"https://codeload.github.com/EncryptEx/alerty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241536850,"owners_count":19978413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alerts","cronjob","event","monitoring","notifications","trigger"],"created_at":"2024-11-13T17:06:12.932Z","updated_at":"2025-03-02T16:30:14.231Z","avatar_url":"https://github.com/EncryptEx.png","language":"PHP","readme":"\u003cp align=\"center\"\u003e\u003ca href=\"#\"\u003e\u003cimg src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.dribbble.com%2Fusers%2F2344150%2Fscreenshots%2F4814121%2F0711_notification_bell_dribble.gif\u0026f=1\u0026nofb=1\" alt=\"Alerty\" height=\"60\"/\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eAlerty\u003c/h1\u003e\n\u003cp align=\"center\"\u003eFast and reliable reply notifications after tasks.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/languages/code-size/EncryptEx/alerty\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/languages/top/EncryptEx/alerty\"/\u003e\n\u003cimg src=\"https://tokei.ekzhang.com/b1/github/EncryptEx/alerty\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/last-commit/EncryptEx/alerty\"/\u003e\n\u003c!-- \u003ca href=\"https://github.com/EncryptEx/alerty/actions/workflows/main.yml\"\u003e\u003cimg src=\"https://github.com/EncryptEx/alerty/actions/workflows/main.yml/badge.svg\"\u003e\u003c/img\u003e\u003c/a\u003e --\u003e\n\nA minimalistic platform which triggerers an action (emails by default) when a specific url is requested with an optional data sent. Useful when doing crontab/cronjob monitoring.\n\nBy default, it sends an email to the previously saved email.\n\n---\n\n## Architecture\n\nThis project is using\n\n- PHP\n- MySQL (pdo conections)\n- Composer, to use:\n  - phpdotenv (credentials management)\n  - phpmailer (SMTP email library)\n  - phpunit (unit testing in php)\n\n---\n\n## Story\n\nI was messing arround with my linux, until I discovered that I wanted to recieve some feedback whenever a crontab (the update \u0026 upgrade) was finished.\n\nThat's basically the main reason of why I have chosen to build this triggerer website.\n\n---\n\n## Philosophy\n\nI would like to bring this little service open and free to anyone, so feel free to fork it or use it at [my hosted version](https://alerty.jaumelopez.dev)\n\n---\n\n## Installation\n\n1. First, clone the repository and install all the dependencies:\n\n   ```sh\n   composer install\n   ```\n\n   Depending of your hosting provider you will need to move the `vendor` folder inside the `private` folder because of permission conflicts with the user www-data (happened in my case). If this happens to you, you'll need to change the path of the vendor's autoload at the `src/private/utils.php` file (line 15).\n\n2. Then, with the PHP installed and its dependencies, let's import the databse structure, for this, create a database and drag and drop (in phpMyAdmin) the file located in:\n\n   **db/database.sql**\n\n   or simply go to the import section after clicking on the database's name. A tutorial can be found [here](https://www.inmotionhosting.com/support/server/databases/import-database-using-phpmyadmin/) or if you prefer the in-line method [this](https://stackoverflow.com/questions/7828060/how-do-i-import-a-sql-data-file-into-sql-server) may help you.\n\n   If you want the terminal option just do:\n\n   ```\n   mysql -u \u003cdb_user\u003e -p \u003cdb_name\u003e ./db/database.sql\n   ```\n\n3. Create the .env file by changing the name or copying the **src/private/.env.example** file\n   To change the name:\n   ```\n   mv .env.template .env\n   ```\n   To copy the file\n   ```\n   cp .env.template .env\n   ```\n   And then, place all the credentials needed. Here's a table explaining what do they mean:\n   | Enviroment variable | Description |\n   |----------------------|----------------------------------------------------|\n   | DB_HOST | The databse host, most times is localhost |\n   | DB_NAME | The name of the Database you have just created |\n   | DB_USER | The MySQL database username, needs access to CRUD (Create, Read, Update, Delete) |\n   | DB_PASS | The MySQL database password |\n   | MAIL_SENDER | The email, example: name@example.com |\n   | MAIL_PWD | The email account password, highly recommended to generate one with [this method](https://support.google.com/accounts/answer/185833?hl=en) if is a google account |\n   | MAIL_HOST | The SMTP host, gmail uses smtp.gmail.com |\n   | MAIL_PORT | The SMTP port, gmail uses 587 (with TLS, that is required in this application) |\n   | HASH_SALT | A secret string that is crucial to encrypt the account verification link. Do not leave in blank or make it easy to guess, you'll never have to type it anywhere. |\n4. Run server and enjoy!\n\n---\n\n### Suggestions or questions\n\nIf you feel that something is wrong in this README file or you need help while setting up this project, feel free to contact or open a [GitHub Issue](https://github.com/EncryptEx/alerty/issues/new).\n\n---\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/EncryptEx/hammer/\"\u003e\u003cimg src=\"http://randojs.com/images/barsSmallTransparentBackground.gif\" alt=\"Animated footer bars\" width=\"100%\"/\u003e\u003c/a\u003e\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Falerty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencryptex%2Falerty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Falerty/lists"}