selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

facilmap logo

Self-host facilmap

v4.1.2

OpenStreetMap-based collaborative map with live editing

ReleaseOpen SourceAGPL-3.0
Updated4 months ago
LanguageTypescript
Setup difficultyModerate
MobilePWA
Stars
411
Port
8080 (HTTP server)
Docker
facilmap/facilmap
Install with Docker Compose

What is facilmap?

FacilMap is a privacy-friendly, open-source online map application built on OpenStreetMap. It lets users find places, plan trips, and create custom collaborative maps with markers, lines, and routes that multiple people can edit simultaneously through a share link. The software supports multiple map styles including roads, topography, cycling, hiking, public transport, and water navigation. It provides place search with details like opening hours, route calculation with elevation profiles, and point-of-interest display. Users can import and export geographic files in GPX, KML, OSM, and GeoJSON formats, embed maps on websites, define custom marker types with form fields, create filtered views, and export data to CSV or HTML. The server exposes a Socket.io API for programmatic access. It runs as a Node.js application with a database backend (MySQL/MariaDB recommended, PostgreSQL with PostGIS, SQLite, or MSSQL supported) and is available as a Docker image, NPM package, or from source. The interface is smartphone-friendly and works as a Progressive Web App.

Should you self-host facilmap?

facilmap scores 52/100 on selfhost.directory (how scoring works) and ranks #5 of 9 in Mapping & GPS. It has 411 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is God's Eye View (83/100, 60 810 stars). It scores higher overall, so compare the two before you pick. See facilmap vs God's Eye View side by side.

Features

  • Collaborative maps with live editing
  • Custom marker types and form fields
  • Custom styling and legends
  • Custom views and filters
  • Data export to CSV/HTML
  • GPX/KML/GeoJSON import and export
  • Map embedding
  • Multiple map styles
  • Place search with details
  • POI display
  • Progressive Web App
  • Route calculation with elevation
  • Socket.io API

facilmap README

How to install facilmap

Install facilmap with Docker Compose

Docker and Docker Compose
Environment variables
USER_AGENT, TRUST_PROXY, DB_TYPE, DB_HOST, DB_NAME, DB_USER, DB_PASSWORD, ORS_TOKEN, MAPBOX_TOKEN, MAXMIND_USER_ID, MAXMIND_LICENSE_KEY, LIMA_LABS_TOKEN, THUNDERFOREST_TOKEN, TRACESTRACK_TOKEN, HIDE_COMMERCIAL_MAP_LINKS, CUSTOM_CSS_FILE, NOMINATIM_URL, OPEN_ELEVATION_URL, OPEN_ELEVATION_THROTTLE_MS, OPEN_ELEVATION_MAX_BATCH_SIZE, DONATE_URL

services: facilmap: image: facilmap/facilmap ports: - 8080:8080 links: - mariadb depends_on: mariadb: condition: service_healthy environment: USER_AGENT: My FacilMap (https://facilmap.example.org/, facilmap@example.org) TRUST_PROXY: "true" DB_TYPE: mysql DB_HOST: mariadb DB_NAME: facilmap DB_USER: facilmap DB_PASSWORD: password ORS_TOKEN: # Get an API key on https://go.openrouteservice.org/ (needed for routing) MAPBOX_TOKEN: # Get an API key on https://www.mapbox.com/signup/ (needed for routing) MAXMIND_USER_ID: # Sign up here https://www.maxmind.com/en/geolite2/signup (needed for geoip lookup to show initial map state) MAXMIND_LICENSE_KEY: LIMA_LABS_TOKEN: # Get an API key on https://maps.lima-labs.com/ (optional, needed for double-resolution tiles) volumes: - ./cache:/opt/facilmap/cache restart: always mariadb: image: mariadb environment: MYSQL_DATABASE: facilmap MYSQL_USER: facilmap MYSQL_PASSWORD: password MYSQL_RANDOM_ROOT_PASSWORD: "true" command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci healthcheck: test: healthcheck.sh --su-mysql --connect --innodb_initialized restart: always

Includes MariaDB database with proper UTF-8 configuration

facilmap releases & version history

More in Navigation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…