Skip to content

Latest commit

 

History

History
135 lines (93 loc) · 2.72 KB

File metadata and controls

135 lines (93 loc) · 2.72 KB

Self-Hosting Livedot

Requirements


1. Create the compose file

Create a directory and add a compose.yml:

mkdir livedot && cd livedot
services:
  livedot:
    image: ghcr.io/mxvsh/livedot:latest
    restart: unless-stopped
    volumes:
      - ./data:/data
      - ./geo:/geo
    env_file:
      - .env
    networks:
      - proxy

networks:
  proxy:
    external: true

No ports are exposed to the host. Nginx Proxy Manager connects to Livedot over the shared proxy Docker network.


2. Create the .env file

NODE_ENV=production
DATABASE_PATH=/data/livedot.db

BETTER_AUTH_SECRET=your-random-secret-here
BETTER_AUTH_URL=https://livedot.yourdomain.com

DEFAULT_MAX_USER_SIGNUP=1
# Plans (ce/free/pro/max) are defined in code — self-hosted defaults to "ce" (unlimited)

Generate a secret:

openssl rand -hex 32

BETTER_AUTH_URL must match the public URL you expose — auth cookies are scoped to it.


3. Start the container

docker compose up -d

4. Create the proxy network

This network must exist before starting any containers that use it:

docker network create proxy

If Nginx Proxy Manager is already running on this network, skip this step.


5. Set up Nginx Proxy Manager

  1. Open Nginx Proxy Manager (usually at http://your-server:81)
  2. Go to Proxy HostsAdd Proxy Host
  3. Fill in:
    • Domain Names: livedot.yourdomain.com
    • Scheme: http
    • Forward Hostname / IP: livedot (the container name)
    • Forward Port: 80
    • Enable Websockets Support ← required for live map
  4. Under the SSL tab:
    • Request a Let's Encrypt certificate
    • Enable Force SSL
  5. Save

6. First run

Open https://livedot.yourdomain.com — you'll be redirected to /auth/register to create your admin account.


Updating

docker compose pull && docker compose up -d

GeoIP (optional, higher accuracy)

By default Livedot uses fast-geoip for IP → location resolution. For better accuracy, you can provide a MaxMind GeoLite2-City database:

  1. Download GeoLite2-City.mmdb from MaxMind
  2. Place it in the ./geo directory
  3. Restart the container
docker compose restart

Data

All data is stored in ./data/livedot.db (SQLite). Back this up regularly.

cp ./data/livedot.db ./data/livedot.db.bak