{"id":21165969,"url":"https://github.com/peterdee/exchange-backend","last_synced_at":"2026-04-19T02:02:10.286Z","repository":{"id":183975967,"uuid":"671037729","full_name":"peterdee/exchange-backend","owner":"peterdee","description":"Backend application for Exchange project","archived":false,"fork":false,"pushed_at":"2025-11-04T21:12:02.000Z","size":203,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"release","last_synced_at":"2025-11-04T23:19:51.705Z","etag":null,"topics":["exchange-project","node","render","socket-io","typescript","websockets"],"latest_commit_sha":null,"homepage":"https://exchange.dyum.in","language":"TypeScript","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/peterdee.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-26T11:57:31.000Z","updated_at":"2025-06-30T14:14:30.000Z","dependencies_parsed_at":"2024-11-20T14:47:50.078Z","dependency_job_id":"a6ed18de-3eba-492b-a556-2deea8ad0072","html_url":"https://github.com/peterdee/exchange-backend","commit_stats":null,"previous_names":["peterdee/exchange-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/peterdee/exchange-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fexchange-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fexchange-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fexchange-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fexchange-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterdee","download_url":"https://codeload.github.com/peterdee/exchange-backend/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fexchange-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31991720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["exchange-project","node","render","socket-io","typescript","websockets"],"created_at":"2024-11-20T14:47:47.281Z","updated_at":"2026-04-19T02:02:10.281Z","avatar_url":"https://github.com/peterdee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## exchange-backend\n\nBackend for **Exchange** project.\n\nProduction: [https://exchange.dyum.in](https://exchange.dyum.in).\n\nWEB application repository: [https://github.com/peterdee/exchange-web](https://github.com/peterdee/exchange-web).\n\nStack: [Node](https://nodejs.org), [Socket.IO](https://socket.io), [Typescript](https://www.typescriptlang.org).\n\n### Deployment\n\nNode **v24** is required.\n\nClone the repository and install dependencies:\n\n```shell script\ncd ./exchange-backend\nnvm use 24\nnpm ci\n```\n\n### Environment variables\n\nThe `.env` file is not required, but it is going to be loaded if it is available in the project root directory.\n\nRequired environment variables are listed in [.env.example](.env.example) file.\n\nFor local development (**dev** or **local** scripts) the `.env` file should be used.\n\n### Launching\n\n##### Launching for development\n\n```shell script\nnpm run dev\n```\n\n##### Launching for production\n\n```shell script\nnpm start\n```\n\nServer will be available at [ws://localhost:9090](ws://localhost:9090).\n\n##### Local mode\n\nServer can be launched in `local` mode (specifically to be used in local networks).\n\nBefore launching the server make sure that local network allows connections on the server port (in case of Windows port should be opened in Windows Firewall).\n\nIf you are running frontend locally as well, make sure that its port is also opened.\n\nLocal mode implies that you will use internal IP addresses, so you have to use HTTPS / SSL since the frontend is also running with SSL.\n\nCreate `certificates` directory in the root of the project and open it:\n\n\n```shell script\n# ./exchange-backend\nmkdir certificates \u0026\u0026 cd ./certificates\n```\n\nGenerate certificates with OpenSSL (MacOS / Ubuntu / Windows):\n\n```shell script\n# Generate key file\nopenssl genrsa -out key.pem 2048\n\n# Generate CSR\nopenssl req -new -sha256 -key key.pem -out csr.csr\n\n# Generate certificate\nopenssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out cert.pem\n```\n\nLaunch in `local` mode:\n\n```shell script\nnpm run local\n```\n\nThis script produces QR code in the terminal, this QR can be scanned with your mobile device (for convenience) and address can be opened in the browser.\n\n### Cloud deployment\n\n`release` branch of this repository is automatically deployed to [Render](https://render.com).\n\nPublic production server is available at [https://exchange-backend-rous.onrender.com](https://exchange-backend-rous.onrender.com) and is used by default for [https://exchange.dyum.in](https://exchange.dyum.in).\n\n### License\n\n[MIT](./LICENSE.md) licence is used for the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fexchange-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterdee%2Fexchange-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fexchange-backend/lists"}