{"id":28289811,"url":"https://github.com/dillonstreator/template-node-fastify","last_synced_at":"2026-05-08T01:40:04.487Z","repository":{"id":220526992,"uuid":"751875067","full_name":"dillonstreator/template-node-fastify","owner":"dillonstreator","description":"A minimal production-ready node HTTP server with fastify and typescript","archived":false,"fork":false,"pushed_at":"2025-03-10T23:09:55.000Z","size":880,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-22T02:11:40.343Z","etag":null,"topics":["fastify","graceful-shutdown","nodejs","railway-template","starter","starter-template","typescript"],"latest_commit_sha":null,"homepage":"https://railway.app/template/xeb3TM?referralCode=ToZEjF","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dillonstreator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-02-02T14:17:52.000Z","updated_at":"2025-01-21T22:10:26.000Z","dependencies_parsed_at":"2024-09-08T21:55:00.448Z","dependency_job_id":"07f1e6b9-90ad-4694-a63c-1fcf55c8cfc5","html_url":"https://github.com/dillonstreator/template-node-fastify","commit_stats":null,"previous_names":["dillonstreator/template-node-fastify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dillonstreator/template-node-fastify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dillonstreator%2Ftemplate-node-fastify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dillonstreator%2Ftemplate-node-fastify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dillonstreator%2Ftemplate-node-fastify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dillonstreator%2Ftemplate-node-fastify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dillonstreator","download_url":"https://codeload.github.com/dillonstreator/template-node-fastify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dillonstreator%2Ftemplate-node-fastify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259594215,"owners_count":22881620,"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":["fastify","graceful-shutdown","nodejs","railway-template","starter","starter-template","typescript"],"created_at":"2025-05-22T02:11:25.636Z","updated_at":"2026-05-08T01:39:59.439Z","avatar_url":"https://github.com/dillonstreator.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `template-node-fastify`\r\n\r\nA minimal production-ready node HTTP server with [`Fastify`](https://fastify.dev/) and Typescript.\r\n\r\n✅ Typescript \\\r\n✅ Graceful shutdown \\\r\n✅ Optional Tracing with OpenTelemetry (configurable via environment variables) \\\r\n✅ Properly configured request payload size limiting to help prevent Denial of Service attack vectors \\\r\n✅ Auto-generated Swagger/OpenAPI documentation \\\r\n✅ `AbortSignal` propagation to prevent unnecessary work (includes example and test)  \\\r\n✅ Structured logging with [`pino`](https://github.com/pinojs/pino) \\\r\n✅ Rich request logging middleware including request id, trace id, context propagation, and more \\\r\n✅ [`zod`](https://github.com/turkerdev/fastify-type-provider-zod) for request validation, JSON schema inference, and OpenAPI/Swagger generation \\\r\n✅ Testing with [`tap`](https://www.npmjs.com/package/tap) and [`undici`](https://www.npmjs.com/package/undici) \\\r\n✅ [`helmet`](https://github.com/fastify/fastify-helmet) \u0026 [`compression`](https://github.com/fastify/fastify-compress)\r\n\r\n[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/xeb3TM?referralCode=ToZEjF)\r\n\r\n\r\n## Installation\r\n\r\n```sh\r\ngit clone https://github.com/dillonstreator/template-node-fastify\r\n\r\ncd template-node-fastify\r\n\r\nyarn install\r\n\r\nyarn dev\r\n```\r\n\r\n## Configuration\r\n\r\nSee all example configuration via environment variables in [`.env-example`](./.env-example)\r\n\r\n### Open Telemetry\r\n\r\nOpen Telemetry is disabled by default but can be enabled by setting the `OTEL_ENABLED` environment to `true`.\r\n\r\nBy default, the trace exporter is set to standard output. This can be overridden by setting `OTEL_EXPORTER_OTLP_ENDPOINT`.\r\n\r\nStart the `jaegertracing/all-in-one` container with `docker-compose up` and set `OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318` to collect logs in jaeger. Docker compose will expose jaeger at http://localhost:16686","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdillonstreator%2Ftemplate-node-fastify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdillonstreator%2Ftemplate-node-fastify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdillonstreator%2Ftemplate-node-fastify/lists"}