Giter VIP home page Giter VIP logo

Comments (14)

 avatar commented on August 15, 2024 1

PR Updates

  1. The NodeJS components remain in the current repository.
  2. The Nginx component moved to it's own repository.
  3. The LogStash component moved to it's own repository.
  4. The Docker Compose component moved to it's own repository.
  5. Tagged all 4 repositories with 1.0.0-beta2.

Docker Hub Updates

  1. @jkleinsc and myself have setup automatic build for the containers whenever a new tag is pushed to Github.
  2. The tag should match the regex /^\d+\.\d+\.\d+(-[a-z]+(\d+)?)?$/. It will match regular SemVers (like 1.0.0, 1.1.1, etc) as well as pre-releases (like 1.0.0-beta, 1.0.0-beta2, etc).
  3. The images will be qualified with the same tag.
  4. The NodeJS server image can be found at hospitalrun/hospitalrun-server.
  5. The LogStash server image can be found at hospitalrun/hospitalrun-logstash.
  6. The Nginx server image can be found at hospitalrun/hospitalrun-nginx.

Please refer to the linked PRs for code changes.

Notifying @jkleinsc @tangollama @mofesola @jglovier

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor thanks for your interest in this project. If you would like to contribute a PR with Docker improvements that would be gladly welcomed!

As far as Kubernetes or Docker Swarm, we currently don't have anyone involved in the project who has experience in those environments, but we would love to eventually support more deployment options.

We do not currently have a a CI-CD pipeline setup. I think some work may have started on that but it was never finished.

from hospitalrun-server.

 avatar commented on August 15, 2024

@jkleinsc I have already submitted a PR #59 for the first part of my questions.

For the second part, I was going through how to setup automated Docker image builds out of a Github repository. Docker Hub already provides this feature. But for this to work, we might need to split the repository into multiple repositories, with each one producing a single Docker image.

For the third part, only some minor adjustments in the docker-compose.yml and a separate deployment guide would be required to deploy the server on a Docker Swarm.

What are your thoughts?

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor I think setting up automated Docker image builds would be great. If I understand it properly, I think we would need three repos:
1 - HospitalRun -- probably use this repo (hospitalrun-server)
2 - HospitalRun logstash
3 - HospitalRun nginx

It looks like the couchdb and elasticsearch containers are prebuilt containers.

from hospitalrun-server.

 avatar commented on August 15, 2024

@jkleinsc

Proposal

Assumptions

  • It is OK to store default credentials in source code.

Decomposition of Current Repository

  • hospitalrun-server
    • conf folder
    • patientimages folder? I don't know why this folder is there.
    • utils folder
    • .dockerignore
    • .eslintignore
    • Dockerfile
    • app.js
    • config-example.js
    • package.json
  • hospitalrun-logstash
    • logstash folder
  • hospitalrun-nginx
    • nginx folder
  • hospitalrun
    • docker-compose.yml
    • DEPLOYMENT_GUIDE.md

The CODE_OF_CONDUCT.md, README.md, LICENSE, .gitignore, etc. should be there in all the repos.

The other two containers (elasticsearch and couchdb) are pre-built and we only use them as is. I also checked with the elastic team whether they have a thinner version of these images. They currently do not have any. Their recommendation was to use the open source code base directly and optimize it to our needs. Currently, we can put it as out of scope for this discussion.

Why Four and not Three

  • all the images get their own repositories, clear separation, easy to manage
  • releases can be made using only updating the image versions in docker-compose.yml, clean and independent of work in other repos
  • only require minimal cloning (few files and their history), easy for deployment, no build environment needed in customer side (node, npm)
  • customisation of images are easy as well; customer can pull any of our shipped images, make necessary changes, and update the docker-compose.yml to use the custom image

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor looks good to me.

As far as patientimages, it is a directory that needs to exist for the server (patient photos are saved here); Also there should be an /attachments directory. They need to exist in the running container.

from hospitalrun-server.

 avatar commented on August 15, 2024

@jkleinsc I need some clarifications.

  • The patientimages and attachments are part of which server? Node or Nginx?
  • Are they located in the site root or file system root?

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor patientimages and attachments are part of the Node server. It needs to be able to write to those directories and serve files from those directories. They are located at site root, dictated by the value set in config.js (defaults to patientimages and attachments under the node app root directory).

from hospitalrun-server.

 avatar commented on August 15, 2024

@jkleinsc thank you. Could you also create the empty repos? I don't have write access.

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor I created the repos. For the "hospitalrun" one, use hospitalrun-deploy.

from hospitalrun-server.

 avatar commented on August 15, 2024

@jkleinsc Is there any specific reason why the logstash configuration is loaded during runtime rather than adding it to the image directly? If not, I would like to make it part of the image build process and remove the volume mounting from the docker-compose.yml.

from hospitalrun-server.

 avatar commented on August 15, 2024

I have also closed three of the PRs for safety.

from hospitalrun-server.

jkleinsc avatar jkleinsc commented on August 15, 2024

@lalluanthoor I'm not sure. I can't think of why it would need to be done one way vs the other. @mofesola might be able to explain why it was built that way.

from hospitalrun-server.

stale avatar stale commented on August 15, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from hospitalrun-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.