From 28fc1f60f86dbf53cc928af57dc8dbd4e08af8cf Mon Sep 17 00:00:00 2001 From: Avik Datta Date: Wed, 13 Nov 2024 22:49:59 +0000 Subject: [PATCH 1/4] added installation info --- README.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c7cf9f..3719b1e 100644 --- a/README.md +++ b/README.md @@ -1 +1,80 @@ -# IGFPortal \ No newline at end of file +# IGFPortal + +IGFPortal is a web-based data management and analysis tool created by the NIHR Imperial BRC Genomics Facility. It facilitates tracking and managing genomic sequencing projects, integrating data pipelines, and visualizing results, particularly in genomics research. + +## Key Features +- **Project Management**: Track sequencing projects, sequencing runs, samplesheets and analysis metadata, improving organization and facilitate validation. +- **Pipeline Integration**: Automates genomic data processing, enabling seamless integration with bioinformatics workflows. Provides easy to use interface for triggering data pipelines. +- **Result Visualization**: Offers an intuitive interface with graphical views for data analysis results and project status. Utilises Redis caching to minimise loading analysis reports. + +## Requirements +- **Python**: Version 3.8 or higher +- **Docker**: For containerized deployments + +## Installation + +**1. Clone the Repository** + +```bash +git clone https://github.com/imperial-genomics-facility/IGFPortal.git +``` + +**2. Create an environment file** + +``` +PYTHONPATH=/container_path/IGFPortal +FLASK_APP=/container_path/IGFPortal/app/__init__.py +SQLALCHEMY_DATABASE_URI=mysql+pymysql://DBUSER:DBPASS@DB/MYSQL_DATABASE +MYSQL_ROOT_PASSWORD=MYSQL_ROOT_PASSWORD +MYSQL_DATABASE=MYSQL_DATABASE +MYSQL_USER=DBUSER +MYSQL_PASSWORD=DBPASS +BASIC_AUTH=FlowerUser:FlowerUserPass +CELERY_BROKER_URL=redis://redis_db/0 +CELERY_RESULT_BACKEND=redis://redis_db/1 +CACHE_REDIS_URL=redis://redis_db/2 +CELERY_WORK_DIR=/TMP_WORK_DIR_FOR_CELERY_WORKER +AIRFLOW_CONF_FILE=/container_path/secret/airflow_conf.json +``` + +**3. Create Nginx cconfig file** + +Copy the `nginx_template.conf` to `nginx.conf` and replace `server_name` value. + +```json +server { + # Redirect http to https + listen 80 default_server; + server_name YOUR_SERVER_NAME; + return 301 https://$server_name$request_uri; +} +``` + +**4. Build docker image** + +```bash +docker build -t imperialgenomicsfacility/igfportal:v0.0.2.1 . +``` + +**5. Update docker compose file** + +Update `docker-compose.yaml` file and add correct path for following: + + * Path of the local copy of IGFPortal repo (default is /home/vmuser/github/IGFPortal) + * Path for SSL certs (default is /home/vmuser/github/ssl) + * Path for static directory (default is ./static) + * Path for Airflow connection conf (default /home/vmuser/secrets/airflow_conf.json) + +**6. Start the server using docker compose** + +```bash + PORTAL_UID="$(id -u)" GID="$(id -g)" docker compose -f docker-compose.yaml -p igfportal up -d +``` + +**7. Access the Portal** + +Open your browser at `https://SERVER_ADDRESS` to access the IGFPortal dashboard. + +## License + +This project is licensed under the Apache-2.0 License. See the [LICENSE](LICENSE) file for details. \ No newline at end of file From 8dd2490030593e6c9b7c90c407d470d104413127 Mon Sep 17 00:00:00 2001 From: Avik Datta Date: Wed, 13 Nov 2024 22:51:14 +0000 Subject: [PATCH 2/4] minor changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3719b1e..fda6a85 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ AIRFLOW_CONF_FILE=/container_path/secret/airflow_conf.json Copy the `nginx_template.conf` to `nginx.conf` and replace `server_name` value. -```json +``` server { # Redirect http to https listen 80 default_server; From 3199f77337e398092ebc06309633a166344c3e60 Mon Sep 17 00:00:00 2001 From: Avik Datta Date: Wed, 13 Nov 2024 22:53:28 +0000 Subject: [PATCH 3/4] updates --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fda6a85..a6c0836 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,14 @@ IGFPortal is a web-based data management and analysis tool created by the NIHR I ```bash git clone https://github.com/imperial-genomics-facility/IGFPortal.git + +cd IGFPortal ``` **2. Create an environment file** +Create a new file `env` and add the following lines: + ``` PYTHONPATH=/container_path/IGFPortal FLASK_APP=/container_path/IGFPortal/app/__init__.py @@ -37,7 +41,7 @@ CELERY_WORK_DIR=/TMP_WORK_DIR_FOR_CELERY_WORKER AIRFLOW_CONF_FILE=/container_path/secret/airflow_conf.json ``` -**3. Create Nginx cconfig file** +**3. Create Nginx config file** Copy the `nginx_template.conf` to `nginx.conf` and replace `server_name` value. @@ -45,7 +49,7 @@ Copy the `nginx_template.conf` to `nginx.conf` and replace `server_name` value. server { # Redirect http to https listen 80 default_server; - server_name YOUR_SERVER_NAME; + server_name SERVER_ADDRESS; return 301 https://$server_name$request_uri; } ``` @@ -63,7 +67,7 @@ Update `docker-compose.yaml` file and add correct path for following: * Path of the local copy of IGFPortal repo (default is /home/vmuser/github/IGFPortal) * Path for SSL certs (default is /home/vmuser/github/ssl) * Path for static directory (default is ./static) - * Path for Airflow connection conf (default /home/vmuser/secrets/airflow_conf.json) + * Path for Apache Airflow connection conf (default /home/vmuser/secrets/airflow_conf.json) **6. Start the server using docker compose** From 4ff5702d2a6a890bc5cfc45a60649d407adb055c Mon Sep 17 00:00:00 2001 From: Avik Datta Date: Thu, 14 Nov 2024 00:17:40 +0000 Subject: [PATCH 4/4] only docker is required --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a6c0836..617a44e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ IGFPortal is a web-based data management and analysis tool created by the NIHR I - **Result Visualization**: Offers an intuitive interface with graphical views for data analysis results and project status. Utilises Redis caching to minimise loading analysis reports. ## Requirements -- **Python**: Version 3.8 or higher - **Docker**: For containerized deployments ## Installation