1,575
edits
Changes
no edit summary
#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 ''by running <pre>apt update''&##run ''10;apt upgrade''&##run ''10;apt install sudo unzip''</pre>#Update the timezone##run ''by running <pre>timedatectl set-timezone America/New_York''</pre>##*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##by running <pre>useradd admin# usermod -aG sudo admin</pre>#Exit the web console and ssh in as the admin user<pre>ssh admin@CONTAINERNAME</pre> =Setup a [https://mariadb.org/ MariaDB] databaseDatabase=#install the necessary packages, secure the installation, and log into the mysql database##run ''by running <pre> sudo apt install mariadb-server mariadb-client''&##run ''10;sudo mysql_secure_installation'' ###*The current root password is blank###*Create a new root password###*Answer Yes to all questions##run ''sudo Log into the mysql'' to login database as rootby running <pre>sudo mysql</pre>#Create a database and user for webtrees##run ''by running <pre>CREATE DATABASE webtreesDB;''&##run ''10;GRANT ALL PRIVILEGES ON webtreesDB.* TO 'webtrees'@'localhost' IDENTIFIED BY 'webtreespasswordWEBtreesPASSWORD';''&##run ''10;FLUSH PRIVILEGES;''&##run ''10;exit''</pre> =Setup an [https://httpd.apache.org/ Apache2] webserverWeb Server=#run ''Install Apache 2 by running <pre>sudo apt install apache2''</pre>#check visit http://<containername>CONTAINERNAME/ in a browser and you should see the default Apache2 server page
=Setup [https://www.php.net/ PHP]7=
#run ''Install necessary PHP packages by running <pre>sudo apt install php libapache2-mod-php php-mysql php-apcu php-xml php-gd</pre>#Edit the ''#run php.ini''file by running <pre>sudo nano /etc/php/7.0/apache2/php.ini</pre> and configuring ''#*set upload_max_filesize''<pre>upload_max_filesize = 20M'' </pre> to ensure that you can upload reasonably sized GEDCOM files from the web interface#run ''Restart Apache2 by running <pre>systemctl restart apache2''</pre>#run ''Ensure that PHP is running with the following <pre>sudo nano /var/www/html/info.php'' and type </pre> fill it in with the following in. The save and exit nano. <nowikipre><?php phpinfo(); ?></nowiki/pre>#save and exit by hitting ''Ctrl+C'' and ''Y'' Then go to ''http://<containername>/info.php and you should see the default PHP info page#run ''Delete this page by running <pre>sudo rm /var/www/html/info.php</pre>
=Setup webtrees=
#run ''Change directories to the web root by running <pre>cd /var/www/html''</pre>#run ''Download the latest copy of webtrees by running <pre>sudo wget https://github.com/fisharebest/webtrees/releases/download/1.7.13/webtrees-1.7.13.zip''#*</pre> 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 ''Uncompress the files by running <pre>sudo unzip webtrees-1.7.13.zip''</pre>#run ''Delete the compressed file by running <pre>sudo rm webtrees-1.7.13.zip''</pre>
#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'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''' ''by running <pre>sudo nano /var/www/html/includes/sessions.php</pre> and changing <pre>define('WT_BASE_URL', $base_uri);''##*'''</pre> to''' ''<pre>define('WT_BASE_URL', 'https://mypublicdomain.com/webtrees/');''</pre>
#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 ''create an htpasswd file by running <pre>sudo htpasswd -c /etc/apache2/.webtrees_htpasswd username''</pre>#add the following Add a redirect (from HTTP to HTTPS) to ''Apache by running <pre>sudo nano /etc/apache2/sites-enabled/000-default.conf</pre> and adding the following under the '''<VirtualHost *:80>''' tag <nowikipre>Redirect permanent /webtrees https://steamforge.net/webtrees</nowikipre>#add Add the Proxy calls to Apache by running the following to ''<pre>sudo nano /etc/apache2/sites-enabled/000-default-ssl.conf'' (leave off </pre> and adding the following under the first block about Authentication if you didn't create ''.webtrees_htpasswd'') <nowikiVirtualHost _default_:443> tag <pre>#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></nowikipre>(leave off the first block about Authentication if you didn't create ''.webtrees_htpasswd'')
[[Category: Linux]]