{"id":15176378,"url":"https://github.com/donuts-are-good/appserve","last_synced_at":"2025-10-26T11:31:24.665Z","repository":{"id":186217694,"uuid":"674836846","full_name":"donuts-are-good/appserve","owner":"donuts-are-good","description":"easy app server with automatic https","archived":false,"fork":false,"pushed_at":"2023-10-07T16:19:53.000Z","size":29,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T00:43:26.298Z","etag":null,"topics":["app","app-server","apps","go","golang","hacktoberfest","http","nginx","nginx-proxy","proxy","reverse-proxy","web"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/donuts-are-good.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-04T23:19:38.000Z","updated_at":"2023-10-05T17:33:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"0cb1340c-22ad-4e7e-98d1-ecbefac9832d","html_url":"https://github.com/donuts-are-good/appserve","commit_stats":null,"previous_names":["donuts-are-good/appserve"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fappserve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fappserve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fappserve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fappserve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donuts-are-good","download_url":"https://codeload.github.com/donuts-are-good/appserve/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238319460,"owners_count":19452340,"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":["app","app-server","apps","go","golang","hacktoberfest","http","nginx","nginx-proxy","proxy","reverse-proxy","web"],"created_at":"2024-09-27T13:03:46.259Z","updated_at":"2025-10-26T11:31:24.382Z","avatar_url":"https://github.com/donuts-are-good.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![appserve](https://github.com/donuts-are-good/appserve/assets/96031819/ca82499e-955f-4e97-9eb2-890f9e1c52d4)\n![donuts-are-good's followers](https://img.shields.io/github/followers/donuts-are-good?\u0026color=555\u0026style=for-the-badge\u0026label=followers) ![donuts-are-good's stars](https://img.shields.io/github/stars/donuts-are-good?affiliations=OWNER%2CCOLLABORATOR\u0026color=555\u0026style=for-the-badge) ![donuts-are-good's visitors](https://komarev.com/ghpvc/?username=donuts-are-good\u0026color=555555\u0026style=for-the-badge\u0026label=visitors)\n\n# appserve\n\nappserve is a reverse proxy server in go with automatic https. it routes requests based on domain to specified ports.\n\n\n## usage\n```$ ./appserve```\n\nappserve reads routes from `routes.json`.\n## interactive shell\n\nupon starting, appserve provides an interactive shell with several commands:\n\n- `list`: display all of the domain-port mappings.\n\n- `add \u003cdomain\u003e \u003cport\u003e`: add a mapping for the domain to the specified port.\n\n- `remove \u003cdomain\u003e`: remove the mapping for the specified domain.\n\n- `save`: save the routes to the current routes.json file.\n\n- `load`: load routes from the current routes.json file.\n\n- `help`: display the help menu.\n\n- `exit`: exit the application.\n\n## adding routes\n\nto add a new route via the interactive shell:\n\n```\n\u003e add example.com 9000\n```\n\nthis command routes `example.com` to port `9000`. the route is also saved to `routes.json`.\n\n## removing routes\n\nto remove an existing route:\n\n```\n\u003e remove example.com\n```\n\n## configuration\n### routes file\n\nthe routes file is a json array of domain-port pairs:\n\n```\n[\n    {\n        \"domain\": \"example1.com\",\n        \"port\": \"9000\"\n    },\n    {\n        \"domain\": \"example2.com\",\n        \"port\": \"9001\"\n    }\n]\n```\n\n### custom routes file\n\nto specify a custom routes file location at startup:\n\n```\n$ ./appserve -routes /path/to/your/routes.json\n```\n\n\n## logging\n\nappserve logs information to the system logger (syslog). ensure you have permissions to write to the syslog.\n\n\n## license\n\nmit license 2023 donuts-are-good, for more info see license.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonuts-are-good%2Fappserve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonuts-are-good%2Fappserve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonuts-are-good%2Fappserve/lists"}