There's a Docker image available

I made a Docker image for org-roam, which people might find useful in case they have as much difficulty as I did installing it (I use NixOS).

The image on DockerHub can be downloaded by running

docker pull jeffreybbrown/org-roam:latest

The code that built it is on Github. The README for that describes one way to use the image.

3 Likes

Could you share your x11 display screen shot?Right now l am also using Ubuntu’s docker for the org roam. But I tend to write note via ssh rather than using the x11 display. Using mere ssh seems more portable?

Using ssh sounds good! How do you do it?

Here’s a shot demonstrating that the latest version uses UTF8, hence can show characters from Spanish not available otherwise. The last line is due to tmux (it shows that I’m in the first of three windows, all of which are called “bash”) and is outside of the Docker container.

@JeffBrown I use the following Nix expressions to provide packages for org-roam and org-roam-server. If you install Emacs with NixOS these should be useful for you. Enjoy.

{ pkgs }:
let
  org-roam-src = pkgs.fetchFromGitHub {
    owner = "org-roam";
    repo = "org-roam";
    rev = "408e38f8bafe9d023941c33230ab150618166108";
    sha256 = "1fix3h87wz56v94l88cpxazfz16bhlkcb1kgrmnjr9axajjm8wqj";
    # date = 2020-06-19T18:27:14+08:00;
  };
  org-roam = pkgs.emacsPackages.melpaBuild rec {
    pname = "org-roam";
    version = "1.1.1";
    src = org-roam-src;
    recipe = pkgs.writeText "recipe" ''
      (org-roam
      :repo "org-roam/org-roam"
      :fetcher github
      :files ("org-roam-buffer.el" "org-roam-capture.el" "org-roam-compat.el"
              "org-roam-completion.el" "org-roam-dailies.el" "org-roam-db.el"
              "org-roam-dev.el" "org-roam-doctor.el" "org-roam-graph.el" "org-roam-macs.el"
              "org-roam-protocol.el" "org-roam.el"))
    '';
  };
  org-roam-server-src = pkgs.fetchFromGitHub {
    owner = "org-roam";
    repo = "org-roam-server";
    rev = "d418c632e34951d844a408ed703bb2029fdd73f2";
    sha256 = "1qjrnabkq10fa1k9r45dcdnmhavphdv100zjx4yzgwq35d0nyl2k";
    # date = 2020-06-08T18:47:21+03:00;
  };
  org-roam-server = pkgs.emacsPackages.melpaBuild rec {
    pname = "org-roam-server";
    version = "1.1.1";
    src = org-roam-server-src;
    recipe = pkgs.writeText "recipe" ''
      (org-roam-server
      :repo "matthew-piziak/org-roam-server"
      :fetcher github
      :files ("org-roam-server.el" "assets" "index.html"))
    '';
  };
in {
  org-roam-packages = [ org-roam org-roam-server ]
    ++ (with pkgs.emacsPackagesNg; [ emacsql-sqlite3 simple-httpd ]);
}
1 Like

This should be useful in CI :smiley: I use NixOS, and should really sit down to write the expressions for different versions of emacs for testing.

My all means reach out if you have questions. :slight_smile:

@matthew-piziak You don’t use a Nix overlay for Emacs? That would be good news for me, as I could not for the life of me understand overlays.

Indeed I don’t. You’re not alone in finding them confusing. I believe that for single-user configurations, overrides are better.

I explain my reasoning here: https://discourse.nixos.org/t/why-are-overlays-better-than-pkgoverrides/7052/11

1 Like