{"id":18445672,"url":"https://github.com/voronenko/self-hosted-prerender","last_synced_at":"2026-03-19T04:25:50.850Z","repository":{"id":145345781,"uuid":"396728798","full_name":"Voronenko/self-hosted-prerender","owner":"Voronenko","description":null,"archived":false,"fork":false,"pushed_at":"2021-08-17T08:11:37.000Z","size":6,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-03T18:43:28.037Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","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/Voronenko.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-16T09:53:23.000Z","updated_at":"2024-07-28T15:01:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8903f2a-9812-4370-b3a6-be180ecc5a49","html_url":"https://github.com/Voronenko/self-hosted-prerender","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Voronenko/self-hosted-prerender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voronenko%2Fself-hosted-prerender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voronenko%2Fself-hosted-prerender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voronenko%2Fself-hosted-prerender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voronenko%2Fself-hosted-prerender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Voronenko","download_url":"https://codeload.github.com/Voronenko/self-hosted-prerender/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voronenko%2Fself-hosted-prerender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28808197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T07:14:39.408Z","status":"ssl_error","status_checked_at":"2026-01-27T07:14:39.098Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-06T07:06:50.550Z","updated_at":"2026-01-27T07:36:22.063Z","avatar_url":"https://github.com/Voronenko.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# self-hosted-prerender\n\nDemo repository illustrating way how dynamic web sites with extensive usage of the javascript\ncan be indexed by search engines by using helping proxy software, called \"prerender\".\n\nIt can detect search engines by the host header, and serve fully rendered html page instead,\nso that search engine could index rendered page contents.\n\n## Usage\n\nCheck how prerender image is build from `prerender` folder.\n\nBuild the demo container in the root illustrating the process.\n\nCompare output of usual page open\n\n```sh\ncurl  http://prerender.lvh.voronenko.net\n\u003chtml\u003e\n  \u003cbody\u003e\n     \u003cscript type=\"text/javascript\"\u003e\n         document.write('\u003cp\u003eThis paragraph was rendered with script\u003c/p\u003e');\n     \u003c/script\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\nIf you are running example without Traefik2 installed in your system, identical\ndirect call to running container would be\n\n```shell\ncurl -H \"Host: prerender.lvh.voronenko.net:80\"  http://localhost:5080\n```\n\nand moment, when page is get's opened with a bot\n\n```sh\ncurl -A googlebot  http://prerender.lvh.voronenko.net\n\u003chtml\u003e\u003chead\u003e\u003c/head\u003e\u003cbody\u003e\n     \u003cp\u003eThis paragraph was rendered with script\u003c/p\u003e\n\u003c/body\u003e\u003c/html\u003e\n```\n\nor, without traefik\n\n```shell\ncurl -A googlebot -H \"Host: prerender.lvh.voronenko.net:80\"  http://localhost:5080\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoronenko%2Fself-hosted-prerender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoronenko%2Fself-hosted-prerender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoronenko%2Fself-hosted-prerender/lists"}