I've written several packages for GNU Emacs, but they are useless outside of my company's environment. I want to be able to share the packages with other developers from my company. I also want the packages to be easily discoverable via package-list-packages.

I think that private repository will solve my problems, but I can't find any manual on personal archives setup. As far as I understood, the Elisp info manual suggests plain directories and package-upload-file, but I don't think it plays nicely with concurrent package updates. Are there any other options that are relatively easy to setup?

  • 1
    An easy route would be to make private git repos for all your libraries and instruct others to use quelpa for installation. There wont be a nice menu around it, but discoverability is as easy as browsing the profile or org page on the git hosts. Sep 18, 2015 at 17:59
  • 1
    github.com/redguardtoo/elpa-mirror maybe this can help? I didn't really look inside.
    – wvxvw
    Sep 18, 2015 at 19:11
  • Is this really an Emacs question?
    – Drew
    Sep 18, 2015 at 21:41

3 Answers 3


Melpa's source is available, so you could just clone and run that on a server configured to be accessible from only inside your office (and not the whole internet). Your developers would have to be able to access the server, and would have to add the archive to package-archives the same way one does Melpa, Marmalade, or others. The packages would show up in package-list-packages, and would be able to be installed and updated just like any other.

  • How does that constitute a private repository? Does not seem to answer the question.
    – Drew
    Sep 18, 2015 at 21:40
  • 3
    @Drew I was assuming that the server roman-kashitsyn would use would be inside the company's firewall, not accessible from the wider internet. I've updated my answer to make this clear.
    – zck
    Sep 18, 2015 at 22:07
  • 1
    One thing I don't like about Melpa is that melpa-the-recipes is tangled with melpa-the-application in the same repository. So it could be a pain to merge bugfixes and new features into my private fork. But melpa is probably the best option to try. Sep 19, 2015 at 7:13

Sorry to answer late. I didn't see this until now, but I answered a similar question How do I set up an Elpa server? yesterday. Have a look there first.

In short, it's really very easy to set up your own local package archive with Emacs' package-x feature. My solution above is ten lines of lisp code. Setting up your own MELPA site is a lot of work in comparison. And asking your users to set up and use Quelpa is asking a lot from them. This way, they just use the standard Emacs way... as long as you do the work of setting up a web server to expose your package archive to them.



Create local Emacs package repository. Only installed packages will be included in the repository.

So no network required and your repository size will be much smaller (2M bytes after zipped for about 160 packages).

Besides, since you are packaging only local packages, you are 100% sure these packages are stable at new machine because you are using exactly same version of packages across different computers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.