diff --git a/src/freedombone-app-keyserver b/src/freedombone-app-keyserver
index e797e2da..d4adaf4f 100755
--- a/src/freedombone-app-keyserver
+++ b/src/freedombone-app-keyserver
@@ -123,7 +123,7 @@ function restore_remote_keyserver {
 
 function remove_keyserver {
     systemctl stop sks
-    apt-get -qy remove sks
+    apt-get -qy remove sks dirmngr
 
     read_config_param "KEYSERVER_DOMAIN_NAME"
     nginx_dissite $KEYSERVER_DOMAIN_NAME
@@ -195,6 +195,54 @@ function keyserver_import_keys {
     sks build
 }
 
+function keyserver_sync {
+    data=$(tempfile 2>/dev/null)
+    trap "rm -f $data" 0 1 2 5 15
+    dialog --backtitle $"Freedombone Control Panel" \
+           --title $"Sync with other keyserver" \
+           --form "\nDetails for the other server:" 10 50 3 \
+           $"Domain:" 1 1 "" 1 18 32 32 \
+           $"Port:" 2 1 "11370" 2 18 8 8 \
+           2> $data
+    sel=$?
+    case $sel in
+        1) return;;
+        255) return;;
+    esac
+    other_keyserver_domain=$(cat $data | sed -n 1p)
+    other_keyserver_port=$(cat $data | sed -n 2p)
+    if [[ "$other_keyserver_domain" != *'.'* ]]; then
+        return
+    fi
+    if [[ "$other_keyserver_domain" == *' '* ]]; then
+        return
+    fi
+    if [[ "$other_keyserver_port" == *'.'* ]]; then
+        return
+    fi
+    if [[ "$other_keyserver_port" == *' '* ]]; then
+        return
+    fi
+    if [ ${#other_keyserver_domain} -lt 4 ]; then
+        return
+    fi
+    if [ ${#other_keyserver_port} -lt 4 ]; then
+        return
+    fi
+    if grep -q "$other_keyserver_domain $other_keyserver_port" /etc/sks/membership; then
+        return
+    fi
+    if grep -q "$other_keyserver_domain " /etc/sks/membership; then
+        sed -i "s|$other_keyserver_domain .*|$other_keyserver_domain $other_keyserver_port|g" /etc/sks/membership
+    else
+        echo "$other_keyserver_domain $other_keyserver_port" >> /etc/sks/membership
+    fi
+    chown -Rc debian-sks: /etc/sks/membership
+    systemctl restart sks
+    dialog --title $"Sync with other keyserver" \
+           --msgbox $"Keyserver added" 6 40
+}
+
 function configure_interactive_keyserver {
     while true
     do
@@ -202,26 +250,37 @@ function configure_interactive_keyserver {
         trap "rm -f $data" 0 1 2 5 15
         dialog --backtitle $"Freedombone Control Panel" \
                --title $"SKS Keyserver" \
-               --radiolist $"Choose an operation:" 10 70 2 \
-               1 $"Import public keys database" off \
-               2 $"Exit" on 2> $data
+               --radiolist $"Choose an operation:" 11 70 3 \
+               1 $"Sync with other keyserver" off \
+               2 $"Import public keys database" off \
+               3 $"Exit" on 2> $data
         sel=$?
         case $sel in
             1) return;;
             255) return;;
         esac
         case $(cat $data) in
-            1) keyserver_import_keys;;
-            2) break;;
+            1) keyserver_sync;;
+            2) keyserver_import_keys;;
+            3) break;;
         esac
     done
 }
 
+function keyserver_reset_database {
+    if [ -d /var/lib/sks/DB ]; then
+        rm -rf /var/lib/sks/DB
+    fi
+    sks build
+    chown -Rc debian-sks: /var/lib/sks
+    systemctl restart sks
+}
+
 function install_keyserver {
     apt-get -qy install build-essential gcc ocaml libdb-dev wget sks
-    sks build
-    chown -Rc debian-sks: /var/lib/sks/DB
+    keyserver_reset_database
     sed -i 's|initstart=.*|initstart=yes|g' /etc/default/sks
+    apt-get -qy install dirmngr
     systemctl restart sks
 
     if [ ! -d /var/www/$KEYSERVER_DOMAIN_NAME ]; then
@@ -270,29 +329,23 @@ function install_keyserver {
     sed -i "s|###ENTERNAMEHERE###|$USER_EMAIL_ADDRESS|g" /var/www/$KEYSERVER_DOMAIN_NAME/htdocs/404.html
     sed -i "s|###ENTERNAMEHERE###|$USER_EMAIL_ADDRESS|g" /var/www/$KEYSERVER_DOMAIN_NAME/htdocs/index.html
 
-    sksconf_file=/var/lib/sks/sksconf
-    echo 'debuglevel: 3' > $sksconf_file
-    echo '' >> $sksconf_file
-    echo "hostname:                       $KEYSERVER_DOMAIN_NAME" >> $sksconf_file
-    echo '' >> $sksconf_file
-    echo 'hkp_address:                    127.0.0.1' >> $sksconf_file
-    echo "hkp_port:                       $KEYSERVER_PORT" >> $sksconf_file
-    echo 'recon_port:                     11370' >> $sksconf_file
-    echo '' >> $sksconf_file
-    echo "server_contact:                 $GPG_ID" >> $sksconf_file
-    echo '' >> $sksconf_file
-    echo 'initial_stat:' >> $sksconf_file
-    echo 'disable_mailsync:' >> $sksconf_file
-    echo 'membership_reload_interval:     1' >> $sksconf_file
-    echo 'stat_hour:                      12' >> $sksconf_file
-    echo '' >> $sksconf_file
-    echo 'max_matches:                    500' >> $sksconf_file
+    sksconf_file=/etc/sks/sksconf
+    sed -i "s|#hostname:.*|hostname: $KEYSERVER_DOMAIN_NAME|g" $sksconf_file
+    sed -i "s|hostname:.*|hostname: $KEYSERVER_DOMAIN_NAME|g" $sksconf_file
+    sed -i "s|#hkp_port:.*|hkp_port: 11373|g" $sksconf_file
+    sed -i "s|hkp_port:.*|hkp_port: 11373|g" $sksconf_file
+    sed -i "s|#recon_port:.*|recon_port: 11370|g" $sksconf_file
+    sed -i "s|recon_port:.*|recon_port: 11370|g" $sksconf_file
+    sed -i "s|#recon_address:.*|recon_address: 0.0.0.0|g" $sksconf_file
+    sed -i "s|recon_address:.*|recon_address: 0.0.0.0|g" $sksconf_file
+    sed -i 's|#hkp_address:.*|hkp_address: 0.0.0.0|g' $sksconf_file
+    sed -i 's|hkp_address:.*|hkp_address: 0.0.0.0|g' $sksconf_file
     chown debian-sks: $sksconf_file
 
     if ! grep -q "hidden_service_sks" /etc/tor/torrc; then
         echo 'HiddenServiceDir /var/lib/tor/hidden_service_sks/' >> /etc/tor/torrc
         echo "HiddenServicePort 11370 127.0.0.1:11370" >> /etc/tor/torrc
-        echo "HiddenServicePort 11371 127.0.0.1:11371" >> /etc/tor/torrc
+        echo "HiddenServicePort 11371 127.0.0.1:11373" >> /etc/tor/torrc
         echo "HiddenServicePort 11372 127.0.0.1:11372" >> /etc/tor/torrc
         echo $'Added onion site for sks'
     fi
@@ -344,9 +397,9 @@ function install_keyserver {
         echo '  rewrite ^/download/(.*) /pks/lookup?op=get&options=mr&search=$1;' >> $keyserver_nginx_site
         echo '' >> $keyserver_nginx_site
         echo '  location /pks {' >> $keyserver_nginx_site
-        echo "    proxy_pass         http://127.0.0.1:$KEYSERVER_PORT;" >> $keyserver_nginx_site
+        echo "    proxy_pass         http://127.0.0.1:11373;" >> $keyserver_nginx_site
         echo '    proxy_pass_header  Server;' >> $keyserver_nginx_site
-        echo "    add_header         Via \"1.1 $KEYSERVER_DOMAIN_NAME:$KEYSERVER_PORT (nginx)\";" >> $keyserver_nginx_site
+        echo "    add_header         Via \"1.1 $KEYSERVER_DOMAIN_NAME:11373 (nginx)\";" >> $keyserver_nginx_site
         echo '    proxy_ignore_client_abort on;' >> $keyserver_nginx_site
         echo '    client_max_body_size 8m;' >> $keyserver_nginx_site
         echo '  }' >> $keyserver_nginx_site
@@ -378,9 +431,9 @@ function install_keyserver {
     echo '  rewrite ^/download/(.*) /pks/lookup?op=get&options=mr&search=$1;' >> $keyserver_nginx_site
     echo '' >> $keyserver_nginx_site
     echo '  location /pks {' >> $keyserver_nginx_site
-    echo "    proxy_pass         http://127.0.0.1:$KEYSERVER_PORT;" >> $keyserver_nginx_site
+    echo "    proxy_pass         http://127.0.0.1:11373;" >> $keyserver_nginx_site
     echo '    proxy_pass_header  Server;' >> $keyserver_nginx_site
-    echo "    add_header         Via \"1.1 $KEYSERVER_DOMAIN_NAME:$KEYSERVER_PORT (nginx)\";" >> $keyserver_nginx_site
+    echo "    add_header         Via \"1.1 $KEYSERVER_DOMAIN_NAME:11373 (nginx)\";" >> $keyserver_nginx_site
     echo '    proxy_ignore_client_abort on;' >> $keyserver_nginx_site
     echo '    client_max_body_size 8m;' >> $keyserver_nginx_site
     echo '  }' >> $keyserver_nginx_site
@@ -409,6 +462,13 @@ function install_keyserver {
 
     configure_firewall_for_keyserver
 
+    # remove membership file - don't try to sync with other keyservers
+    if [ -f /etc/sks/membership ]; then
+        rm /etc/sks/membership
+    fi
+
+    systemctl enable sks
+    systemctl restart sks
     systemctl restart nginx
 
     set_completion_param "keyserver domain" "$KEYSERVER_DOMAIN_NAME"