Install and run MapTiler Server on Linux

This page describes the installation of MapTiler Server on Linux-based systems.

Install MapTiler Server

  1. Get the installation package from the Server download page. We provide DEB packages for Debian-based Linux distributions (Ubuntu, Debian, Mint, …), RPM packages for RedHat-based distributions (Red Hat, Fedora, CentOS,…) and also universal AppImages.
  2. Run the installation:

    • For DEB packages, use: sudo dpkg -i maptiler-server-x.x.x.deb
    • For RPM packages, use: sudo rpm -i maptiler-server-x.x.x.rpm
    • For AppImages, first allow the package to execute in file properties. (Alternatively, run chmod u+x maptiler-server-X.X.X-linux.AppImage.) Then double-click on the package to install it.

Run directly

When installed, start MapTiler Server:

maptiler-server

This command uses the current directory to start MapTiler Server, and generates a random password for the MapTiler Server administration. The password will be printed in the command line. Copy it and use it to log in at http://localhost:3650/admin. If you change the default port via a configuration file or environment variable, the address will be http://localhost:<custom-port>/admin.

If you want to change the administration password or other settings, run maptiler-server --help to list the options.

Run as a service

Optionally, you can configure and start MapTiler Server as a systemd service, so that it keeps running on the machine even after the current user logs out:

sudo maptiler-server-servicify

This command starts a script which guides you through setting up MapTiler Server’s working directory (use absolute path), port, and administration password. Then it creates the systemd service file and starts the service.

What’s next

If you’ve just installed MapTiler Server for the first time, we recommend our Getting Started with MapTiler Server to set up map hosting and quickly test it out. You’ll also learn how to set up MapTiler Server for real production deployment at the end of the guide.


Troubleshooting

This sections helps solve the most common issues with SELinux (RHEL). We use RHEL-8.2 as the reference system here.

Issues with FUSE

MapTilerServer Linux packages use AppImage distribution format under the hood, which is based on FUSE.

If starting your server results in errors like this:

fuse: failed to exec fusermount: No such file or directory

You have to fix your FUSE setup. On reference system, this was easy to fix just with fuse install:

yum install fuse

In case you are not able to fix your FUSE setup, you can try to run the server this way

maptiler-server --appimage-extract-and-run --port=3650

Tiles rasterization

Rasterization library we use in MapTiler Server requires execheap memory access. If your server is crashing with error similar to:

swiftshader-1cba0a9c3a8a1961514ac63cd3091c1a376fe84a/src/Reactor/ExecutableMemory.cpp:352 WARNING: ASSERT(result == 0)

It means that SELinux policies are preventing MapTiler Server from using this access mode.

Like with any other SELinux issues, checking the systemd journal can be helpful:

systemctl

You will find here something like:

SELinux is preventing maptiler-server from using the execheap access on a process.

You can disable this policy with:

setsebool -P selinuxuser\_execheap 1

Or with help from utils you can create a local policy module to allow this access:

ausearch -c 'maptiler-server' --raw | audit2allow -M my-maptilerserver semodule -i my-maptilerserver.pp

As the last resort, try turning the SELinux off.