Changes

Created page with "[https://www.webtrees.net webtrees] is a pretty cool opensource genealogy web server. It allows you to setup a website to display your family history. You can use [https://w..."
[https://www.webtrees.net webtrees] is a pretty cool opensource genealogy web server. It allows you to setup a website to display your family history. You can use [https://www.webtrees.net webtrees] to create your family tree or import a family tree from popular services like [https://www.ancestry.com/ Ancestry.com] and [https://www.myheritageimages.com/ MyHeritage.com].

This article describes how I setup a webtrees server on a [https://www.debian.org/ Debian] 9 based [https://linuxcontainers.org/ Linux Container (LXC)] under [https://www.proxmox.com/en/ Proxmox] and made the page available on the internet using an [https://httpd.apache.org/ Apache2] [https://en.wikipedia.org/wiki/Reverse_proxy Reverse Proxy]

#Using the Proxmox web interface, create a new Container using the Debian 9 template.
##Log into the container, with the root account, using the Proxmox web console
##Update, Upgrade, and Install a few packages
###run ''apt update''
###run ''apt upgrade''
###run ''apt install sudo unzip''
##Update the timezone
###run ''timedatectl set-timezone America/New_York''
###*change ''America/New_York'' to a location relevant to your physical location using the "TZ database name" in this [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones table]
##Add a user and give them sudo access
###useradd admin
###usermod -aG sudo admin
##Exit the web console and ssh in as the admin user
#Setup a [https://mariadb.org/ MariaDB] database
##install the necessary packages, secure the installation, and log into the mysql database
###run ''sudo apt install mariadb-server mariadb-client''
###run ''sudo mysql_secure_installation''
####The current root password is blank
####Create a new root password
####Answer Yes to all questions
###run ''sudo mysql'' to login as root
##Create a database and user for webtrees
###run ''CREATE DATABASE webtreesDB;''
###run ''GRANT ALL PRIVILEGES ON webtreesDB.* TO 'webtrees'@'localhost' IDENTIFIED BY 'webtreespassword';''
###run ''FLUSH PRIVILEGES;''
###run ''exit''
#Setup an [https://httpd.apache.org/ Apache2] webserver
##run ''sudo apt install apache2''
##check http://<containername>/ and you should see the default Apache2 server page
#Setup [https://www.php.net/ PHP]7
##run ''sudo apt install php libapache2-mod-php php-mysql php-apcu php-xml php-gd''
##run ''systemctl restart apache2''
##run ''sudo nano /var/www/html/info.php'' and type the following in. The save and exit nano.
<nowiki><?php
phpinfo();
?></nowiki>
##go to ''http://<containername>/info.php and you should see the default PHP info page
##run ''sudo rm /var/www/html/info.php
#Setup webtrees
##run ''cd /var/www/html''
##run ''sudo wget https://github.com/fisharebest/webtrees/releases/download/1.7.13/webtrees-1.7.13.zip''
##*You can change the version number at the end of the above command to reflect the latest stable release available at https://github.com/fisharebest/webtrees/releases
##run ''sudo unzip webtrees-1.7.13.zip''
##run ''sudo rm webtrees-1.7.13.zip''
##visit http://containername/webtrees/ to finish the setup
###fix any server configuration or server capacity problems (there shouldn't be any if the above packages were installed)
###for the database login info enter ''webtrees'' as the user and ''webtreespassword'' as the password
###for the database name enter ''webtreesDB''
###you can leave the table prefix name ''<blank>'' since this is a container and you probably shouldn't be sharing the database with other webtrees installations
###Enter your name, select a username, select a password, and select an email for the next sections.
###Sign in to Webtrees using the username and password you just picked out
###Create a new family tree named something like "Conan the Barbarian Family Tree"
###Give it a short name like "conan"
###Under ''Website preferences''
####Select ''America/New_York'' (or whatever your location is) for the timezone
####Make sure "Show list of family trees" is set to ''yes'' if you think you'll ever have more than one family tree on your page.
###Under ''Sign-in and registration''
####Set ''Welcome text on sign-in page'' to ''Predefined text that states that only family members can request a user account'' (or whatever you want)
####Set ''Show acceptable use agreement on "Request a new user account" page'' to ''no'' (or whatever you want)
###Under ''Languages''
####uncheck any languages you don't want to support
####check any extra languages you do want to support
#Setup the Reverse Proxy
##On your webtrees container modify line 173 of ''/var/www/html/webtrees/includes/sessions.php''
###*'''from''' ''define('WT_BASE_URL', $base_uri);''
###*'''to''' ''define('WT_BASE_URL', 'https://mypublicdomain.com/webtrees/');''
##Log into your Reverse Proxy machine/container (assumed to be on Debian 9 with permanent redirects from http to https)
##If you want to put an htpasswd based password on the front of the site then do the following
###run ''sudo htpasswd -c /etc/apache2/.webtrees_htpasswd username''
##add the following to ''/etc/apache2/sites-enabled/000-default.conf''
<nowiki>Redirect permanent /webtrees https://steamforge.net/webtrees</nowiki>
##add the following to ''/etc/apache2/sites-enabled/000-default-ssl.conf'' (leave off the first block about Authentication if you didn't create ''.webtrees_htpasswd'')
<nowiki>#webtrees
<Location /webtrees>
AuthType Basic
AuthName "Enter username/password to access webtrees"
AuthBasicProvider file
AuthUserFile "/etc/apache2/.webtrees_htpasswd"
Require valid-user

ProxyPreserveHost On
ProxyPass http://containername/webtrees
ProxyPassReverse http://containername/webtrees
</Location></nowiki>