{"id":37432726,"url":"https://github.com/nondeterministic/oorep","last_synced_at":"2026-01-16T06:36:39.803Z","repository":{"id":65415267,"uuid":"249192196","full_name":"nondeterministic/oorep","owner":"nondeterministic","description":"OOREP is an open online repertory for homeopathy. You can find out more info on https://www.oorep.com/.","archived":false,"fork":false,"pushed_at":"2026-01-10T10:35:55.000Z","size":32704,"stargazers_count":33,"open_issues_count":2,"forks_count":14,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-11T03:06:44.450Z","etag":null,"topics":["homeopathy","playframework","scala","scalajs"],"latest_commit_sha":null,"homepage":"https://www.oorep.com","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nondeterministic.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-22T13:44:14.000Z","updated_at":"2026-01-01T14:30:31.000Z","dependencies_parsed_at":"2026-01-06T03:01:47.659Z","dependency_job_id":null,"html_url":"https://github.com/nondeterministic/oorep","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/nondeterministic/oorep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nondeterministic%2Foorep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nondeterministic%2Foorep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nondeterministic%2Foorep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nondeterministic%2Foorep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nondeterministic","download_url":"https://codeload.github.com/nondeterministic/oorep/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nondeterministic%2Foorep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["homeopathy","playframework","scala","scalajs"],"created_at":"2026-01-16T06:36:39.694Z","updated_at":"2026-01-16T06:36:39.773Z","avatar_url":"https://github.com/nondeterministic.png","language":"Scala","readme":"![Logo](doc/logo.png \"OOREP\")\n\nOOREP is an acronym for open online repertory for homeopathy.  That is, it lets\nusers look up categories in homeopathic repertories.  This git repository\nconsists of its (mainly) Scala source code.  A running version of it, however,\ncan also be found at https://www.oorep.com/.\n\n## Current status / what's new\n\nBesides the aforementioned homepage, check out the [NEWS](NEWS) file for the\nlatest development updates. (You may want to to focus on releases marked as 'stable'.)\n\n## Running the program\n\nYou can choose between the following two different methods in order to get OOREP\nup and running on your own machine.\n\n### Method 1: By using ready-made Docker images (recommended method)\n\n#### Prerequisite\n\n* You have the commands `docker` and `docker-compose` available on your machine.\n\n#### Pull and start the Docker images from [Dockerhub](https://hub.docker.com/u/oorep)\n\nBut first, clone OOREP's source code repository from here. Afterwards change into\nthe `docker` subdirectory of your then local source code repository and execute the\nfollowing two commands one after another:\n```\n$ docker-compose pull\n$ docker-compose up\n```\nDepending on your Internet connection, those commands may take a while to complete.\nWhen all is done, you should be able to point your web browser to `http://localhost:9000`\nand see OOREP's landing page. Needless to say, those images are test-only and are not\nintended for any production environments or the like without further modifications.\n\n### Method 2: By building the project from scratch (for experts only)\n\n#### Prerequisites\n\n* Java SDK \u003e= v17\n* Scala Build Tool SBT \u003e= v1.9.7\n* A PostgreSQL database server \u003e= v11\n\nBefore executing SBT, the database (which is provided here as an SQL dump) needs\nto be up and running and PostgreSQL's pgcrypto-extension created (e.g., as\nsuperuser `postgres`, issue the command `CREATE EXTENSION pgcrypto;` on the\nOOREP-database; if you still encounter permission issues when restoring the database,\nyou may also want to try `ALTER ROLE \"\u003cyour username\u003e\" superuser;`). Also, you will\nneed to define the following environment variables:\n\n* `$OOREP_APP_PROTOCOL`: usually either `http` or `https`\n* `$OOREP_APP_HOSTNAME`: the part that follows `$OOREP_APP_PROTOCOL`,\n  such as `www`, for example, or any other hostname\n* `$OOREP_APP_DOMAIN`: your domain name, e.g., `oorep.com`, but do not set when, for\n  example, you're merely using `localhost` as hostname\n* `$OOREP_APP_PORT`: port of application server (normally `9000`), but should only be\n  set if application server is directly used (i.e., do not set when using a reverse\n  proxy!)\n* `$OOREP_APP_SECRET`: application-specific password you need to set if you run the \n  application server using `https` instead of `http` (which I don't, since I use a\n  reverse proxy that does end-to-end encryption)\n* `$OOREP_DB_NAME`: name of your PostgreSQL database; set to `oorep`, unless \n  you know better!\n* `$OOREP_DB_USER`: name of your PostgreSQL database user; set to `oorep_user`, unless\n  you know better!\n* `$OOREP_DB_PASS`: password of your PostgreSQL database; for test-environments, \n  use the one from within the `docker` directory of this repository, unless you know better!\n* `$OOREP_DB_HOST`: full hostname of DB-server (e.g., `localhost` or `db.oorep.com`)\n* `$OOREP_DB_PORT`: port of DB-server (usually `5432`)\n* `$OOREP_URL_LOGOUT`: right now only mandatory if authentication is used:\n  the URL which users must click on in order to logout of OOREP (usually your\n  logout binding of an accompanying (SAML) Service Provider)\n* `$OOREP_MAIL_SERVER`: right now only mandatory if authentication is used:\n  hostname of your SMTP server to send password reset mails (e.g., mail.server.com)\n* `$OOREP_MAIL_USER`: right now only mandatory if authentication is used:\n  username on your SMTP server\n* `$OOREP_MAIL_PASS`: right now only mandatory if authentication is used:\n  password for that username on your SMTP server\n  \nCheck `backend/conf/application.conf` for their respective use, and make other\nadjustments as you see fit there (especially if you alter the domain variable).\nAlso be sure these variables are set before attempting to execute the OOREP code\nusing SBT.\n\n#### Recommended external libraries\n\nIt is strongly recommended to also download the following external JavaScript\nlibraries and fonts:\n\n* [aos](https://github.com/michalsnik/aos) (tested with v2.3.4)\n* [bootstrap](https://getbootstrap.com/) (tested with v4.3.1)\n* [bootswatch](https://bootswatch.com/) (tested with v4.3.1)\n* [jquery](https://jquery.com/) (tested with v3.5.1)\n* [Open Iconic font](https://useiconic.com/open)\n* [Open Sans font](https://fonts.google.com/specimen/Open+Sans)\n* [Linux Libertine Display font](https://en.wikipedia.org/wiki/Linux_Libertine)\n\nFor your convenience, an archived package with the respective versions \nis available [here](http://pspace.org/a/third-party-v3.tar.gz).  It should\nbe unpacked and then placed inside `backend/public/html` within the main\nOOREP directory. (For OOREP versions \u003c 0.11, you should use\n[this file](http://pspace.org/a/third-party.tar.gz)\ninstead.)\n\n#### Compiling and running\n\nWhen you're content with your setup, OOREP, a\n[Play](https://www.playframework.com/) application written in Scala, can be run\nlike any other using SBT's targets `run` or `compile`.  Be sure, the database is\nstarted and available before though. If all went well, the result should then be\navailable at http://localhost:9000/.\n\nYou can also build a distribution package of OOREP by first executing `compile`\nand then `dist` in SBT, which will build an executable, \n`backend/target/universal/backend-x.y.z.zip`, and which can also be used to run\na stand-alone version of the application. This is also how the oorep.com-server\nis run.\n\n#### Runtime optimisations\n\nSome queries will be slow, if the database is not optimised. As this is\nwork in progress, the following is a somewhat crude approximation: It is\nadvisable to add the following (and possibly other) indexes to OOREP's\ndatabase:\n\n```\ncreate index on rubricremedy (abbrev, remedyid);\ncreate index on rubricremedy (abbrev, rubricid);\ncreate index on rubricremedy (abbrev, rubricid, remedyid);\ncreate index on remedy (nameabbrev, id);\ncreate index on rubric (abbrev, id);\n```\n\n## Making user login work\n\nSince version v0.10.0, OOREP no longer provides its own code to handle login and logout\nof users. Instead, the OOREP application expects the variable `X-Remote-User` to be set\nin the HTTP request header then containing the OOREP user-ID.  There are various ways to\nachieve  this.  In www.oorep.com SAML is used as follows: all calls to OOREP are routed\nthrough a SAML service provider which protects calls to `/login` and `/api/sec/...` by\ninvoking  a SAML identity provider. When the user enters valid  credentials to the\nidentity provider, this variable is set and passed back to OOREP's service provider.\n\nFor this to work securely, you need to make sure that, indeed, all calls to `/login` and\n`/api/sec/...` are safe-guarded by the service provider, e.g., by adding a\n`\u003cLocationMatch /(login|api/sec/.+)\u003e` directive to an Apache2 reverse-proxy (or similar - \ndepending on your setup), which passes such calls on to the service provider before they\nreach the main OOREP application server.\n\nWhile to this end www.oorep.com uses a SAML solution, other authentication protocol\nimplementations can also be used. Also, it is probably not easy to get all this to work\nwithout using the aforementioned reverse-proxy, although it is not strictly an OOREP\nrequirement.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnondeterministic%2Foorep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnondeterministic%2Foorep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnondeterministic%2Foorep/lists"}