Getting Started with Self-Hosted Genealogy

What Is Self-Hosted Genealogy?

Self-hosted genealogy software lets you maintain your family tree on your own server instead of relying on cloud services like Ancestry.com, MyHeritage, or FamilySearch. You get full control over your family’s data, no subscription fees, and the ability to share your tree with relatives on your own terms.

Updated February 2026: Verified with latest Docker images and configurations.

The two main self-hosted options are webtrees (web-based, collaborative) and Gramps Web (web frontend for the desktop Gramps database). Both work with the GEDCOM standard — the universal format for genealogical data.

Prerequisites

  • A Linux server (even a Raspberry Pi works for small trees)
  • Docker and Docker Compose installed (guide)
  • 512 MB of free RAM (minimum)
  • 1-5 GB of disk space (depends on photos and documents)
  • Your existing family tree data (if migrating from another service)

Understanding GEDCOM

GEDCOM (Genealogical Data Communication) is the standard file format for exchanging family tree data. Every genealogy platform supports importing and exporting GEDCOM files. Key facts:

AspectDetails
File extension.ged
FormatPlain text
Current version5.5.1 (most widely used), 7.0 (newest)
What it storesIndividuals, families, events, sources, notes
What it doesn’t storePhotos, documents (only references to file paths)
SizeTypically 100 KB - 10 MB for family trees of 100-10,000 people

Important: GEDCOM files do NOT include photo files — they only reference file paths. When migrating, you’ll need to export photos separately and re-link them in your self-hosted software.

Choosing Your Platform

FeaturewebtreesGramps Web
Best ForCollaborative family trees shared with relativesPersonal research with powerful desktop tools
ArchitectureStandalone web applicationWeb frontend for Gramps desktop database
Docker SupportCommunity images (no official)Official Docker image
User ManagementBuilt-in multi-user with rolesBasic authentication
GEDCOM ImportYes (web interface)Yes (via Gramps desktop or API)
Charts & ReportsBuilt-in (pedigree, fan, timeline)Built-in (200+ report types via Gramps)
CollaborationMultiple users edit onlineSingle researcher, read-only web view
Privacy ControlsPer-record privacy settingsConfigurable living person filter
RAM Usage~200 MB~300 MB
DatabaseMySQL/MariaDBSQLite (internal)
LicenseGPL-3.0GPL-2.0

Recommendation: Choose webtrees if you want relatives to view and contribute to the tree through a web browser. Choose Gramps Web if you do most research in the Gramps desktop application and want a web view for sharing.

Quick Start: webtrees

services:
  webtrees:
    image: dtjs48jkt/webtrees:2.2.1
    container_name: webtrees
    ports:
      - "8080:80"
    environment:
      DB_TYPE: mysql
      DB_HOST: db
      DB_NAME: webtrees
      DB_USER: webtrees
      DB_PASS: ${DB_PASSWORD}
      WT_NAME: "My Family Tree"
      WT_ADMIN: admin
      WT_ADMINPW: ${ADMIN_PASSWORD}
      WT_ADMINEMAIL: [email protected]
    volumes:
      - webtrees-data:/var/www/html/data
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mariadb:11.4
    container_name: webtrees-db
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: webtrees
      MYSQL_USER: webtrees
      MYSQL_PASSWORD: ${DB_PASSWORD}
    volumes:
      - webtrees-db:/var/lib/mysql
    restart: unless-stopped

volumes:
  webtrees-data:
  webtrees-db:

After docker compose up -d, access webtrees at http://your-server:8080 and log in with your admin credentials.

Quick Start: Gramps Web

services:
  gramps-web:
    image: ghcr.io/gramps-project/grampsweb:v25.2.1
    container_name: gramps-web
    ports:
      - "5000:5000"
    environment:
      GRAMPSWEB_TREE: "My Family Tree"
      GRAMPSWEB_SECRET_KEY: "${SECRET_KEY}"
    volumes:
      - gramps-data:/root/.gramps
      - gramps-media:/app/media
    restart: unless-stopped

volumes:
  gramps-data:
  gramps-media:

After starting, access Gramps Web at http://your-server:5000. Create your first user through the registration page or import a GEDCOM file.

Migrating from Cloud Services

From Ancestry.com

  1. Log in to Ancestry.com
  2. Go to your tree → Tree Settings → Manage Your Tree
  3. Click Export Tree → download the GEDCOM file
  4. Note: Photos and documents are NOT included in the export. Download them separately from your Ancestry media gallery
  5. Import the GEDCOM into webtrees (via Admin → Trees → Import) or Gramps Web

From MyHeritage

  1. Log in to MyHeritage
  2. Go to Family Tree → Manage Trees → Export to GEDCOM
  3. Download the .ged file
  4. Export photos separately from the media section
  5. Import into your self-hosted platform

From FamilySearch

  1. Log in to FamilySearch.org
  2. Go to Family Tree → Tree and use the descendancy or pedigree view
  3. FamilySearch does not offer direct GEDCOM export of the shared tree
  4. Use a tool like FSFT (FamilySearch Family Tree) to export your portion
  5. Import the resulting GEDCOM file

Post-Migration Checklist

After importing your GEDCOM:

  • Verify the person count matches your source
  • Check that dates imported correctly (especially non-standard formats)
  • Re-upload photos and link them to the correct individuals
  • Review source citations — some formatting may need cleanup
  • Set privacy controls for living individuals
  • Test the pedigree chart to verify parent-child relationships

Practical Examples

Sharing with Family

Both platforms allow you to share your tree with relatives without giving them edit access:

  • webtrees: Create user accounts with “member” or “visitor” roles. Members can see living persons; visitors see only deceased.
  • Gramps Web: Share the URL with view-only access. Configure the living person filter to hide sensitive data.

For remote access, set up a reverse proxy with SSL. See Reverse Proxy Setup and Remote Access.

Handling Photos and Documents

Family tree photos can consume significant storage. Plan your storage:

Collection SizeEstimated Storage
100 photos500 MB - 1 GB
1,000 photos5-10 GB
10,000+ photos50+ GB

Use named volumes or bind mounts to a dedicated disk. Consider keeping original photos in a separate backup system (like Immich or PhotoPrism) and linking reduced-size copies in your genealogy software.

Common Mistakes

  1. Not exporting photos separately from GEDCOM. GEDCOM files only store text data and file path references. You must download media files independently from your cloud service.

  2. Ignoring privacy settings. By default, some platforms show all data including living persons. Configure privacy filters before sharing your tree’s URL with anyone.

  3. Using a single backup location. Family tree data is irreplaceable. Follow the 3-2-1 backup strategy: 3 copies, 2 media types, 1 offsite.

  4. Not verifying GEDCOM import completeness. Always compare person counts and spot-check a few relationships after import.

Next Steps

Comments