{"id":13674610,"url":"https://github.com/tomershvueli/homepage","last_synced_at":"2025-04-28T14:31:38.185Z","repository":{"id":50423936,"uuid":"67322106","full_name":"tomershvueli/homepage","owner":"tomershvueli","description":"A simple, standalone, self-hosted PHP page that is your window to your server and the web. ","archived":false,"fork":false,"pushed_at":"2021-05-09T18:11:15.000Z","size":26442,"stargazers_count":314,"open_issues_count":3,"forks_count":28,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-24T00:14:44.932Z","etag":null,"topics":["homepage","minimal","php","self-hosted"],"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/tomershvueli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"ko_fi":"tomershvueli"}},"created_at":"2016-09-04T02:44:59.000Z","updated_at":"2025-03-20T22:16:29.000Z","dependencies_parsed_at":"2022-09-13T01:37:52.930Z","dependency_job_id":null,"html_url":"https://github.com/tomershvueli/homepage","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomershvueli%2Fhomepage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomershvueli%2Fhomepage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomershvueli%2Fhomepage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomershvueli%2Fhomepage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomershvueli","download_url":"https://codeload.github.com/tomershvueli/homepage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251330307,"owners_count":21572265,"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":["homepage","minimal","php","self-hosted"],"created_at":"2024-08-02T11:00:55.055Z","updated_at":"2025-04-28T14:31:37.689Z","avatar_url":"https://github.com/tomershvueli.png","language":"JavaScript","funding_links":["https://ko-fi.com/tomershvueli","https://ko-fi.com/D1D41JRJE"],"categories":["Software","Personal Dashboards"],"sub_categories":["Personal Dashboards","Video Streaming"],"readme":"# Homepage\n\n[![Mentioned in Awesome Selfhosted](https://awesome.re/mentioned-badge.svg)](https://github.com/Kickball/awesome-selfhosted#personal-dashboards)\n\nThis project is a simple, standalone, self-hosted PHP page that is meant to be your window to your server and the web. \n\nIt is your minimalist corner of the internet. The background will update with a gorgeous (and royalty free) image from [Unsplash](https://unsplash.com/), or a custom source every 20 seconds. With it, a simple menu is available to you with your most frequented links. \n\nAll the assets needed are part of the repo so it can run offline (though it won't fetch pretty background images for you). \n\nThis project uses:\n- Apache\n- PHP and PHP cURL\n- jQuery\n- Bootstrap CSS\n- Mousetrap.js\n- Font Awesome\n- Unsplash\n\n## Screenshots\nHomepage w/o Menu:\n![Homepage w/o Menu](example_img/homepage-wo-menu.png?raw=true)\n\nHomepage with Menu Toggled:\n![Homepage with Menu](example_img/homepage-w-menu.png?raw=true)\n\n\n## To Use\nCopy the config.sample.json file and rename to config.json. Be sure to update the fields as you see appropriate. You have the option to use the Unsplash API to fetch background images, or use a custom URL and JSON selector. If you choose to use Unsplash, will need to create a developer profile at [Unsplash](https://unsplash.com/) to use the background image functionality properly. \n\n## Configure Homepage\n- `unlock_pattern` =\u003e Choose unlock pattern from [Mousetrap](https://craig.is/killing/mice)\n- `clock_format` =\u003e Choose pattern format from [PHP's date function](http://php.net/manual/en/function.date.php)\n- `hover_color` =\u003e The CSS color for menu items when hovered over. Defaults to `#999`. \n- `time_to_refresh_bg` =\u003e Time, in milliseconds, until it will fetch the next background image. Defaults to `20000`. \n- `show_menu_on_page_load` =\u003e Boolean as to whether the menu should be shown when you first load the page. Defaults to `false`.\n- `idle_timer` =\u003e Set a number of milliseconds here if you'd like to automatically hide the menu after a certain time of inactivity. Leave this attribute out entirely if you don't want an idle timer. \n- `items` =\u003e Array of objects for links to be displayed. The menu will be in a grid of 3 icons per row on desktop. Object shape: \n  - `link` =\u003e Insert any link you'd like, or {{cur}} for the current URL of the page, i.e. `{{cur}}:32400/web/`. \n  - `icon` =\u003e Icon to be displayed, choose icons from [Font Awesome](http://fontawesome.io/icons/). \n  - `img` =\u003e Image to be displayed in place of an icon. Place image in `hp_assets/img` directory. Image will be displayed in size 80px x 80px. \n  - `alt` =\u003e Value for `title` of anchor tag. \n  - `new_tab` =\u003e Optional boolean value for whether link should open in new tab or current tab. \n\n__NOTE__: PHP cURL is required for fetching external images.\n\n### Unsplash Background Images\n- `unsplash_client_id` =\u003e Get Unsplash client ID from [Unsplash](https://unsplash.com/developers)\n\n__NOTE__: There [have been reports](https://github.com/tomershvueli/homepage/issues/24#issuecomment-754450034) that applying for a Normal API upgrading from a demo API will result in Unsplash shutting down your API key entirely. I suggest sticking to the demo API key and setting the `time_to_refresh_bg` config variable to `90000`. This will ensure that you don't surpass the 50 hourly requests that Unsplash provides for demo API keys. Or feel free to use a custom background image (see below). \n\n### Custom Background Images\n- `custom_url` =\u003e Input a custom URL that will return proper JSON. Supports `{{cur}}` substitution for current URL. \n- `custom_url_headers` =\u003e Add any headers that may be needed to complete a cURL request to the aforementioned URL properly\n- `custom_url_selector` =\u003e Input a proper PHP array selector to be used on the JSON received above. For example, if I were to fetch from Github's user API with a 'custom_url' of 'https://api.github.com/users/octocat', the 'custom_url_selector' would simply be `['avatar_url']`. `[{random}]` can be replaced for a random index in an array. \n\n## Supporting\n\nIf you enjoy homepage and want to support the project, you can buy me a Ko-Fi! \n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/D1D41JRJE)\n\nOr, feel free to [contribute to homepage](CONTRIBUTING.md) by creating a PR to expand on features that you think are missing! ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomershvueli%2Fhomepage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomershvueli%2Fhomepage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomershvueli%2Fhomepage/lists"}