{"id":28531106,"url":"https://github.com/lcahlander/multi-container-nginx-react-existdb","last_synced_at":"2026-02-18T09:01:52.856Z","repository":{"id":41965318,"uuid":"482356602","full_name":"lcahlander/multi-container-nginx-react-existdb","owner":"lcahlander","description":"Sample deployment of an eXist-db based application into a multiple docker container environment.","archived":false,"fork":false,"pushed_at":"2026-02-11T13:30:24.000Z","size":19341,"stargazers_count":1,"open_issues_count":35,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-11T21:45:14.800Z","etag":null,"topics":["aws","docker","exist-db","jwt","nginx","oidc","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/lcahlander.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-04-16T20:40:25.000Z","updated_at":"2024-04-29T19:03:39.000Z","dependencies_parsed_at":"2023-02-14T20:31:18.044Z","dependency_job_id":"98fc4dcf-5090-4e30-818d-d4e90548fb37","html_url":"https://github.com/lcahlander/multi-container-nginx-react-existdb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lcahlander/multi-container-nginx-react-existdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcahlander%2Fmulti-container-nginx-react-existdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcahlander%2Fmulti-container-nginx-react-existdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcahlander%2Fmulti-container-nginx-react-existdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcahlander%2Fmulti-container-nginx-react-existdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lcahlander","download_url":"https://codeload.github.com/lcahlander/multi-container-nginx-react-existdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcahlander%2Fmulti-container-nginx-react-existdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29574065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"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":["aws","docker","exist-db","jwt","nginx","oidc","reactjs"],"created_at":"2025-06-09T14:38:13.042Z","updated_at":"2026-02-18T09:01:52.840Z","avatar_url":"https://github.com/lcahlander.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# multi-container-nginx-react-existdb\n\n![eXist-db%20AWS.png](eXist-db%20AWS.png)\n\nInspired by this presentation: [My DockerCon 2020 Talk — Build \u0026 Deploy Multi-Container Application to AWS](https://medium.com/@outlier.developer/my-dockercon-2020-talk-build-deploy-multi-container-application-to-aws-af64cc5e190d)\n\n# NGINX Plus\n\n## Licensing\nObtain nginx-repo.crt and nginx-repo.key from MyF5 or get a trial here: https://www.nginx.com/free-trial-request/\n\nPlace them in the `nginx` subfolder of this repository\n\n```bash\n├── backend\n├── client\n├── db\n├── docker-compose.yml\n├── env\n├── eXist-db AWS.graffle\n├── eXist-db AWS.png\n├── .git\n├── .gitignore\n├── LICENSE\n├── nginx\n│   ├── configs\n│   ├── Dockerfile\n│   ├── Dockerfile.plus\n│   ├── nginx-repo.crt # NGINX Plus License Certificate\n│   └── nginx-repo.key # NGINX Plus License Key\n└── README.md\n```\n\n## Build and configure OpenID Connect module for Auth0\n\nFirst, get the module:\n\n```bash\ncd nginx\ngit clone https://github.com/nginxinc/nginx-openid-connect\ncd nginx-openid-connect \n```\n\nThen run the configure script to set OAuth parameters for `openid_connect_configuration.conf`\n```bash\n./configure.sh --auth_jwt_key request \\\n  --client_id \u003cAuth0_Client_ID\u003e \\\n  --pkce_enable \\\n  https://\u003cAuth0_Domain\u003e/.well-known/openid-configuration\ncp openid_connect_configuration.conf ../configs\ncd ../..\n```\n\n## Build NGINX+ image\nThis is required for now until docker-compose supports build secrets (just recently added in [this PR](https://github.com/docker/compose/pull/9386))\n```\nDOCKER_BUILDKIT=1 docker build \\\n--no-cache \\\n--secret id=nginx-key,src=nginx/nginx-repo.key \\\n--secret id=nginx-crt,src=nginx/nginx-repo.crt \\\n-t nginxplus -f nginx/Dockerfile.plus ./nginx \n```\n\n## Configuring Auth0 Settings\nIn your application settings add a new \"Allowed Callback URLs\" that is equal to https://server-fqdn/_codexch. (I used http://localhost:80/_codexch in my dev install)\n\nThen, change \"Token Endpoint Authentication Method\" to \"None\" in Auth0 for your Application. This is required for PKCE authorisation code flow.\n\n## Run compose stack\n```bash\ndocker-compose up -d\n```\n\n## Build and Install XAR\n\n1. `cd backend/xar`\n2. `mvn clean package`\n3. Open [http://localhost:8080](http://localhost:8080)\n4. Click on `login` in the upper right corner.\n5. Login as `admin` with no password\n6. Click on `Package Manager`\n7. Click on `Upload`\n8. Select the `.xar` file in *backend/xar/target*\n9. Open [http://localhost/](http://localhost/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcahlander%2Fmulti-container-nginx-react-existdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flcahlander%2Fmulti-container-nginx-react-existdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcahlander%2Fmulti-container-nginx-react-existdb/lists"}