{"id":44147425,"url":"https://github.com/orijtech/frontender","last_synced_at":"2026-02-09T02:36:19.510Z","repository":{"id":57588821,"uuid":"93375670","full_name":"orijtech/frontender","owner":"orijtech","description":"Setup a server frontend with HTTPS that then proxies to traffic to a backend/cluster","archived":false,"fork":false,"pushed_at":"2017-10-27T06:01:19.000Z","size":51,"stargazers_count":32,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-19T16:33:36.076Z","etag":null,"topics":["frontend-infrastructure","proxy-server"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/orijtech.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":"2017-06-05T07:10:52.000Z","updated_at":"2021-11-05T16:17:38.000Z","dependencies_parsed_at":"2022-09-10T06:51:47.666Z","dependency_job_id":null,"html_url":"https://github.com/orijtech/frontender","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/orijtech/frontender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orijtech%2Ffrontender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orijtech%2Ffrontender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orijtech%2Ffrontender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orijtech%2Ffrontender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orijtech","download_url":"https://codeload.github.com/orijtech/frontender/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orijtech%2Ffrontender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29254316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T01:52:29.835Z","status":"online","status_checked_at":"2026-02-09T02:00:09.501Z","response_time":56,"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":["frontend-infrastructure","proxy-server"],"created_at":"2026-02-09T02:36:17.898Z","updated_at":"2026-02-09T02:36:19.494Z","avatar_url":"https://github.com/orijtech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# frontender\n![](./assets/logo.png)\n\nSetup a server frontend with HTTPS that then proxies to traffic to a backend/cluster.\n\nThis project is used inside orijtech to create for folks HTTPS servers that can then be\nput in Docker images, or automatically uploaded to respective cloud storage systems\nand passed into some container engine for a disk image.\n\n## Examples:\n* Preamble with imports:\n```go\npackage frontender_test\n\nimport (\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/orijtech/frontender\"\n)\n```\n\n* Plain listen as a server:\n```go\nfunc listen() {\n\tlc, err := frontender.Listen(\u0026frontender.Request{\n\t\tDomains: []string{\n\t\t\t\"git.orijtech.com\",\n\t\t\t\"repo.orijtech.com\",\n\t\t},\n\t\tNonHTTPSRedirectURL: \"https://git.orijtech.com\",\n\n\t\tProxyAddress: \"http://localhost:9845\",\n\n\t\tNoAutoWWW: true,\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer lc.Close()\n\n\tif err := lc.Wait(); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n```\n\n* Generate the binary of the server for a platform\n```go\nfunc generateBinary() {\n\trc, err := frontender.GenerateBinary(\u0026frontender.DeployInfo{\n\t\tFrontendConfig: \u0026frontender.Request{\n\t\t\tDomains: []string{\n\t\t\t\t\"www.medisa.orijtech.com\",\n\t\t\t\t\"medisa.orijtech.com\",\n\t\t\t\t\"m.orijtech.com\",\n\t\t\t},\n\t\t\tProxyAddress: \"http://192.168.1.105:9855\",\n\t\t},\n\t\tTargetGOOS: \"linux\",\n\t\tEnviron:    []string{\"CGO_ENABLED=0\"},\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer rc.Close()\n\n\tf, err := os.Create(\"theBinary\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer f.Close()\n\n\tio.Copy(f, rc)\n}\n```\n\n* Generate a Docker image for the server\n```go\nfunc generateDockerImage() {\n\timageName, err := frontender.GenerateDockerImage(\u0026frontender.DeployInfo{\n\t\tCanonicalImageNamePrefix: \"frontender\",\n\t\tFrontendConfig: \u0026frontender.Request{\n\t\t\tDomains: []string{\n\t\t\t\t\"git.orijtech.com\",\n\t\t\t\t\"repo.orijtech.com\",\n\t\t\t},\n\t\t\tNonHTTPSRedirectURL: \"https://git.orijtech.com\",\n\n\t\t\tProxyAddress: \"http://localhost:9845\",\n\n\t\t\tNoAutoWWW: true,\n\t\t},\n\t\tImageName: \"odex-auto\",\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tlog.Printf(\"ImageName: %q\\n\", imageName)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forijtech%2Ffrontender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forijtech%2Ffrontender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forijtech%2Ffrontender/lists"}