{"id":32356076,"url":"https://github.com/smashedr/node-redirect","last_synced_at":"2026-07-09T18:31:40.249Z","repository":{"id":317934073,"uuid":"1068786492","full_name":"smashedr/node-redirect","owner":"smashedr","description":"Node Redirect","archived":false,"fork":false,"pushed_at":"2025-10-03T23:38:22.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-04T01:18:35.555Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/smashedr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"cssnr"}},"created_at":"2025-10-02T22:56:31.000Z","updated_at":"2025-10-03T23:38:25.000Z","dependencies_parsed_at":"2025-10-09T15:03:07.723Z","dependency_job_id":null,"html_url":"https://github.com/smashedr/node-redirect","commit_stats":null,"previous_names":["smashedr/node-redirect"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/smashedr/node-redirect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashedr%2Fnode-redirect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashedr%2Fnode-redirect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashedr%2Fnode-redirect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashedr%2Fnode-redirect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smashedr","download_url":"https://codeload.github.com/smashedr/node-redirect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashedr%2Fnode-redirect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35309827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"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":[],"created_at":"2025-10-24T11:44:47.471Z","updated_at":"2026-07-09T18:31:40.241Z","avatar_url":"https://github.com/smashedr.png","language":"JavaScript","funding_links":["https://ko-fi.com/cssnr"],"categories":[],"sub_categories":[],"readme":"[![Server Status](https://img.shields.io/website?url=https%3A%2F%2Fcssnr.com%2Fapp-health-check\u0026up_message=online\u0026down_message=offline\u0026logo=nodedotjs\u0026logoColor=white\u0026label=server)](https://cssnr.com/uptime)\n[![Image Size](https://badges.cssnr.com/ghcr/size/smashedr/node-redirect)](https://github.com/smashedr/node-redirect/pkgs/container/node-redirect)\n[![Image Latest](https://badges.cssnr.com/ghcr/tags/smashedr/node-redirect/latest)](https://github.com/smashedr/node-redirect/pkgs/container/node-redirect)\n[![Image Tags](https://badges.cssnr.com/ghcr/tags/smashedr/node-redirect)](https://github.com/smashedr/node-redirect/pkgs/container/node-redirect)\n[![GitHub Tag Major](https://img.shields.io/github/v/tag/smashedr/node-redirect?sort=semver\u0026filter=!*.*\u0026logo=git\u0026logoColor=white\u0026labelColor=585858\u0026label=%20)](https://github.com/smashedr/node-redirect/tags)\n[![GitHub Tag Minor](https://img.shields.io/github/v/tag/smashedr/node-redirect?sort=semver\u0026filter=!*.*.*\u0026logo=git\u0026logoColor=white\u0026labelColor=585858\u0026label=%20)](https://github.com/smashedr/node-redirect/releases)\n[![GitHub Release Version](https://img.shields.io/github/v/release/smashedr/node-redirect?logo=github)](https://github.com/smashedr/node-redirect/releases/latest)\n[![Deployments Swarm](https://img.shields.io/github/deployments/smashedr/node-redirect/swarm?logo=portainer\u0026logoColor=white\u0026label=swarm)](https://github.com/smashedr/node-redirect/deployments/swarm)\n[![Workflow Build](https://img.shields.io/github/actions/workflow/status/smashedr/node-redirect/build.yaml?logo=cachet\u0026label=build)](https://github.com/smashedr/node-redirect/actions/workflows/build.yaml)\n[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/smashedr/node-redirect/lint.yaml?logo=cachet\u0026label=lint)](https://github.com/smashedr/node-redirect/actions/workflows/lint.yaml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=smashedr_node-redirect\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=smashedr_node-redirect)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/smashedr/node-redirect?logo=github\u0026label=updated)](https://github.com/smashedr/node-redirect/pulse)\n[![GitHub Contributors](https://img.shields.io/github/contributors-anon/smashedr/node-redirect?logo=github)](https://github.com/smashedr/node-redirect/graphs/contributors)\n[![GitHub Repo Size](https://img.shields.io/github/repo-size/smashedr/node-redirect?logo=bookstack\u0026logoColor=white\u0026label=repo%20size)](https://github.com/smashedr/node-redirect?tab=readme-ov-file#readme)\n[![GitHub Top Language](https://img.shields.io/github/languages/top/smashedr/node-redirect?logo=htmx)](https://github.com/smashedr/node-redirect/tree/master/src)\n[![GitHub Discussions](https://img.shields.io/github/discussions/smashedr/node-redirect?logo=github)](https://github.com/smashedr/node-redirect/discussions)\n[![GitHub Forks](https://img.shields.io/github/forks/smashedr/node-redirect?style=flat\u0026logo=github)](https://github.com/smashedr/node-redirect/forks)\n[![GitHub Repo Stars](https://img.shields.io/github/stars/smashedr/node-redirect?style=flat\u0026logo=github)](https://github.com/smashedr/node-redirect/stargazers)\n[![GitHub Org Stars](https://img.shields.io/github/stars/cssnr?style=flat\u0026logo=github\u0026label=org%20stars)](https://cssnr.github.io/)\n[![Discord](https://img.shields.io/discord/899171661457293343?logo=discord\u0026logoColor=white\u0026label=discord\u0026color=7289da)](https://discord.gg/wXy6m2X8wY)\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-72a5f2?logo=kofi\u0026label=support)](https://ko-fi.com/cssnr)\n\n# Node Redirect\n\nThis is Private, how did you get here?\n\n# Developing\n\nYou can run the dev server with [Docker](#with-docker) compose or [Node](#with-node) run.\n\n### With Docker\n\nThis includes live reloads with the dev server.\n\n```shell\ndocker compose -f \"docker-compose-dev.yaml\" up --build --remove-orphans --force-recreate\n```\n\nThen visit: http://localhost/\n\nNote: this mounts the `./src` directory into the container for live reloading.\nTo use a different source path, set the `APP_FILES` environment variable.\nSee the [docker-compose-dev.yaml](docker-compose-dev.yaml) file for more details.\n\nTo use a different port set the `PORT` environment variable.\n\n```shell\nexport PORT=8080\n```\n\n### With Node\n\n```shell\nnpm i\nnpm run dev\n```\n\nThen visit: http://localhost:3000/\n\nTo use a different port set the `PORT` environment variable.\n\n```shell\nexport PORT=8080\n```\n\n# Deploying\n\nThis is ready for deployment using both [Docker](#to-docker) and [Node](#to-node).\n\n### To Docker\n\nTo deploy to a Swarm cluster using Traefik see the [docker-compose-swarm.yaml](docker-compose-swarm.yaml).\n\n### To Node\n\nThis is ready to be deployed to services like Render.\n\nThe server installs with `npm i`, starts with `npm start`, and listens on `PORT` environment variable.\n\n# Support\n\nFor general help or to request a feature, see:\n\n- Q\u0026A Discussion: https://github.com/smashedr/node-redirect/discussions/categories/q-a\n- Request a Feature: https://github.com/smashedr/node-redirect/discussions/categories/feature-requests\n\nIf you are experiencing an issue/bug or getting unexpected results, you can:\n\n- Report an Issue: https://github.com/smashedr/node-redirect/issues\n- Chat with us on Discord: https://discord.gg/wXy6m2X8wY\n- Provide General Feedback: [https://cssnr.github.io/feedback/](https://cssnr.github.io/feedback/?app=Node%20Redirect)\n\nFor more information, see the CSSNR [SUPPORT.md](https://github.com/cssnr/.github/blob/master/.github/SUPPORT.md#support).\n\n# Contributing\n\nIf you would like to submit a PR, please review the [CONTRIBUTING.md](#contributing-ov-file).\n\nPlease consider making a donation to support the development of this project\nand [additional](https://cssnr.com/) open source projects.\n\n[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/cssnr)\n\nFor a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmashedr%2Fnode-redirect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmashedr%2Fnode-redirect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmashedr%2Fnode-redirect/lists"}