Publish Debian packages #1577
codyebberson
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We would like to make it easier to install and run Medplum server on Debian/Ubuntu. While publish basic instructions to build from source but (1) that requires building from source and (2) it still requires the user to do additional setup work in server config settings.
The goal is to make installing Medplum effortless. As requested by one user, "don't make me think."
One possible way to improve the Debian/Ubuntu installation would be to publish
.deb
packages. The goal state would be:And everything Just Works ™
Create packages
There are a wealth of guides on creating
.deb
packages. The Medplum package should be straightforward (famous last words), as it is just.js
and.json
files.Guides:
Publish packages in Debian official archive
This is a good long term goal. Medplum already meets all of the licensing requirements. This would be the optimal easy of installation. This would reach the maximum number of potential Debian/Ubuntu users.
Publish packages in self-hosted archive
This is the most realistic short term goal. It appears that it's mostly a matter of hosting static files plus some manifest metadata.
By using the self-hosted model, the installation process would be something like this (based on Node.js setup):
curl -fsSL https://deb.medplum.com/setup | sudo -E bash - sudo apt-get install medplum
Considerations
Node.js runtime dependency
Node.js uses a self-hosted archive at https://deb.nodesource.com/setup_18.x. Need to research how to reference that as a dependency.
Node.js package dependencies
While the Medplum package should only
.js
and.json
files, there is anpm ci
step. Need to research what are the common conventions for installing dependencies, or if the.deb
should pre-include them.Package name
medplum
vsmedplum-server
Version semantics
We currently append git hash to semver (i.e.,
2.0.4-77fe4afc
). That would need to change (doesn't sort correctly, doesn't meet Debian requirements).The semver recommended format would be:
major.minor.patch+buildNumber-gitHash
, for example2.0.4+4000-77fe4afc
. This would be compatible with Debian version requirements.See:
Alternatives
FHIR Servers
IBM LinuxForHealth FHIR Server provides instructions to "download and install": https://linuxforhealth.github.io/FHIR/guides/FHIRServerUsersGuide#2-installation
HAPI FHIR provides pointers to github repos to build and install: https://hapifhir.io/hapi-fhir/docs/server_plain/get_started.html
Other popular open source projects
Spark provides instructions to "download and install": https://cloudinfrastructureservices.co.uk/how-to-install-apache-spark-on-ubuntu-20-04/
Nextcloud provides instructions to "download and install": https://docs.nextcloud.com/server/23/admin_manual/installation/example_ubuntu.html
Mattermost provides instructions to "download and install": https://docs.mattermost.com/install/installing-ubuntu-2004-LTS.html
Jenkins uses a self-hosted Debian archive: https://www.jenkins.io/doc/book/installing/linux/
Beta Was this translation helpful? Give feedback.
All reactions