Skip to content

lord-server/panorama

Repository files navigation

Panorama

Interactive isometric maps for Minetest

Click here to see a live instance

Installation

Note: Panorama started as our in-house mapper, and installation is non-trivial as a result. If you're not comfortable with complicated setups, check out mapserver instead!

Prerequisites

  • PostgreSQL backend for your world
  • Several gigabytes of disk space for tiles
  • A decent CPU and about a gigabyte of RAM, depending on workload
  • nodes_dump mod installed

Using Docker (recommended)

This is an easier option, especially if you already use a Docker-based setup for your server. There are pre-built Docker images that you can use, or you can build it yourself using provided Dockerfile.

Here's an example docker-compose.yml to get you started:

version: "3"
services:
  panorama:
    image: ghcr.io/lord-server/panorama:latest
    ports:
      - "33333:33333"
    volumes:
      - "/path/to/minetest/worlds/my-world:/var/lib/panorama/world"
      - "/path/to/minetest/games/minetest_game:/var/lib/panorama/game"
      - "/path/to/panorama/config.toml:/etc/panorama/config.toml"
      - "/path/to/tiles:/var/lib/panorama/tiles"
    command: ["run"]

Building manually

Building panorama manually requires go 1.21 or newer, due to its use of log/slog. Afterwards, build the module with the following commands:

go mod download && go mod verify
go build

This builds the panorama binary in ./panorama.

Configuration

An example config is provided in config.example.toml. To work correctly, panorama needs to know how to connect to the server and how to render the world. To connect, you need to specify the postgres connection using the world_dsn variable, panorama is not yet capable of doing this automatically. If you leave world_dsn empty, you might only receive empty tiles! The node descriptions are obtained from the world directory using the output from the nodes_dump mod.

The textures and meshes (only .obj currently supported) are fetched from the game and mod directories. These are specified using the game_path and mod_pathdirectories.

License

MIT