{"id":16662796,"url":"https://github.com/bobymcbobs/url-redirector","last_synced_at":"2025-05-13T06:34:02.554Z","repository":{"id":44979695,"uuid":"240586222","full_name":"BobyMCbobs/url-redirector","owner":"BobyMCbobs","description":"A simple golang + yaml URL redirector","archived":false,"fork":false,"pushed_at":"2023-05-27T04:38:09.000Z","size":123,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T19:35:58.178Z","etag":null,"topics":["docker","gitlab","golang","http","kubernetes","url","url-shortener"],"latest_commit_sha":null,"homepage":"https://gitlab.com/BobyMCbobs/url-redirector","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BobyMCbobs.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":"2020-02-14T19:43:45.000Z","updated_at":"2023-01-25T03:24:14.000Z","dependencies_parsed_at":"2022-09-22T15:03:29.129Z","dependency_job_id":null,"html_url":"https://github.com/BobyMCbobs/url-redirector","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobyMCbobs%2Furl-redirector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobyMCbobs%2Furl-redirector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobyMCbobs%2Furl-redirector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BobyMCbobs%2Furl-redirector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BobyMCbobs","download_url":"https://codeload.github.com/BobyMCbobs/url-redirector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253889850,"owners_count":21979708,"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":["docker","gitlab","golang","http","kubernetes","url","url-shortener"],"created_at":"2024-10-12T10:38:56.382Z","updated_at":"2025-05-13T06:34:02.228Z","avatar_url":"https://github.com/BobyMCbobs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"http://www.gnu.org/licenses/agpl-3.0.html\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-AGPL%20v3-blue.svg\" alt=\"License\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://gitlab.com/BobyMCbobs/url-redirector/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/version-1.3.0-brightgreen.svg\" /\u003e\n\u003c/a\u003e\n\n# url-redirector\n\n\u003e A simple cloud-native golang + yaml URL redirector app\n\n## Features\n- multi-host routes\n- wildcard hosts\n- root redirects\n- wildcard paths\n- simple YAML configuration\n- restart-free configuration updating (only redeploy the ConfigMap)\n- TLS/SSL support\n- \\\u003e3MB container image\n\n## Config definitions\n\nExample of `./config.yaml`\n```yaml\n'*':\n  routes:\n    a: https://about.gitlab.com\n    b: https://github.com\n    c: https://duckduckgo.com\n  root: https://reddit.com\n  wildcard: https://github.com\n\nmyshortner1.com:\n  routes:\n    a: https://duckduckgo.com\n    b: https://reddit.com\n    c: https://github.com\n  root: https://about.gitlab.com\n  wildcard: https://github.com\n\nmyshortner2.com:\n  routes:\n    a: https://about.gitlab.com\n    b: https://duckduckgo.com\n    c: https://github.com\n  root: https://reddit.com\n  wildcard: https://github.com\n```\n\nGiven the config above, if [`https://localhost:8080/duck`](https://localhost:8080/duck) is visited, the request will redirect to [`https://duckduckgo.com`](https://duckduckgo.com). If [`https://localhost:8080`](https://localhost:8080) is visited, the request will be redirected to [`https://gitlab.com`](https://gitlab.com). If the path that doesn't exist is visited, the request will be redirected to [`https://github.com`](https://github.com).  \n\nFor more examples, check out [docs/EXAMPLES.md](docs/EXAMPLES.md)\n\n## Local usage\n```bash\ndocker run -it --rm -v \"$PWD\"/config.yaml:/app/config.yaml:z,ro -p 8080:8080 registry.gitlab.com/bobymcbobs/url-redirector:latest\n```\n\nNote: arm64 images are available as _\\*-arm64_ (e.g: _latest-arm64_, _1.4.0-arm64_, etc...)\n\n## Building\n```bash\ndocker build -t registry.gitlab.com/bobymcbobs/url-redirector:latest .\n```\n\n## Deployment in k8s\nMake sure you update the values in the yaml files\n```bash\nkubectl apply -f k8s-deployment/\n```\n\n### Notes\n- the ConfigMap can be updated at any time, give a few seconds for the patched version to be active\n\n## Environment variables\n\n| Name | Purpose | Defaults |\n| - | - | - |\n| `APP_PORT` | the port and interface which the app serves from | `:8080` |\n| `APP_PORT_TLS` | the port and interface which the app serves from | `:4433` |\n| `APP_USE_TLS` | run the app with TLS enabled | `false` |\n| `APP_TLS_PUBLIC_CERT` | the public certificate for the app to use | `server.crt` |\n| `APP_TLS_PRIVATE_CERT` | the private cert for the app to use | `server.tls` |\n| `APP_CONFIG_YAML` | the location of where the config.yaml is (for the [routes](#definitions)) | `./config.yaml` |\n| `APP_USE_LOGGING` | toggle the saving of logs | `false` |\n| `APP_LOG_FILE` | the location of where a log file will be created and written to | `./redirector.log` |\n\n## License\nCopyright 2019-2021 Caleb Woodbine.\nThis project is licensed under the [AGPL-3.0](http://www.gnu.org/licenses/agpl-3.0.html) and is [Free Software](https://www.gnu.org/philosophy/free-sw.en.html).\nThis program comes with absolutely no warranty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobymcbobs%2Furl-redirector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobymcbobs%2Furl-redirector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobymcbobs%2Furl-redirector/lists"}