{"id":19402330,"url":"https://github.com/robertdebock/mirror","last_synced_at":"2025-10-18T07:21:14.952Z","repository":{"id":90626012,"uuid":"89804936","full_name":"robertdebock/mirror","owner":"robertdebock","description":"A (Docker) application to mirror any website.","archived":false,"fork":false,"pushed_at":"2024-01-08T14:00:08.000Z","size":39,"stargazers_count":32,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-28T14:19:39.788Z","etag":null,"topics":["apache-httpd","docker","proxy","shellcheck","shellcode","travis"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertdebock.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":"2017-04-29T18:34:20.000Z","updated_at":"2025-01-19T20:13:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ee01481-2faf-4c04-b6f2-db1da58a03b1","html_url":"https://github.com/robertdebock/mirror","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robertdebock/mirror","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fmirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fmirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fmirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fmirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertdebock","download_url":"https://codeload.github.com/robertdebock/mirror/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fmirror/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274229374,"owners_count":25245188,"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-09-08T02:00:09.813Z","response_time":121,"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":["apache-httpd","docker","proxy","shellcheck","shellcode","travis"],"created_at":"2024-11-10T11:23:10.693Z","updated_at":"2025-10-18T07:21:09.926Z","avatar_url":"https://github.com/robertdebock.png","language":"Shell","readme":"# Mirror any website\n\n[![Build Status](https://travis-ci.org/robertdebock/mirror.svg?branch=master)](https://travis-ci.org/robertdebock/mirror)\n\nWith this application you can mirror any IP or URL to an existing website. This may be useful to:\n- Hook a personal domain to some service like Flickr, Wordpress, The Pirate Bay or Tumblr.\n- Allow visitors to see a website banned through regular channels.\n\n## Overview\n\n```text\n+-----------------+    +------------------+    +------------------+\n| Your computer   | -\u003e | This application | -\u003e | Existing website |\n| or The internet |    | Docker container |    | https://bla.com/ |\n+-----------------+    +------------------+    +------------------+\n```\n\n## TL;DR\n\nFor websites without a path:\n\n```bash\ndocker run -p 8443:443 -e \"URL=https://thepiratebay.org/\" robertdebock/mirror\n```\n\nNota bene: the URL ends with a /.\n\nFor websites with a path:\n\n```bash\ndocker run -p 8443:443 -e \"URL=https://www.flickr.com/photos/robertdebock\" robertdebock/mirror\n```\n\nNota bene: the URL does not end with a /.\n\n### Mandatory parameters\n\n- `-p 8443:443` - Map host (external) TCP port to the container. In this case TCP port 8443 can be accessed by visitors and it's mapped to TP port 443 inside the container. Port 80 is also available in the container, serving the same content.\n- `-e \"URL=https://www.flickr.com/photos/robertdebock\"` - Setup the (Apache) proxy to map a custom URL to https://www.flickr.com/photos/robertdebock. It's best to (try to) open the website in a browser, let all redirects take place and use the final URL. In case you'd like to mirror the homepage, ensure you end the URL with a / . Like so https://bla.com/\n\n### Optional parameters\n\n- `-v $(pwd)/data:/data` - Map the volume \"./data\" to /data. This is the place where keys and certificates are expected, with this exact naming: server.key for the SSL Key, server.crt for the SSL Certificate.\n- `-e \"DOMAIN=example.com\"` - Set the common name to \"example.com\". Used for the SSL Certificate and the Apache ServerName.\n- `--dns 8.8.8.8` - Set the DNS to 8.8.8.8 (Googles DNS). Use this to overcome DNS-blocked websites.\n\n## Where stuff is\n\n* The code is on [GitHub - mirror](https://github.com/robertdebock/mirror/).\n* Testing is done on [Travis CI - mirror](https://travis-ci.org/robertdebock/mirror/).\n* The Docker image is available [Docker Hub - mirror](https://hub.docker.com/r/robertdebock/mirror/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fmirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertdebock%2Fmirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fmirror/lists"}