I built MapStructur as a lightweight, self-hosted web app to create interactive maps using background images and draggable markers.
It runs locally in your browser and stores everything on your own server. No tracking, no cloud. It’s useful for network planning, escape rooms, floor layouts, or anything that benefits from visual spatial organization.
MapStructur is a standalone visual map editor meant for self-hosted environments. Unlike SaaS diagram tools, it runs entirely locally (via Docker) and stores data in plain JSON.
It’s a lightweight, self-hosted visual map editor – mainly built with PHP, HTML, and vanilla JS. The Docker setup makes it easy to spin up locally or on a server.
Everything is stored per page (JSON), with draggable markers and custom background support.
If you find bugs, have ideas, or want to contribute – feel free to open issues or PRs. Always open to feedback and improvements!
This started as a tool I needed to visually plan a complex network setup across multiple buildings. Existing diagram tools felt too heavy or didn’t let me fully customize the background (e.g. actual building plans or maps).
So I built something that:
runs entirely locally (just PHP/JS, no DB needed),
supports drag-and-drop markers,
stores everything per page (as JSON),
and is easy to deploy via Docker.
Would love to hear how others might use it – and if you see room for improvement, feature requests, or cleaner architecture. Open to feedback or contributions if I make it public on GitHub.
This is very neat! However, it appears there is no way to have a "user" and an "admin" mode? As of right now, it looks like if anyone loads the page they can edit and move all the objects on the map?
How to Set Up Password Authentication with Apache2
You can protect a specific directory on your Apache web server by requiring users to log in with a username and password. This is useful for restricting access to internal tools like MapStruct, admin panels, private pages, or staging environments.
Prerequisites
Apache2 is installed and running
You have terminal (SSH) access to the server
The directory you want to protect already exists (e.g., /var/www/html/map)
When the AI comment responder gets a little carried away...
I built MapStructur as a lightweight, self-hosted web app to create interactive maps using background images and draggable markers.
It runs locally in your browser and stores everything on your own server. No tracking, no cloud. It’s useful for network planning, escape rooms, floor layouts, or anything that benefits from visual spatial organization.
Features:
Upload custom backgrounds (per page)
Drag-and-drop markers (20+ built-in icons)
Add labels, links, and save marker metadata
Page system for multiple maps
Dockerized for quick deployment
Live demo: https://itfourall.com/mapstruct.php Docker: docker pull itfourall/mapstructur
Would love feedback, bug reports, or ideas for improvement. AMA!
MapStructur is a standalone visual map editor meant for self-hosted environments. Unlike SaaS diagram tools, it runs entirely locally (via Docker) and stores data in plain JSON.
Useful for:
Network topology maps
Floor plans and logistics
Escape room design
Asset visualization on custom backgrounds
No external dependencies, no tracking, no vendor lock-in. Source code: https://github.com/IT-4-ALL/mapstructur
If you're looking for a lightweight alternative to tools like Lucidchart or Miro (but fully under your control), this might be worth exploring.
Thanks for the interest!
I’ve open-sourced the project here: GitHub: https://github.com/IT-4-ALL/mapstructur
It’s a lightweight, self-hosted visual map editor – mainly built with PHP, HTML, and vanilla JS. The Docker setup makes it easy to spin up locally or on a server.
Everything is stored per page (JSON), with draggable markers and custom background support.
If you find bugs, have ideas, or want to contribute – feel free to open issues or PRs. Always open to feedback and improvements!
Thanks for checking out MapStructur!
This started as a tool I needed to visually plan a complex network setup across multiple buildings. Existing diagram tools felt too heavy or didn’t let me fully customize the background (e.g. actual building plans or maps).
So I built something that:
runs entirely locally (just PHP/JS, no DB needed),
supports drag-and-drop markers,
stores everything per page (as JSON),
and is easy to deploy via Docker.
Would love to hear how others might use it – and if you see room for improvement, feature requests, or cleaner architecture. Open to feedback or contributions if I make it public on GitHub.
This is very neat! However, it appears there is no way to have a "user" and an "admin" mode? As of right now, it looks like if anyone loads the page they can edit and move all the objects on the map?
Is there a way to lock it down?
How to Set Up Password Authentication with Apache2 You can protect a specific directory on your Apache web server by requiring users to log in with a username and password. This is useful for restricting access to internal tools like MapStruct, admin panels, private pages, or staging environments.
Prerequisites Apache2 is installed and running
You have terminal (SSH) access to the server
The directory you want to protect already exists (e.g., /var/www/html/map)
https://www.digitalocean.com/community/tutorials/how-to-set-...
So there is no built in "public view"? How disappointing.
I will make this in next version.