{"id":18742155,"url":"https://github.com/donuts-are-good/markserv","last_synced_at":"2026-05-01T04:35:56.619Z","repository":{"id":183887490,"uuid":"670896841","full_name":"donuts-are-good/markserv","owner":"donuts-are-good","description":"server for the Markus document network","archived":false,"fork":false,"pushed_at":"2023-07-26T23:38:27.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T20:56:36.456Z","etag":null,"topics":["document","go","golang","hacktoberfest","markdown","markus","network"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-26T04:57:44.000Z","updated_at":"2023-10-05T17:39:31.000Z","dependencies_parsed_at":"2024-06-21T14:26:18.194Z","dependency_job_id":"84badf02-d0a6-40a0-b858-3181926d0232","html_url":"https://github.com/donuts-are-good/markserv","commit_stats":null,"previous_names":["donuts-are-good/markserv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fmarkserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fmarkserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fmarkserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donuts-are-good%2Fmarkserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donuts-are-good","download_url":"https://codeload.github.com/donuts-are-good/markserv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239620918,"owners_count":19669790,"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":["document","go","golang","hacktoberfest","markdown","markus","network"],"created_at":"2024-11-07T16:06:44.871Z","updated_at":"2025-11-20T21:30:17.865Z","avatar_url":"https://github.com/donuts-are-good.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![markserv](https://github.com/donuts-are-good/git-gone/assets/96031819/09c359b5-ae83-420b-b47e-828923c91bed)\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# MarkServ\n\nMarkServ is a lightweight, Markdown-focused server for the Markus document network. It's designed to be simple, performant, and compatible with any text files that use the Markdown syntax.\n\n## Installation\n\nTo install MarkServ, clone the repository and build the project:\n\n```shell\ngit clone https://github.com/donuts-are-good/markserv.git\ncd markserv\ngo build\n```\n## Usage\n\nMarkServ is configured through a `config.json` file, which should be located in the same directory as the executable. The configuration file should specify the server port, the location of the Markdown files, and the allowed file types. Here is an example configuration:\n\n```json\n{\n  \"port\": \"88\",\n  \"web\": \"/path/to/your/markdown/files\",\n  \"allowedFileTypes\": [\".md\", \".txt\", \".markdown\"]\n}\n```\nOnce the server is configured, it can be started with the following command:\n\n```shell\n./markserv\n```\nThe server will then be accessible at http://localhost:88 (or whichever port was specified in the configuration).\n## Routing\n\nThe server works by responding to `HTTP GET` requests and returning the content of the corresponding Markdown file. The Markdown files should be organized in a directory structure that matches the URL structure. For example, a request to http://localhost:88/myfile.md would correspond to a file located at `/path/to/your/markdown/files/myfile.md`.\n\nWhen a client requests a directory (like http://localhost:88/mydir/), the server will look for a file named index.md in that directory.\n\nThe server will respond with a 404 status code if the requested file does not exist, and a 400 status code if the request path contains an invalid file type or an attempt at a directory traversal attack.\n\n## Security\n\nMarkServ is designed with basic security measures to prevent unauthorized access to the server's files. It checks for and denies requests containing `\"..\"`, which could potentially be used for a directory traversal attack. It also restricts the types of files that can be served to those specified in the configuration.\n\nHowever, as with any server software, it is advisable to run MarkServ in a secured environment and to keep it up-to-date with the latest security patches.\n## Contribution\n\nIf you find a bug, have a feature request, or want to contribute to the code, please feel free to open an issue or a pull request.\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%2Fmarkserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonuts-are-good%2Fmarkserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonuts-are-good%2Fmarkserv/lists"}