{"id":13770083,"url":"https://github.com/heusalagroup/hghs","last_synced_at":"2025-04-10T01:53:16.734Z","repository":{"id":51769948,"uuid":"484830590","full_name":"heusalagroup/hghs","owner":"heusalagroup","description":"Minimal Matrix HomeServer written in TypeScript","archived":false,"fork":false,"pushed_at":"2023-08-12T12:59:23.000Z","size":180,"stargazers_count":35,"open_issues_count":32,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-24T03:34:57.356Z","etag":null,"topics":["matrix","matrix-homeserver","nodejs-server","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/heusalagroup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["heusalagroup"]}},"created_at":"2022-04-23T18:48:53.000Z","updated_at":"2025-01-11T03:54:59.000Z","dependencies_parsed_at":"2024-01-06T20:58:48.049Z","dependency_job_id":"daa2d574-4f47-4dd1-a958-394ecbb1c313","html_url":"https://github.com/heusalagroup/hghs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhghs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhghs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhghs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heusalagroup%2Fhghs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heusalagroup","download_url":"https://codeload.github.com/heusalagroup/hghs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142938,"owners_count":21054671,"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":["matrix","matrix-homeserver","nodejs-server","typescript"],"created_at":"2024-08-03T17:00:34.112Z","updated_at":"2025-04-10T01:53:16.716Z","avatar_url":"https://github.com/heusalagroup.png","language":"TypeScript","funding_links":["https://github.com/sponsors/heusalagroup"],"categories":["Servers"],"sub_categories":["2016"],"readme":"# @heusalagroup/hghs\n\n*HG HomeServer* ***will be*** a zero dep [Matrix.org](https://matrix.org) HomeServer \nwritten in pure TypeScript.\n\nIt's intended for special use cases when Matrix protocol is used as a backbone \nfor custom apps. For example, we use our \n[MatrixCrudRepository](https://github.com/heusalagroup/fi.hg.matrix/blob/main/MatrixCrudRepository.ts) \nas a persistent data store for our software. It's lightweight, minimal and for the moment isn't even planned to \nsupport full Matrix spec. We might make `hghs` run on browser later; the client already does.\n\nIt compiles as a single standalone JavaScript file. The only runtime dependency \nis NodeJS. \n\nOur software is designed for scalable and fully managed serverless cloud \nenvironments, e.g. where the software must spin up fast, can run concurrently, \nand can be deployed without a downtime.\n\nAnother intended use case for `hghs` is embedded devices (e.g. OpenWRT), for \nexample.\n\nIt will only support [a subset of Matrix.org protocol](https://github.com/heusalagroup/hghs/issues/16) \nthat our software is using. However, we're happy to add more features for \ncommercial clients. \n\n### Test driven development\n\nSee [@heusalagroup/hshs-test](https://github.com/heusalagroup/hghs-test) for our \nsystem tests.\n\n### Fetching source code\n\n#### Fetching source code using SSH\n\n```shell\ngit clone git@github.com:heusalagroup/hghs.git hghs\ncd hghs\ngit submodule update --init --recursive\n```\n\n#### Fetching source code using HTTP\n\nOur code leans heavily on git submodules configured over ssh URLs. For http \naccess, you'll need to set up an override to use https instead:\n\n```shell\ngit config --global url.https://github.com/heusalagroup/.insteadOf git@github.com:heusalagroup/\n```\n\nThis will translate any use of `git@github.com:heusalagroup/REPO` to \n`https://github.com/heusalagroup/REPO`.\n\nThis setting can be removed using:\n\n```shell\ngit config --unset --global url.https://github.com/heusalagroup/.insteadOf\n```\n\n### Build docker containers\n\nThis is the easiest way to use the backend.\n\n```\ndocker-compose build\n```\n\n### Start Docker environment\n\n```\nexport BACKEND_JWT_SECRET='secretJwtString123'\nexport BACKEND_INITIAL_USERS='app:p4sSw0rd123'\ndocker-compose up\n```\n\nOnce running, services will be available:\n\n * http://localhost:8008 -- `hghs` Matrix.org Server\n\n### Start the server in development mode\n\nFIXME: This isn't working right now. Use production mode.\n\n```\nnpm start\n```\n\n### Build the server\n\n```\nnpm run build\n```\n\n### Start the server in production mode\n\n```\nnpm run start-prod\n```\n\n...and use `http://0.0.0.0:8008`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheusalagroup%2Fhghs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheusalagroup%2Fhghs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheusalagroup%2Fhghs/lists"}