{"id":14989947,"url":"https://github.com/tannercollin/notica","last_synced_at":"2025-10-04T21:45:48.963Z","repository":{"id":15439171,"uuid":"77302244","full_name":"tannercollin/Notica","owner":"tannercollin","description":"Send browser notifications from your terminal. No installation. No registration.","archived":false,"fork":false,"pushed_at":"2023-01-27T13:15:20.000Z","size":862,"stargazers_count":348,"open_issues_count":9,"forks_count":22,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-26T05:10:43.280Z","etag":null,"topics":["alert","bash","bashrc","browser-notifications","command-line","curl","notifications","productivity","terminal"],"latest_commit_sha":null,"homepage":"https://notica.us","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/tannercollin.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}},"created_at":"2016-12-24T22:30:03.000Z","updated_at":"2025-05-18T03:55:43.000Z","dependencies_parsed_at":"2023-02-15T09:30:58.496Z","dependency_job_id":null,"html_url":"https://github.com/tannercollin/Notica","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tannercollin/Notica","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannercollin%2FNotica","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannercollin%2FNotica/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannercollin%2FNotica/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannercollin%2FNotica/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tannercollin","download_url":"https://codeload.github.com/tannercollin/Notica/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tannercollin%2FNotica/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278380463,"owners_count":25977216,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["alert","bash","bashrc","browser-notifications","command-line","curl","notifications","productivity","terminal"],"created_at":"2024-09-24T14:19:12.627Z","updated_at":"2025-10-04T21:45:48.943Z","avatar_url":"https://github.com/tannercollin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notica\nSend browser notifications from your terminal. No installation. No registration.\n\nhttps://notica.us/\n\n## Usage\n\nNotica is a Bash function / alias that sends a notification to a tab in your browser when it's ran:\n\n```\n$ long-running-command; notica Finished!\n```\n\nThis will wait until the first command completes before running Notica.\nThat way you can go do other things while your long task runs.\nThen you will recieve a notification on any devices that have the Notica website open.\n\n![Notification Example gif](https://i.imgur.com/476ezFy.gif)\n\n## Setup\n\nPlease follow the instructions on the Notica home page since they are generated specific to you:\n\nhttps://notica.us/\n\n## Source Code\n\n### Self-hosting\n\nHosting Notica on your own server is extremely easy.\nClone this repository, change all notica.us URLs to your own domain, and then run `yarn install \u0026\u0026 yarn start`.\n\n#### Usage\n\n```text\nUsage: yarn start [options]\n\n  Options:\n\n    -V, --version         output the version number\n    -p, --port \u003cport\u003e     Host port (3000)\n    -H, --host \u003cIP\u003e       Host IP (127.0.0.1)\n    -U, --url \u003cURL\u003e       Website URL (https://notica.us)\n    -t, --title \u003cstring\u003e  Custom title ('Notification from Notica')\n    -i, --icon \u003cpath\u003e     Custom icon (img/icon.png)\n    -h, --help            output usage information\n\n  Example:\n\n    $ yarn start -p 1234 -t 'My cool Title'\n```\n\n#### Reverse Proxy\n\nFor security, it is recommended to run Notica behind a reverse proxy as a separate non-privileged user.\n\nHere's a sample nginx reverse proxy config:\n\n```\nserver {\n    listen 80;\n    listen [::]:80;\n\n    root /var/www/html;\n    index index.html index.htm;\n\n    server_name notica.us;\n\n    location / {\n        proxy_pass http://127.0.0.1:3000/;\n        proxy_set_header Host $http_host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nAdd SSL with certbot:\n\n```\n$ sudo apt install certbot python-certbot-nginx\n$ sudo certbot --nginx\n```\n\nOr Apache:\n\n```\n\u003cVirtualHost *:80\u003e\n    ServerName notica.us\n\n    ProxyPass / http://127.0.0.1:3000/\n    ProxyPassReverse / http://127.0.0.1:3000/\n    ProxyPreserveHost On\n\n    ErrorLog ${APACHE_LOG_DIR}/notica-error.log\n    CustomLog ${APACHE_LOG_DIR}/notica-access.log combined\n\u003c/VirtualHost\u003e\n```\n\nApache SSL is left as an exercise for the reader :)\n\n#### Process Control\n\nI recommend using `supervisor` to auto-start and keep Notica running.\n\n```\n$ sudo apt install supervisor\n$ sudo adduser --disabled-login --gecos '' --shell /bin/false notica\n$ sudo chown -R notica:notica /opt/Notica\n```\n\nAdd to `/etc/supervisor/supervisord.conf` or its own file:\n\n```\n[program:notica]\nuser=notica\ndirectory=/opt/Notica\ncommand=node server.js\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/notica.log\nstderr_logfile_maxbytes=10MB\nstdout_logfile=/var/log/notica.log\nstdout_logfile_maxbytes=10MB\n```\n\n### Self-hosting with Docker\n\n#### Build\n\n```\ndocker build -t notica .\n```\n\n#### Run\n\n```\ndocker run --rm -it -p 3000:3000 notica\n```\n\n#### With Traefik Reverse Proxy\n\n```\ndocker run -d \\\n  --name notica \\\n  --restart unless-stopped \\\n  --label \"traefik.enable=true\" \\\n  --label \"traefik.frontend.rule=Host:notica.example.com\" \\\n  --label \"traefik.port=3000\" \\\n  --network traefik-network \\\n  -e TZ=Europe/London \\\nnotica\n```\n\n## License\n\nThis program is free and open-source software licensed under the MIT License. Please see the `LICENSE` file for details.\n\nThat means you have the right to study, change, and distribute the software and source code to anyone and for any purpose. You deserve these rights. Please take advantage of them because I like pull requests and would love to see this code put to use.\n\n## Acknowledgements\n\nThanks to welbert, damc-dev, scribblemaniac, and lukasmrtvy for their contributions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannercollin%2Fnotica","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftannercollin%2Fnotica","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannercollin%2Fnotica/lists"}