{"id":13993490,"url":"https://github.com/jmarmorato/Intranet-Home-Page","last_synced_at":"2025-07-22T17:32:47.322Z","repository":{"id":39970509,"uuid":"436481010","full_name":"jmarmorato/Intranet-Home-Page","owner":"jmarmorato","description":"Intranet Home Page is a highly-configurable self-hosted browser homepage with integrations for public and local data feeds.","archived":false,"fork":false,"pushed_at":"2023-11-07T08:22:42.000Z","size":35571,"stargazers_count":67,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-10T14:13:56.040Z","etag":null,"topics":["browser","dashboard","homepage","self-hosted","web","webapp"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/jmarmorato.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}},"created_at":"2021-12-09T04:23:09.000Z","updated_at":"2024-08-06T06:53:24.000Z","dependencies_parsed_at":"2023-11-07T09:41:03.825Z","dependency_job_id":null,"html_url":"https://github.com/jmarmorato/Intranet-Home-Page","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmarmorato%2FIntranet-Home-Page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmarmorato%2FIntranet-Home-Page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmarmorato%2FIntranet-Home-Page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmarmorato%2FIntranet-Home-Page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmarmorato","download_url":"https://codeload.github.com/jmarmorato/Intranet-Home-Page/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227143695,"owners_count":17737211,"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":["browser","dashboard","homepage","self-hosted","web","webapp"],"created_at":"2024-08-09T14:02:24.218Z","updated_at":"2024-11-29T14:33:05.619Z","avatar_url":"https://github.com/jmarmorato.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# Intranet-Home-Page\n\nCreated in response to personal \"dashboards\" that are little more than pages with a list of frequently accessed links, Intranet Home Page is a personal, self-hosted **homepage** with integrations for multiple publicly-available and self-hosted data feeds.  It can display RSS feeds, your self-hosted CalDAV calendar, a random selection of images from Piwigo, and more.\n\n### What's new in Version 3.0?\n- Application now uses CAP 1.2 to retrieve weather alerts\n- Weather alert descriptions now display in a modal, as CAP 1.2 doesn't supply a description link\n- Weather alerts are filtered based on config file\n- Random image from local directory\n- Fixed bug that only allowed each card to be used once\n- Changed database handle from $conn to $db for readability\n- Updated Dockerfile to use Ubuntu 22.04 from 20.04\n\n### What's new in Version 2.1?\n- Added Docker-Compose support\n- You can set an image as the page background (thanks JDSlimz)\n\n### Darkmode\n\nTo use darkmode, append the following get query to the url: `?style=dark`\n\nExample:  `http://intranet.example.com?style=dark`\n\n### What's new in April 2022?\n- Fixed spacing issues between weather alert banners and cards\n- Filtered out weather advisories to avoid alert fatigue and cluttering the page\n- Google search suggestions autocomplete dropdown\n- Some code cleanup\n\n### Currently implemented integrations include:\n- (US) National Weather Service severe weather alerts\n- (US) National Weather Service current conditions and local forecast\n- Random image from Piwigo album\n- CalDAV calendar feed\n- Quick Links\n- Static Image\n- RSS Feed\n\nThis is a new project, and it needs a lot of work for new integrations.  Contributions are welcome!\n\n\n![Dark](https://github.com/jmarmorato/Intranet-Home-Page/raw/master/screenshots/Darkmode.PNG?raw=true)\n![Light](https://github.com/jmarmorato/Intranet-Home-Page/raw/master/screenshots/Default.PNG?raw=true)\n\n# Setup Instructions\n\n### Setup Instructions for Ubuntu (Tested on 20.04)\n\nAfter setting up a fresh Ubuntu instance, we need to install some packages.  Note that the PHP version must be 7.4 or higher.\n\n`apt install apache2 php libapache2-mod-php php-mysql php-mbstring php-xml php-curl git composer`\n\nNext we have to download the git repository\n\n`cd /var/www`\n\n`git clone https://github.com/jmarmorato/Intranet-Home-Page.git`\n\n\nUpdate Apache config to point to the installation\n\n`nano /etc/apache2/sites-enabled/000-default.conf`\n\nEdit the DocumentRoot Line to read:\n\n`DocumentRoot /var/www/Intranet-Home-Page/public`\n\nRestart Apache\n\n`service apache2 restart`\n\nDownload SabreDAV dependency\n\n```\ncd /var/www/Intranet-Home-Page/ThirdParty\ncomposer install\n```\n\nRename config.json.default to config.json\n\n```\ncd /var/www/Intranet-Home-Page\ncp config.json.default config.json\n```\n\nSet proper ownership to the web-server user\n\n```\ncd /var/www\nchown www-data:www-data -R Intranet-Home-Page/\n```\n\nNext, go to `http://\u003cserver-ip\u003e/install.php`.  There, you must provide a database and associated user account for Intranet-Home-Page to use for caching external content.\n\nOnce this is complete, the software is installed.  \n  \n# Cron\n  \nTo speed up page generation time, Intranet-Home-Page caches the results of external API calls, like calendar servers, RSS feeds, Piwigo albums, and weather alerts.  In testing, this cut page generation times from around 4 seconds to around 0.4 seconds.  When the home page is requested, this data is retrieved and returned.  The cache is refreshed using the cron.php script located in the app directory.  \nThe best way to automatically trigger this cache refresh is using Cron.\n  \n```\n*/5 * * * * cd /var/www/Intranet-Home-Page/app \u0026\u0026 php cron.php  \n```\n\n# Docker-Compose\n\nIntranet-Home-Page now comes with support for Docker-Compose.  To quickly get the application up and running, simply run:\n\n```\ndocker network create intranet\ndocker-compose up\n```\n\n# Configuration\n\n### Branding\n\nThe only branding built in at this point is the tab / window title (page_title), and the navbar title (header_text).  These can be set to whatever strings you want, however the header_text should be kept short if many drop down menus will be configured, as this can cause spacing issues.\n\n### Weather Alerts (US only at this time)\n\nThe weather alerts module uses alerts.weather.gov to pull weather alerts for your location.  To set your alert zone, first head over to https://alerts.weather.gov/index.php. Scroll down and next to your state, click on either \"Zone List\", or \"County List\".  If you live in a particularly large county, it may be split into multiple zones so you may be able to get slightly better accuracy using a zone rather than a county.  Next, locate your location, and right click the corresponding \"ATOM\" icon, and click \"Copy Clink\".  Paste this link into the \"url\" field under the \"weather_alerts\" configuration object in config.json.\n\n### Navbar\n\nThe \"navbar\" configuration object should only contain an array called \"lists\".  Each object in the \"lists\" array specifies a dropdown menu of links.\n\nA simple navbar would be configured as follows:\n```json\n{\n  \"title\" : \"Dropdown Title\",\n  \"items\" : [\n    {\"link_text\" : \"Google\", \"link_url\" : \"https://www.google.com/\"},\n    {\"link_text\" : \"Netflix\", \"link_url\" : \"https://www.netflix.com/\"}\n  ]\n}\n```\n\nYou can add a horozontal line to separate the links in the list by adding `{\"divider\" : true}` to the list of items.\n\nIntranet Home Page also supports multi-column dropdowns.  To create a multicolumn dropdown, simply replace the \"items\" array with a \"columns\" array.  The \"columns\" arrray should only contain array elements, which contain the menu items.  That would look something like this.\n\n```json\n{\n  \"title\" : \"Column 1\",\n  \"columns\" : [\n     [\n      {\"header\" : \"This is a header!\"},\n      {\"link_text\" : \"Unifi Controller\", \"link_url\"  : \"https://192.168.0.2:8443/\"},\n      {\"link_text\" : \"LibreNMS\", \"link_url\"  : \"http://192.168.9.5\"},\n      {\"divider\" : true},\n      {\"link_text\" : \"pfSense\", \"link_url\"  : \"https://192.168.0.1/\"}\n    ],\n    [\n      {\"header\" : \"Column 2\"},\n      {\"link_text\" : \"UPS\", \"link_url\"  : \"https://192.168.7.7/\"},\n      {\"divider\" : true},\n      {\"header\" : \"Cloud\"},\n      {\"link_text\" : \"Linode\", \"link_url\"  : \"https://www.linode.com/\"}\n    ]\n  ]\n}\n```\n\nTake note that I included the syntax for some headers in that example.\n\n### CalDAV Card\n\nThe configuration for most of the cards are pretty self-explanitory.  The CalDAV card follows this pattern (note, the example URL is for NextCloud, but you can use any CalDAV URL in that field):\n\n```json\n{\n  \"type\" : \"caldav\",\n  \"card_title\" : \"Upcoming Events\",\n  \"caldav_url\"  : \"http://\u003cnextcloud-ip\u003e/remote.php/dav/calendars/admin/personal/\",\n  \"username\" : \"admin\",\n  \"password\" : \"admin\",\n  \"calendars\": [\n    \"personal\"\n  ],\n  \"days_to_display\" : 10\n}\n```\n\n### Random Piwigo Image Card\n\nThe random Piwigo image card displays a random image from the specified piwigo album.  At the bottom of the card is a link to your Piwigo server (you can set the link text with \"piwigo_link_text\").\n\n```json\n{\n  \"type\" : \"piwigo\",\n  \"card_title\" : \"Random Sample\",\n  \"piwigo_url\" : \"http://\u003cpiwigo-ip\u003e\",\n  \"piwigo_link_text\" : \"Browse\",\n  \"piwigo_album_id\" : 1\n}\n```\n\n### Random Local Image Card\n\nThe random local image card displays a random image from the public/images directory.\n\n```json\n{\n  \"type\" : \"local_random_image\",\n  \"card_title\" : \"Random Sample\"\n},\n```\n\n### Quick Links\n\nThe Quick Links card displays a list of links that you may frequently want to access without clicking a dropdown first.  Use this for your most frequently accessed links.\n\n```json\n{\n  \"type\" : \"local_random_image\",\n  \"card_title\" : \"Random Sample\"\n}\n```\n\n### RSS Feed\n\nI use the RSS feed card to display a news feed.  This just displays the article title and links to the article link as specified by the RSS feed.  You should be able to use any RSS feed with this card.  The card also features a link at the bottom to location of your specification.\n\n```json\n{\n  \"type\" : \"rss\",\n  \"card_title\" : \"News\",\n  \"rss_url\" : \"https://www.cbsnews.com/latest/rss/main\",\n  \"num_items\" : 10,\n  \"card_link\" : \"https://www.cbsnews.com\",\n  \"card_link_text\" : \"View News\"\n}\n```\n\n### Image\n\nThe image card will display an image of your chosing.  I use this to display a regional radar GIF.\n\n```json\n{\n  \"type\" : \"image\",\n  \"card_title\" : \"Current Radar\",\n  \"image_url\" : \"https://radar.weather.gov/ridge/lite/NORTHEAST_loop.gif\",\n  \"image_href\" : \"https://radar.weather.gov/\"\n  \"card_link\" : \"https://forecast.weather.gov/\"\n  \"card_link_text\" : \"Local Forecast\"\n}\n```\n\"image_url\" Specifies the location for the image\n\"image_href\" Specifies where you go when you click on the image\n\"card_link\" Specifies the card link location\n\"card_link_text\" Specifies the card link text\n\n### US Weather\n\n```json\n{\n  \"type\" : \"us_weather\",\n  \"card_title\" : \"Weather\",\n  \"forecast_url\" : \"https://api.weather.gov/gridpoints/PHI/51,101/forecast\",\n  \"conditions_url\" : \"https://api.weather.gov/stations/\u003cstation-id\u003e/observations/latest\"\n}\n```\n\nSee this page for getting your forecast URL: https://www.weather.gov/documentation/services-web-api#.\n\nWhile you are on that page, begin typing your closest \"city\" in the \"Local forecast by City, st or ZIP code\" box on the top left of thge page.  Click on your location from the suggestions, and take note of the location code in the \"Current conditions at\" banner.  This will usually be a four letter code in parentheses.  Drop that into the \u003cstation-id\u003e in the example above and you should be set.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmarmorato%2FIntranet-Home-Page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmarmorato%2FIntranet-Home-Page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmarmorato%2FIntranet-Home-Page/lists"}