{"id":25826671,"url":"https://github.com/cjaewon/servekit","last_synced_at":"2025-10-12T09:02:01.778Z","repository":{"id":64303359,"uuid":"337348650","full_name":"cjaewon/servekit","owner":"cjaewon","description":"⚡️ Micro HTTP server for serving static files.","archived":false,"fork":false,"pushed_at":"2021-05-01T10:27:20.000Z","size":42,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-20T13:09:39.614Z","etag":null,"topics":["http","reactjs","server","static-site"],"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/cjaewon.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":"2021-02-09T09:10:53.000Z","updated_at":"2022-05-11T01:59:08.000Z","dependencies_parsed_at":"2023-01-15T10:00:59.228Z","dependency_job_id":null,"html_url":"https://github.com/cjaewon/servekit","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjaewon%2Fservekit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjaewon%2Fservekit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjaewon%2Fservekit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjaewon%2Fservekit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjaewon","download_url":"https://codeload.github.com/cjaewon/servekit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241176615,"owners_count":19922732,"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":["http","reactjs","server","static-site"],"created_at":"2025-02-28T15:44:19.080Z","updated_at":"2025-10-12T09:02:01.761Z","avatar_url":"https://github.com/cjaewon.png","language":"Go","readme":"# Servekit\n⚡️ Micro HTTP server for serving static files. \n\n## Motivation\n\u003c!-- Imagine that you have a frontend static files, backend server and nignix(reverse proxy), which are running in the Docker Container. The problem occurs at this point, how to serve static files to reverse proxy? Install 1 more nignix in frontend container, that is overkill. this is why Servekit is made. --\u003e\n\nImagine you're deploying a frontend, backend server, and an Nginx reverse proxy using Docker containers. Typically, you might encounter an issue serving static files efficiently through your reverse proxy. Adding another instance of Nginx into your frontend container solely to serve static files can feel redundant and resource-intensive. This is precisely why Servekit was created—to elegantly solve the problem of serving static files without the overhead.\n\n## Quick Start\n#### Start with local\nGrab the latest binary from the [releases page](https://github.com/cjaewon/servekit/releases)\n```sh\n./servekit # serving ./static directory\n```\n\n#### Start with Docker\n```Dockerfile\nFROM cjaewon/servekit:2.0.0\nCOPY ./static /static\n\nEXPOSE 3000\n```\n\n#### Start with docker compose\n```yml\nversion: \"3.8\"\n\nservices:\n  app:\n    image: cjaewon/servekit:2.0.0\n    volumes:\n      - ./static:/static\n    environment:\n      - SERVEKIT_SERVER_PORT: :3000\n      - SERVEKIT_SERVER_PATH: ./static\n      - SERVEKIT_SERVER_404: none\n      - SERVEKIT_SERVER_OVERVIEW: false\n```\n\n## Config\n### With config file\nYou can set a port, serving path and etc.. with config file or environment variable.\nServekit scans a `.servekit.toml` at `$HOME`, `.` Directories\n\n```toml\n### Config file sample\n[server]\n  port=\":3000\" # :3000 (default)\n  path=\"./static\" # ./static (default)\n  \n  404=\"none\" # none (default), html file\n  # if you are using client side rendering, you have to change none to index.html\n\n  overview=false # false (default), true\n  # if your are using true, directory's file list will be show\n  # and, it can only true when 404 config is \"none\"\n```\n\n### With environment variable\nwith docker, you can set environment variable like below. (A undefined config will use a default value)\n```Dockerfile\nENV SERVEKIT_SERVER_PORT :3000\nENV SERVEKIT_SERVER_PATH ./static\nENV SERVEKIT_SERVER_404 none\nENV SERVEKIT_SERVER_OVERVIEW false\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjaewon%2Fservekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjaewon%2Fservekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjaewon%2Fservekit/lists"}