Skip to content

Deploying GeneWeb

Introduction

GeneWeb is a free genealogy software with a web interface that allows you to create, manage, and share family trees online. Created by Daniel de Rauglaudre and written in OCaml, GeneWeb has been actively developed since 1997 and is one of the most mature open-source genealogy platforms available.

GeneWeb provides powerful features for genealogical research including relationship calculations, ancestor and descendant trees, birthday calendars, and advanced search capabilities. The software supports GEDCOM import and export, making it compatible with other genealogy software and services.

Key highlights of GeneWeb:

  • Web-Based Interface: Access and edit your family tree from any web browser
  • GEDCOM Support: Import from and export to the standard genealogy file format
  • Relationship Calculation: Automatically compute relationships between individuals
  • Tree Visualization: View ancestor and descendant trees in various formats
  • Multi-User Access: Share your genealogy with family members
  • Birthday Calendar: Track family birthdays and anniversaries
  • Advanced Search: Find individuals by name, date, place, or other criteria
  • Notes and Sources: Document sources and add notes to individuals
  • Multiple Databases: Manage multiple family trees on one installation
  • Multi-Language: Interface available in numerous languages
  • Open Source: Licensed under GPL

This guide walks through deploying GeneWeb on Klutch.sh using Docker, configuring persistent storage for your genealogy databases, and setting up the application for family collaboration.

Why Deploy GeneWeb on Klutch.sh

Deploying GeneWeb on Klutch.sh provides several advantages for genealogy enthusiasts:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds GeneWeb without complex orchestration. Push to GitHub, and your genealogy site deploys automatically.

Persistent Storage: Attach persistent volumes for your genealogy databases. Your family history survives container restarts and redeployments.

HTTPS by Default: Klutch.sh provides automatic SSL certificates, ensuring secure access to your family data from anywhere.

GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.

Scalable Resources: Allocate resources based on your database size and expected family access.

Custom Domains: Assign a custom domain for a family-branded genealogy portal.

Always-On Availability: Your family tree remains accessible 24/7 for relatives around the world.

Family Collaboration: Share access with family members for collaborative research.

Prerequisites

Before deploying GeneWeb on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your GeneWeb configuration
  • Basic familiarity with Docker and containerization concepts
  • (Optional) A GEDCOM file from existing genealogy software
  • (Optional) A custom domain for your GeneWeb instance

Understanding GeneWeb Architecture

GeneWeb uses a straightforward architecture:

OCaml Backend: The core application is written in OCaml, providing efficient data handling and calculation of complex genealogical relationships.

Built-in Web Server: GeneWeb includes its own web server, eliminating the need for external web server configuration.

Proprietary Database Format: GeneWeb uses its own optimized database format for fast queries, with GEDCOM serving as the interchange format.

Setup Interface: A separate setup portal allows database management and configuration.

Preparing Your Repository

To deploy GeneWeb on Klutch.sh, create a GitHub repository containing your Dockerfile.

Repository Structure

geneweb-deploy/
├── Dockerfile
├── README.md
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM jeffernz/geneweb:latest
# Set environment variables
ENV LANGUAGE=${LANGUAGE:-en}
ENV HOST_IP=0.0.0.0
# Create directories for genealogy data
RUN mkdir -p /usr/local/var/geneweb
# Expose ports
# Portal port
EXPOSE 2317
# Setup port
EXPOSE 2316
# The base image includes the default entrypoint

Advanced Dockerfile

For more control over your deployment:

FROM jeffernz/geneweb:latest
# Set language preference
ENV LANGUAGE=${LANGUAGE:-en}
# Bind to all interfaces
ENV HOST_IP=0.0.0.0
# Create data directories
RUN mkdir -p /usr/local/var/geneweb/bases \
/usr/local/var/geneweb/import \
/usr/local/var/geneweb/backup
# Set permissions
RUN chmod -R 755 /usr/local/var/geneweb
# Expose ports
EXPOSE 2316 2317

Creating the .dockerignore File

Create a .dockerignore file:

.git
.github
*.md
README.md
LICENSE
.gitignore
*.log
.DS_Store
.env
.env.local

Environment Variables Reference

VariableRequiredDefaultDescription
LANGUAGENoenInterface language (en, fr, de, etc.)
HOST_IPNo0.0.0.0IP address to bind to

Deploying GeneWeb on Klutch.sh

Once your repository is prepared, follow these steps to deploy GeneWeb:

    Prepare Your GEDCOM File (Optional)

    If you have existing genealogy data, export it as a GEDCOM file from your current software. You’ll import this after deployment.

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub:

    Terminal window
    git init
    git add Dockerfile .dockerignore README.md
    git commit -m "Initial GeneWeb deployment configuration"
    git remote add origin https://github.com/yourusername/geneweb-deploy.git
    git push -u origin main

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “geneweb” or “family-tree”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your GeneWeb Dockerfile.

    Configure HTTP Traffic

    GeneWeb serves its web interface over HTTP. In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 2317 (GeneWeb’s portal port)

    Set Environment Variables

    In the environment variables section, add:

    VariableValue
    LANGUAGEYour preferred language (e.g., en, fr, de)

    Attach Persistent Volumes

    Persistent storage is essential for your genealogy data. Add the following volumes:

    Mount PathRecommended SizePurpose
    /usr/local/var/geneweb5 GBGenealogy databases and configuration

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will:

    • Detect your Dockerfile automatically
    • Build the container image
    • Attach the persistent volumes
    • Start the GeneWeb container
    • Provision an HTTPS certificate

    Access GeneWeb

    Once deployment completes, access your GeneWeb portal at https://your-app-name.klutch.sh. You’ll see the main GeneWeb interface where you can create or access genealogy databases.

Initial Setup and Configuration

Creating a New Database

To create a new genealogy database:

  1. Access the GeneWeb setup at port 2316 (you may need to configure additional app access)
  2. Click Create a new database
  3. Enter a name for your family tree database
  4. Click Create

Importing GEDCOM Files

To import existing genealogy data:

  1. Access the setup interface
  2. Place your GEDCOM file in the import directory
  3. Use the import command to create a database from the GEDCOM
  4. Verify the import was successful

Accessing Your Family Tree

Once a database exists:

  1. Navigate to the main portal
  2. Select your database from the list
  3. Browse your family tree

Using GeneWeb

GeneWeb provides multiple navigation options:

FeatureDescription
Individual PagesDetailed view of each person
Ancestor TreeView ancestors in tree format
Descendant TreeView descendants in tree format
RelationshipCalculate relationship between two people
SearchFind individuals by various criteria

Adding New Individuals

To add people to your tree:

  1. Navigate to a related person
  2. Click the appropriate link (add parent, child, spouse)
  3. Fill in the details
  4. Save the entry

Recording Events

Document life events:

  • Birth: Date, place, notes
  • Marriage: Date, place, spouse
  • Death: Date, place, cause
  • Other Events: Baptism, graduation, etc.

Adding Sources

Document your research:

  1. Open an individual’s page
  2. Click to add notes or sources
  3. Enter source details
  4. Link sources to specific facts

Relationship Calculator

Find how people are related:

  1. Navigate to one person
  2. Click Relationship
  3. Enter the other person’s name
  4. View the relationship path

Sharing Your Genealogy

Public Access

Configure public access:

  1. Decide what information should be public
  2. Configure privacy settings for living individuals
  3. Share the URL with family

Privacy Settings

Protect living individuals:

  • Hide birth dates of living people
  • Restrict detailed information
  • Configure access levels

Exporting Data

GEDCOM Export

Export your data for backup or sharing:

  1. Access the administration interface
  2. Select the database to export
  3. Choose GEDCOM format
  4. Download the file

Backup Strategy

Protect your family history:

  1. Regular Exports: Export GEDCOM weekly
  2. Volume Backups: Back up the persistent volume
  3. Off-site Storage: Keep backups in multiple locations

Production Best Practices

Security Recommendations

  • Access Control: Configure appropriate access restrictions
  • Privacy: Protect information about living individuals
  • HTTPS: Always use HTTPS (provided by Klutch.sh)
  • Backups: Regular backups of genealogy data

Performance Tips

  • Database Size: GeneWeb handles large databases well
  • Images: Optimize photos before uploading
  • Cleanup: Periodically clean up unused entries

Troubleshooting Common Issues

Database Not Loading

Solutions:

  • Verify database files exist
  • Check file permissions
  • Review GeneWeb logs
  • Ensure volume is mounted

GEDCOM Import Errors

Solutions:

  • Validate GEDCOM file format
  • Check character encoding (UTF-8 recommended)
  • Review import logs for specific errors
  • Try importing in smaller batches

Can’t Access Setup Interface

Solutions:

  • Verify port configuration
  • Check that setup mode is enabled
  • Review container logs

Additional Resources

Conclusion

Deploying GeneWeb on Klutch.sh gives you a powerful genealogy platform with automatic builds, persistent storage, and secure HTTPS access. The combination of GeneWeb’s mature feature set and Klutch.sh’s deployment simplicity means you can focus on researching and documenting your family history rather than managing infrastructure.

With GEDCOM compatibility, relationship calculations, and web-based access, GeneWeb provides everything you need for serious genealogical research. Whether you’re just starting to document your family tree or managing generations of research, GeneWeb on Klutch.sh provides a reliable, always-available platform for preserving your family history.