Самый простой, быстрый и универсальный путь такой.
Взять готовый
https://github.com/nextgis/nextgisweb
Развернуть его в докере и у вас практически всё что надо есть. Исходники тоже есть, так что можно допилить.
Теперь на счет подложки. Всё зависит от того, насколько детальная вам нужна карта и какую площадь вы ею хотите покрыть. Если небольшую площадь или не очень глубокий зумм нужен, то можно просто файловый кэш тайлов локально хранить и отдавать тупо через nginx локально.
Про массовое скачивание тайлов можно посмотреть вот этот проект
sasgis.ru
Я бы сделал получение тайлов из сети и кеширование в каком-нибудь key-value локальном сторадже. Для нужной территории сделал бы "прогрев" кэша, а саму карту либо nextgis'ом, либо сам на лифлете или аналогичных сверстал.
Кстати, точки можно и не из базы потдятгивать, а разместить в том же файловом кеше файлы с geo-json порезанные рамками тайлов уровня 8, к примеру. Ну или какой вам удобно там будет. Смотря сколько точек.