{"id":13577278,"url":"https://github.com/devforth/hothost","last_synced_at":"2025-04-05T00:04:18.948Z","repository":{"id":38252325,"uuid":"487551688","full_name":"devforth/hothost","owner":"devforth","description":"Lightweight and minimalistic open-source Servers and HTTP monitor","archived":false,"fork":false,"pushed_at":"2025-02-17T14:56:50.000Z","size":3190,"stargazers_count":175,"open_issues_count":9,"forks_count":15,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-28T23:02:45.605Z","etag":null,"topics":["docker","host-monitoring","http-monitor","monitoring","self-hosted","selfhosted","server-monitor","server-monitoring","uptime","uptime-monitoring"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devforth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-01T13:59:26.000Z","updated_at":"2025-03-22T10:30:42.000Z","dependencies_parsed_at":"2024-06-21T14:06:17.974Z","dependency_job_id":"4bd5f38e-dd01-4a28-894a-90490a529ef0","html_url":"https://github.com/devforth/hothost","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devforth%2Fhothost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devforth%2Fhothost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devforth%2Fhothost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devforth%2Fhothost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devforth","download_url":"https://codeload.github.com/devforth/hothost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266563,"owners_count":20910836,"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":["docker","host-monitoring","http-monitor","monitoring","self-hosted","selfhosted","server-monitor","server-monitoring","uptime","uptime-monitoring"],"created_at":"2024-08-01T15:01:20.043Z","updated_at":"2025-04-05T00:04:18.928Z","avatar_url":"https://github.com/devforth.png","language":"JavaScript","readme":"# HotHost\n\n\u003ca href=\"https://devforth.io\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/devforth/OnLogs/e97944fffc24fec0ce2347b205c9bda3be8de5c5/.assets/df_powered_by.svg\" style=\"height:36px\"/\u003e\u003c/a\u003e\n\n\nLightweight and minimalistic monitoring tool for Servers and HTTP web pages. \n\n* 🆓 Free and Open-Source forever\n* 💾 Shows used disk space percentage and ALERT badge if it exceeds a configurable threshold (90% by default)\n* 🧠 Shows used RAM percentage and ALERT badge if it exceeds a configurable threshold (90% by default)\n* ☎️ Built-in plugins to setup free Email/Slack/Telegram notifications\n* 🪧 Agents installed using **simple code snippets**. Options: Docker/Compose/Bash+curl+crontab.\n* 🐬 Docker ready - you can run the agent with plain docker command or add to your compose\n* 🏙 Allows to monitor as many hosts as needed\n* ⏰️ Configurable monitoring interval\n* 📈 View top 10 processes consuming RAM, historically over last 2 days.\n* 🌐 HTTP / HTTPS Monitor, status code check (e.g. 200), webpage keywords existence, basic auth, notifications\n* 🔒 HTTPS SSL check with expiration reminder (default is 14 days prior to expiration, configurable)\n\nFor each host it allows to see:\n\n* OS version\n* CPU model\n* RAM size and current RAM ussage\n* See whether SWAP is enabled and whether it is used\n\n## [👉🏼 STEP BY STEP INSTALLATION GUIDE](https://devforth.io/blog/critical-server-alerts-with-hothost-open-source-quick-to-setup-disk-ram-notifier/)\n\n# Preview\n\nHosts view:\n\n![image](https://user-images.githubusercontent.com/1838656/196886907-c90e5e36-c695-4b56-85f0-aadccd125140.png)\n\n\nAdd new host box:\n\n![image](https://user-images.githubusercontent.com/1838656/196889285-c9c6b7c3-d665-4c8f-b615-be990599168d.png)\n\n\nAvailable notification plugins:\n\n![image](https://user-images.githubusercontent.com/1838656/196889594-5a405ca0-0608-4a39-8a42-b62d74055f99.png)\n\n\nAnalyze top RAM-consuming processes at a time:\n\n\u003cimg src=\"https://user-images.githubusercontent.com/1838656/197183957-e22b2690-f79f-4dcd-a7b7-092ab9622990.gif\" width=\"700\"/\u003e\n\nHTTP(s) Monitor setup:\n\n\u003cimg src=\"https://user-images.githubusercontent.com/1838656/196887413-14055152-4114-42e8-841f-cd5ec7c33e50.png\" width=\"500\"/\u003e\n\n\n\n# Installation\n\nFirst you need to run HotHost Web Server. Web-server itself, when will be started, will give you clear guide how to add agents via own Web UI. \n\nYou can use any host with public IP. You are responsible for setting up HTTPS.\n\nFor HTTPS you can use anything, most simple options:\n- Nginx or Traefik with connected external certificate or free Let's Encrypt certificate\n- Free Cloudflare CDN which terminates SSL and gives additional layer of security.\n\nWe recommend you to check guide how to [setup HotHost with free Cloudflare plan and EC2 Nano](https://devforth.io/blog/critical-server-alerts-with-hothost-open-source-quick-to-setup-disk-ram-notifier/)\n\nIf you have existing Docker/Compose stacks, you can use snippets below:\n\n## Docker Compose\n\nAdd to your existing compose stack:\n\n```\nversion: '3.5'\n\nservices:\n  hothost-web:\n    image: devforth/hothost-web\n    restart: always\n    environment:\n      - HOTHOST_WEB_ADMIN_USERNAME=admin\n      - HOTHOST_WEB_ADMIN_PASSWORD=!!!CHANGE_ME!!!\n      - HOTHOST_WEB_PORT=8007\n      - HOTHOST_WEB_PUBLIC_VIEW_ENABLED=false\n    ports:\n      - 8007:8007\n    volumes:\n      - v-hothost-data:/var/lib/hothost/data/\nvolumes:\n  v-hothost-data:\n```\n\nNow you should proxy https://subdomain.yourdomain.com to serve requests from 127.0.0.1:8007.\n\nExample Nginx Proxy:\n\n```\nserver {\n  listen 443;\n  server_name subdomain.yourdomain.com;\n  ssl_certificate     wildcard.crt;\n  ssl_certificate_key   wildcard.key;\n\n  charset utf-8;\n  client_max_body_size 75M;\n\n  gzip on;\n  gzip_disable \"msie6\";\n  gzip_vary on;\n  gzip_proxied any;\n  gzip_comp_level 8;\n  gzip_buffers 16 8k;\n  gzip_http_version 1.1;\n  gzip_min_length 256;\n  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;\n\n  location / {\n      proxy_read_timeout 220s;\n      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n      proxy_set_header Host $http_host;\n      proxy_redirect off;\n      proxy_pass http://127.0.0.1:8007;\n  }\n}\n```\n\n\n* After that Use https://subdomain.yourdomain.com to view as admin and add new agents\n\n\n\n### Pure Docker\n\nIf you are not using Compose, rhen just install Docker to your host with public IP and run folowwing command:\n\n```\nmkdir -p /www/hothostdata\ndocker run -d --name=hothost-web \\\n  -v /www/hothostdata:/var/lib/hothost/data/  \\\n  --env HOTHOST_WEB_ADMIN_USERNAME=admin  \\\n  --env HOTHOST_WEB_ADMIN_PASSWORD=!!!CHANGE_ME!!!  \\\n  --env HOTHOST_WEB_PUBLIC_VIEW_ENABLED=false  \\\n  --restart=always  \\\n  --env HOTHOST_WEB_PORT=8007  \\\n  -p 8007:8007  \\\n  devforth/hothost-web\n```\n\n\n# Updating Web\n\n```\ndocker pull devforth/hothost-web:latest\n```\n\nthen recreate a contaner\n\n# Plugin development\n\nEvery plugin is a standalone .js in ESM format (with exports/imports, CommonJS with require is not supported). File should have a defined structure. Use `server/src/plugins/slack.js` for a Hello-World example. It is well documented\n\nCurrently plugin file should be placed into `server/src/plugins` directory.\n\nIf you want to bundle some dedicated node modules then you need to bundle them using webpack or other bundler which supports ESM outputs. Please see `server/src/plugins/gmail.src/gmail.src.js` - it bundels node-mailer into plugin.\n\n\n# Development\n\n\nDefault local credentials:\n- admin:123456\n\n\nFirst, start back:\n\n```\ncd server\nnpm ci\nnpm start\n```\n\nThen start front:\n\n```\ncd frontend \nnpm ci\nnpm run dev\n```\n\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevforth%2Fhothost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevforth%2Fhothost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevforth%2Fhothost/lists"}