Eltm stand for External LXC Template Manager.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mael G. 2ea1fae3ae v0.1.1 2 years ago
build init 2 years ago
eltm-client v0.1.1 2 years ago
eltm-server init 2 years ago
.gitignore ignore builds 2 years ago
LICENSE init 2 years ago
README.md added requirement go-humanize 2 years ago
build.sh init 2 years ago



Eltm stand for External LXC Template Manager. It was originally designed for my personal usage as a remplacement to the Proxmox template manager (pveam) that don't allow externals sources for template and don't have template upgrading system. Everything is solved with ELTM under the GPLv3.

Functionalities :

  • Templates sources / mirrors
  • Upgrading template
  • Custom destinations

Work in Progress :

  • Deleting templates (client & server)
  • Absolute path for the template file (server)

Eltm is decomposed in 2 programs, eltm-client for the client and eltm-server for the mirror/source maintener to build the eltm.list file (that's list all packages and checksum).

The upgrade system is based on checksum difference between client & server.

Add Debian repository

Eltm is originaly created for Proxmox Virtual Environment 5+. That's a Debian based system. You can directly install the client and the server using the enPLS.org APT repository.

To add it :

echo "deb https://repos.enpls.org stable main" >> /etc/apt/sources.list.d/repos.enpls.org.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 257076CC0F90E6F5
apt update

Eltm Client

Eltm Client is the part of ELTM that is on your Proxmox or LXC server.


Install the package eltm-client and run it. It will create the config directory in ${HOME}/.config/{XDG_CONFIG_HOME}. After that add templates sources in ${HOME}/.config/maelg/eltm/mirrors.list and configure the client using config.ini in the same folder.


  • --update update mirrors.
  • --install <template_name> install the template <template_name>.
  • --upgrade upgrade templates

Eltm Server

This part is for repository mainteners.

Before all you need your own webserver like NGINX, Apache2 or Lighttpd that point to webdir in your config file (enable directory listing is recomanded).


Install the package eltm-client. Create a file in ${HOME}/.config/maelg/eltm/server.ini and add :

web = "<path to your web directory>"


  • --add <template_file_name> add the template <template_file_name> in the templates list.
  • --upgrade <template_file_name> update the template <template_file_name> in the templates list.

Warning : make sur you're in the same folder of the template file, absolute paths don't work for the moment.



  • Golang
  • gopkg.in/ini.v1
  • github.com/shibukawa/configdir
  • github.com/kyokomi/emoji
  • github.com/dustin/go-humanize


Run ./build.sh to build binaries for client & server. Binaries will be outputed in ./build/


This code is under the GNU GENERAL PUBLIC LICENSE version 3 (see LICENSE file)