|
6 | 6 |
|
7 | 7 | This repository provides configuration files for deploying openIMIS via Docker. This is intended to help you setup all components to quickly setup, test and evaluate the solution. |
8 | 8 |
|
9 | | -Detailed instructions are in our Wiki: [Installation Guide](https://openimis.atlassian.net/wiki/spaces/OP/pages/963182705/MO1.1+Install+the+modular+openIMIS+using+Docker) |
10 | | - |
11 | | -In case of troubles, please contact our service desk via our [ticketing platform](https://openimis.atlassian.net/servicedesk/customer). |
12 | | - |
13 | | -## Prerequisite |
14 | | - |
15 | | -* Docker installed |
16 | | - |
17 | | -## Fast lane |
18 | | - |
19 | | -You can use the script `deploy_openimis.sh` to initialise all components (uses PostgreSQL DB). |
20 | | - |
21 | | -## First startup |
22 | | - |
23 | | -* Copy `.env.example` to `.env` and make the necessary adjustments. |
24 | | -* Choose a database default system to use. The default is PostgreSQL (`DB_DEFAULT=postgresql`, `DB_PORT=5432`), but you can also use MSSQL (`DB_DEFAULT=mssql`, `DB_PORT=1433`, `ACCEPT_EULA=Y`). |
25 | | -* Uncomment the line `DEMO_DATASET=true` in `.env` to initialise the database with the DEMO dataset. If you leave it commented, an empty openIMIS database will be created. |
26 | | - |
27 | | -## OpenFN/Lightning setup |
28 | | - |
29 | | -If the implementation involves managing the social protection workflow/import, then OpenFN/Lightning must be set up with the following steps: |
30 | | - |
31 | | -* Copy `.env.lightning.example` to `.env.lightning` and make the necessary adjustments. |
32 | | -* Create the `lightning_dev` database in the database container. |
33 | | -* Build the container: `docker compose -f docker-compose.yml -f docker-compose.lightning.yml build lightning`. |
34 | | -* Run migrations: `docker compose -f docker-compose.yml -f docker-compose.lightning.yml run --rm lightning mix ecto.migrate`. |
35 | | -* Set up the IMIS demo: `docker compose -f docker-compose.yml -f docker-compose.lightning.yml run --rm lightning ./imisSetup.sh`. |
36 | | -* Start the service: `docker compose -f docker-compose.yml -f docker-compose.lightning.yml up lightning`. |
37 | | - |
38 | | -## OpenSearch/OpenSearch Dashboards setup |
39 | | - |
40 | | -Both OpenSearch and OpenSearch Dashboards are not by default enabled in dockerized instance. To make them work, it's required to: |
41 | | - |
42 | | - * Copy `.env.openSearch.example` to `.env.openSearch` and make adjustments |
43 | | - * Run container build `docker compose -f docker-compose.yml -f docker-compose.openSearch.yml build opensearch opensearch-dashboards nginx` |
44 | | - * Run service `docker compose -f docker-compose.yml -f docker-compose.openSearch.yml up opensearch opensearch-dashboards nginx` |
45 | | - |
46 | | -This build provides also additional nginx proxy server in order to handle OpenSearch Dashboard application on frontend level. |
47 | | - |
48 | | -To run on a dockerized instance of openIMIS (database, backend, and frontend), including OpenSearch, please follow the steps below: |
49 | | - |
50 | | - * Add a value for the OPENSEARCH_BASIC_TOKEN in the environment (`.env`) file. This should be based on the admin and password credentials for OpenSearch. |
51 | | - * In the `.env` file in openimis-fe_js, use the following environment variable: `ENV OPENSEARCH_PROXY_ROOT="opensearch"`. |
52 | | - * Run the backend and frontend services. |
53 | | - |
54 | | -## Run openIMIS with Docker |
55 | | - |
56 | | -You can run the docker compose commands from within `openimis-dist_dkr` folder. |
57 | | - |
58 | | -### Pull new images |
59 | | - |
60 | | -To pull new images or images update `docker-compose pull` |
61 | | - |
62 | | -### Start / Stop |
63 | | - |
64 | | -* To start or restart all docker containers: `docker-compose start` |
65 | | -* To stop all docker containers: `docker-compose stop` |
66 | | - |
67 | | -## Create LetsEncrypt certificates |
68 | | - |
69 | | -Use the certbot docker compose file. |
70 | | - |
71 | | -`export DOMAIN [domain_name]` |
72 | | - |
73 | | -### Dry run |
74 | | - |
75 | | -`docker-compose run --rm --entrypoint " certbot certonly --webroot -w /var/www/certbot --staging --register-unsafely-without-email -d ${DOMAIN} --rsa-key-size 2048 --agree-tos --force-renewal" certbot` |
76 | | - |
77 | | -### Actual setup |
78 | | - |
79 | | -`docker-compose run --rm --entrypoint " certbot certonly --webroot -w /var/www/certbot --register-unsafely-without-email -d ${DOMAIN} --rsa-key-size 2048 --agree-tos --force-renewal" certbot` |
80 | | - |
81 | | - |
82 | | -## Run integration tests |
83 | | - |
84 | | -Integration tests live in the `/cypress` folder of this repo. |
85 | | - |
86 | | -### Requirements |
87 | | - |
88 | | -Ensure npm is installed, then install the required dependencies: |
89 | | - |
90 | | -`npm install` |
91 | | - |
92 | | -### Run e2e tests against local docker containers |
93 | | - |
94 | | -Make sure all expected containers are running: `docker ps`; |
95 | | -if not, start them with `docker compose start`. Then run tests: |
96 | | - |
97 | | -Headless: `npx cypress run` |
98 | | -Headed: `npx cypress open` or `npm run cy:open` |
99 | | - |
100 | | -### Run e2e tests against any local or remote url |
101 | | - |
102 | | -This can be useful for local development or verifying a staging deployment, |
103 | | -for example, if the target host is localhost:3000, |
104 | | -pass it into the corresponding test command with `-- --config "baseUrl=http://localhost:3000"`: |
105 | | - |
106 | | -Additionally, if you are using social protection specific language pack, |
107 | | -e.g. benefit plan would be called programme, you can pass in |
108 | | -`--env useSocialProtectionLanguagePack=true` |
109 | | - |
110 | | -- Headless: `npx cypress run --config "baseUrl=http://localhost:3000" --env useSocialProtectionLanguagePack=true` |
111 | | -- Headed: `npx cypress open --config "baseUrl=http://localhost:3000" --env useSocialProtectionLanguagePack=true` |
112 | | - |
| 9 | +Detailed instructions are in our Wiki: [Installation Guide](https://openimis.atlassian.net/wiki/spaces/OP/pages/963182705/MO1.1+Install+the+modular+openIMIS+using+Docker) |
0 commit comments