From c3630f490034559879cc968a53366ba647eab987 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Sat, 19 Nov 2016 19:17:33 +0000
Subject: [PATCH] Replace readme with password store

---
 src/freedombone-app-batman     | 12 ---------
 src/freedombone-app-dokuwiki   | 26 ++-----------------
 src/freedombone-app-etherpad   | 30 +++-------------------
 src/freedombone-app-ghost      | 17 +------------
 src/freedombone-app-gnusocial  | 46 +++++-----------------------------
 src/freedombone-app-gogs       | 28 ++-------------------
 src/freedombone-app-htmly      | 33 ++++++------------------
 src/freedombone-app-hubzilla   | 31 +++--------------------
 src/freedombone-app-irc        | 19 +++++++-------
 src/freedombone-app-jitsi      | 19 +-------------
 src/freedombone-app-lychee     | 41 +++++++-----------------------
 src/freedombone-app-mailpile   | 18 +++----------
 src/freedombone-app-mumble     | 34 +++++--------------------
 src/freedombone-app-postactiv  | 44 ++++----------------------------
 src/freedombone-app-radicale   | 21 ++++++++--------
 src/freedombone-app-rss        | 27 ++------------------
 src/freedombone-app-sip        | 39 ++++++++--------------------
 src/freedombone-app-synapse    | 32 +++++------------------
 src/freedombone-app-tox        | 12 ---------
 src/freedombone-app-xmpp       | 26 ++++++++-----------
 src/freedombone-app-zeronet    | 43 -------------------------------
 src/freedombone-pass           | 32 +++++++++++++++++++++++
 src/freedombone-utils-database | 20 ++-------------
 23 files changed, 132 insertions(+), 518 deletions(-)

diff --git a/src/freedombone-app-batman b/src/freedombone-app-batman
index ad12ae011..c402ba50c 100755
--- a/src/freedombone-app-batman
+++ b/src/freedombone-app-batman
@@ -145,18 +145,6 @@ function install_batman {
         exit 72524
     fi
 
-    if ! grep -q "Mesh Networking (B.A.T.M.A.N)" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo 'Mesh Networking (B.A.T.M.A.N)' >> /home/$MY_USERNAME/README
-        echo '=============================' >> /home/$MY_USERNAME/README
-        echo "Mesh ESSID: $WIFI_SSID" >> /home/$MY_USERNAME/README
-        echo "Mesh cell ID: $BATMAN_CELLID" >> /home/$MY_USERNAME/README
-        echo "Mesh wifi channel: $WIFI_CHANNEL" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
-
     function_check configure_firewall_for_batman
     configure_firewall_for_batman
     APP_INSTALLED=1
diff --git a/src/freedombone-app-dokuwiki b/src/freedombone-app-dokuwiki
index 97a2d14f9..a507a3e9b 100755
--- a/src/freedombone-app-dokuwiki
+++ b/src/freedombone-app-dokuwiki
@@ -61,7 +61,7 @@ function install_interactive_dokuwiki {
 }
 
 function change_password_dokuwiki {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a dokuwiki -p "$2"
 }
 
 function reconfigure_dokuwiki {
@@ -203,21 +203,12 @@ function remove_dokuwiki {
     fi
     remove_completion_param "install_dokuwiki"
     remove_completion_param "dokuwiki domain"
-    sed -i '/Dokuwiki/d' /home/$MY_USERNAME/README
     sed -i '/dokuwiki/d' $COMPLETION_FILE
 
     function_check remove_ddns_domain
     remove_ddns_domain $DOKUWIKI_DOMAIN_NAME
 }
 
-function get_dokuwiki_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "Dokuwiki password" /home/$MY_USERNAME/README; then
-            DOKUWIKI_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Dokuwiki password:" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function install_dokuwiki {
     if [ ! $DOKUWIKI_DOMAIN_NAME ]; then
         return
@@ -277,8 +268,6 @@ function install_dokuwiki {
         echo "\$conf['authtype'] = 'authplain';" >> /etc/dokuwiki/local.php
     fi
 
-    function_check get_dokuwiki_admin_password
-    get_dokuwiki_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         DOKUWIKI_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
@@ -477,18 +466,7 @@ function install_dokuwiki {
     function_check add_ddns_domain
     add_ddns_domain $DOKUWIKI_DOMAIN_NAME
 
-    # add some post-install instructions
-    if ! grep -q $"Dokuwiki password" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# Dokuwiki' >> /home/$MY_USERNAME/README
-        echo $"Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"Dokuwiki username: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a dokuwiki -p "$DOKUWIKI_ADMIN_PASSWORD"
 
     APP_INSTALLED=1
 }
diff --git a/src/freedombone-app-etherpad b/src/freedombone-app-etherpad
index 37c214904..87ec08e31 100755
--- a/src/freedombone-app-etherpad
+++ b/src/freedombone-app-etherpad
@@ -54,7 +54,7 @@ etherpad_variables=(ETHERPAD_COMMIT
                     MY_USERNAME)
 
 function change_password_etherpad {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a dokuwiki -p "$2"
 }
 
 function etherpad_create_database {
@@ -179,6 +179,7 @@ function create_etherpad_settings {
 function remove_user_etherpad {
     remove_username="$1"
     read_config_param ETHERPAD_DOMAIN_NAME
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp etherpad
 
     if ! grep -q "\"${remove_username}\": {" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json; then
         sed -i "/\"${remove_username}\": {/,/},/d" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
@@ -188,6 +189,7 @@ function remove_user_etherpad {
 function add_user_etherpad {
     new_username="$1"
     new_user_password="$2"
+    ${PROJECT_NAME}-pass -u $new_username -a etherpad -p "$new_user_password"
     read_config_param ETHERPAD_DOMAIN_NAME
     if ! grep -q "\"${new_username}\": {" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json; then
         sed -i "/\"users\": {/a    \"${new_username}\": {
@@ -420,7 +422,6 @@ function remove_etherpad {
     remove_app etherpad
     remove_completion_param install_etherpad
     sed -i '/etherpad/d' $COMPLETION_FILE
-    sed -i '/Etherpad/d' /home/$MY_USERNAME/README
     remove_backup_database_local etherpad
     deluser --remove-all-files etherpad
     remove_nodejs etherpad
@@ -595,30 +596,7 @@ function install_etherpad {
 
     ETHERPAD_ONION_HOSTNAME=$(add_onion_service etherpad 80 ${ETHERPAD_ONION_PORT})
 
-    # some post-install instructions for the user
-    if ! grep -q $"Etherpad administrator" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# Etherpad' >> /home/$MY_USERNAME/README
-        echo $"Etherpad administrator nickname: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Etherpad administrator password.*|Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD|g" /home/$MY_USERNAME/README
-        fi
-    fi
-
-    if ! grep -q "Etherpad onion domain" /home/$MY_USERNAME/README; then
-        echo $"Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Etherpad onion domain.*|Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}|g" /home/$MY_USERNAME/README
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a etherpad -p "$ETHERPAD_ADMIN_PASSWORD"
 
     function_check add_ddns_domain
     add_ddns_domain $ETHERPAD_DOMAIN_NAME
diff --git a/src/freedombone-app-ghost b/src/freedombone-app-ghost
index d05bff74b..941691c43 100755
--- a/src/freedombone-app-ghost
+++ b/src/freedombone-app-ghost
@@ -230,21 +230,11 @@ function remove_ghost {
     remove_completion_param "install_ghost"
     sed -i '/Ghost/d' $COMPLETION_FILE
     sed -i '/ghost/d' $COMPLETION_FILE
-    sed -i '/ghost/d' /home/$MY_USERNAME/README
-    sed -i '/Ghost/d' /home/$MY_USERNAME/README
 
     function_check remove_ddns_domain
     remove_ddns_domain $GHOST_DOMAIN_NAME
 }
 
-function get_ghost_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "Your ghost password is" /home/$MY_USERNAME/README; then
-            GHOST_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Your ghost password is" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function ghost_create_config {
     ghost_config=/var/www/${GHOST_DOMAIN_NAME}/htdocs/config.js
 
@@ -467,12 +457,7 @@ function install_ghost {
 
     systemctl restart nginx
 
-    if ! grep -q "Ghost onion domain" /home/$MY_USERNAME/README; then
-        echo $"Ghost onion domain: ${GHOST_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a ghost -p "$GHOST_ADMIN_PASSWORD"
 
     function_check add_ddns_domain
     add_ddns_domain $GHOST_DOMAIN_NAME
diff --git a/src/freedombone-app-gnusocial b/src/freedombone-app-gnusocial
index 0e5ee4b2d..0fbec9f6e 100755
--- a/src/freedombone-app-gnusocial
+++ b/src/freedombone-app-gnusocial
@@ -77,6 +77,8 @@ gnusocial_variables=(GNUSOCIAL_COMMIT
 function remove_user_gnusocial {
     remove_username="$1"
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp gnusocial
+
     function_check get_completion_param
     GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
     if [ -d /var/www/$GNUSOCIAL_DOMAIN_NAME ]; then
@@ -89,6 +91,8 @@ function add_user_gnusocial {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a gnusocial -p "$new_user_password"
+
     GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
     if [ -d /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs ]; then
         cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
@@ -185,23 +189,10 @@ function install_interactive_gnusocial {
 }
 
 function change_password_gnusocial {
-    echo -n ''
-}
-
-function get_mariadb_gnusocial_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "MariaDB gnusocial admin password" /home/$MY_USERNAME/README; then
-            GNUSOCIAL_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB gnusocial admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-        if grep -q "gnusocial administrator password" /home/$MY_USERNAME/README; then
-            GNUSOCIAL_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "gnusocial administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $1 -a gnusocial -p "$2"
 }
 
 function gnusocial_create_database {
-    function_check get_mariadb_gnusocial_admin_password
-    get_mariadb_gnusocial_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         GNUSOCIAL_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
@@ -489,7 +480,6 @@ function remove_gnusocial {
     if [ -f /etc/cron.hourly/gnusocial-daemons ]; then
         rm /etc/cron.hourly/gnusocial-daemons
     fi
-    sed -i '/Gnusocial/d' /home/$MY_USERNAME/README
     remove_backup_database_local gnusocial
 
     function_check remove_ddns_domain
@@ -742,31 +732,7 @@ function install_gnusocial_main {
 
     ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$GNUSOCIAL_DOMAIN_NAME" -g gnusocial --public no
 
-    # some post-install instructions for the user
-    if ! grep -q $"Gnusocial administrator" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# Gnusocial' >> /home/$MY_USERNAME/README
-        echo $"Gnusocial administrator nickname: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Gnusocial administrator password.*|Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD|g" /home/$MY_USERNAME/README
-        fi
-    fi
-
-    if ! grep -q "Gnusocial onion domain" /home/$MY_USERNAME/README; then
-        echo $"Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Gnusocial onion domain.*|Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}|g" /home/$MY_USERNAME/README
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a gnusocial -p "$GNUSOCIAL_ADMIN_PASSWORD"
 
     set_completion_param "gnusocial domain" "$GNUSOCIAL_DOMAIN_NAME"
 
diff --git a/src/freedombone-app-gogs b/src/freedombone-app-gogs
index 8a7a8b04b..b6faa9382 100755
--- a/src/freedombone-app-gogs
+++ b/src/freedombone-app-gogs
@@ -115,18 +115,7 @@ function gogs_parameters {
     GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/linux_${CURR_ARCH}.tar.gz"
 }
 
-function get_mariadb_git_admin_password {
-    if [ -f /home/${MY_USERNAME}/README ]; then
-        if grep -q "Gogs admin user password" /home/${MY_USERNAME}/README; then
-            GIT_ADMIN_PASSWORD=$(cat /home/${MY_USERNAME}/README | grep "Gogs admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function gogs_create_database {
-    function_check get_mariadb_git_admin_password
-    get_mariadb_git_admin_password
-
     if [ -f ${IMAGE_PASSWORD_FILE} ]; then
         GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
@@ -580,13 +569,6 @@ function install_gogs {
     systemctl restart php5-fpm
     systemctl restart nginx
 
-    if ! grep -q "Gogs onion domain" /home/${MY_USERNAME}/README; then
-        echo "Gogs onion domain: ${GIT_ONION_HOSTNAME}" >> /home/${MY_USERNAME}/README
-        echo '' >> /home/${MY_USERNAME}/README
-        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
-        chmod 600 /home/${MY_USERNAME}/README
-    fi
-
     set_completion_param "gogs domain" "$GIT_DOMAIN_NAME"
     set_completion_param "gogs onion domain" "$GIT_ONION_HOSTNAME"
 
@@ -594,14 +576,8 @@ function install_gogs {
     add_ddns_domain ${GIT_DOMAIN_NAME}
 
     # obtain the secret key
-    GOGS_SECRET_KEY=
-    if grep -q "Gogs secret key:" /home/${MY_USERNAME}/README; then
-        GOGS_SECRET_KEY=$(cat /home/${MY_USERNAME}/README | grep "Gogs secret key:" | awk -F ':' '{print $2}' | sed 's/^ *//')
-    else
-        GOGS_SECRET_KEY="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
-        echo "Gogs secret key:${GOGS_SECRET_KEY}" >> /home/${MY_USERNAME}/README
-        chown $MY_USERNAME:$MY_USERNAME /home/${MY_USERNAME}/README
-    fi
+    GOGS_SECRET_KEY="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a gogs -p "*"
 
     # create the configuration
     GOGS_CONFIG_PATH=/home/${GOGS_USERNAME}/custom/conf
diff --git a/src/freedombone-app-htmly b/src/freedombone-app-htmly
index 9a2753cb3..c0d033750 100755
--- a/src/freedombone-app-htmly
+++ b/src/freedombone-app-htmly
@@ -94,6 +94,8 @@ function set_avatar_from_url {
 function remove_user_htmly {
     remove_username="$1"
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp htmly
+
     if [ -f /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
         rm /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
     fi
@@ -108,6 +110,8 @@ function add_user_htmly {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a htmly -p "$new_user_password"
+
     if [ ! -d /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users ]; then
         echo '2'
         return
@@ -175,6 +179,7 @@ function change_password_htmly {
         echo $'Htmly password is too short'
         return
     fi
+    ${PROJECT_NAME}-pass -u $HTMLY_USERNAME -a htmly -p "$HTMLY_PASSWORD"
     HTMLY_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$HTMLY_PASSWORD")
     if [ ${#HTMLY_PASSWORD_HASH} -lt 8 ]; then
         echo $'Htmly admin password could not be hashed'
@@ -352,21 +357,11 @@ function remove_htmly {
     remove_completion_param "install_htmly"
     sed -i '/Htmly/d' $COMPLETION_FILE
     sed -i '/htmly/d' $COMPLETION_FILE
-    sed -i '/htmly/d' /home/$MY_USERNAME/README
-    sed -i '/Htmly/d' /home/$MY_USERNAME/README
 
     function_check remove_ddns_domain
     remove_ddns_domain $HTMLY_DOMAIN_NAME
 }
 
-function get_htmly_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "Your htmly password is" /home/$MY_USERNAME/README; then
-            HTMLY_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Your htmly password is" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function install_htmly_social_networks {
     # set social networks
     if grep -q "social.hubzilla" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini; then
@@ -386,18 +381,10 @@ function install_htmly_social_networks {
 
 function install_htmly_user {
     # create a user password
-    function_check get_htmly_admin_password
-    get_htmly_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         HTMLY_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
-    fi
-    if [ ! $HTMLY_ADMIN_PASSWORD ]; then
+    else
         HTMLY_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
-        echo $'# htmly' >> /home/$MY_USERNAME/README
-        echo $"Your htmly username: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"Your htmly password is: $HTMLY_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
     fi
 
     # create a user
@@ -644,13 +631,7 @@ function install_htmly {
     systemctl restart php5-fpm
     systemctl restart nginx
 
-    if ! grep -q "Htmly onion domain" /home/$MY_USERNAME/README; then
-        echo $"Htmly onion domain: ${HTMLY_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a htmly -p "$HTMLY_ADMIN_PASSWORD"
 
     function_check add_ddns_domain
     add_ddns_domain $HTMLY_DOMAIN_NAME
diff --git a/src/freedombone-app-hubzilla b/src/freedombone-app-hubzilla
index 4ce50ea4d..127b9c6b4 100755
--- a/src/freedombone-app-hubzilla
+++ b/src/freedombone-app-hubzilla
@@ -55,6 +55,7 @@ hubzilla_variables=(ONION_ONLY
 
 function remove_user_hubzilla {
     remove_username="$1"
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp hubzilla
 }
 
 function add_user_hubzilla {
@@ -65,7 +66,7 @@ function add_user_hubzilla {
 
     new_username="$1"
     new_user_password="$2"
-
+    ${PROJECT_NAME}-pass -u $new_username -a hubzilla -p "$new_user_password"
     echo '0'
 }
 
@@ -166,39 +167,17 @@ function install_interactive_hubzilla {
 }
 
 function change_password_hubzilla {
-    echo -n ''
-}
-
-function get_mariadb_hubzilla_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "MariaDB Hubzilla admin password" /home/$MY_USERNAME/README; then
-            HUBZILLA_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB Hubzilla admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $1 -a hubzilla -p "$2"
 }
 
 function hubzilla_create_database {
-    function_check get_mariadb_hubzilla_admin_password
-    get_mariadb_hubzilla_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         HUBZILLA_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     fi
     if [ ! $HUBZILLA_ADMIN_PASSWORD ]; then
         HUBZILLA_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
-        if ! grep "# Hubzilla" /home/$MY_USERNAME/README; then
-            echo '' >> /home/$MY_USERNAME/README
-            echo '' >> /home/$MY_USERNAME/README
-            echo '# Hubzilla' >> /home/$MY_USERNAME/README
-            if [[ $ONION_ONLY == 'no' ]]; then
-                echo $"Open https://$HUBZILLA_DOMAIN_NAME and register a new user" >> /home/$MY_USERNAME/README
-            else
-                echo $"Open http://$HUBZILLA_ONION_HOSTNAME and register a new user" >> /home/$MY_USERNAME/README
-            fi
-            echo $"Your MariaDB Hubzilla admin password is: $HUBZILLA_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        fi
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
     fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a hubzilla -p "$HUBZILLA_ADMIN_PASSWORD"
     if [ ! $HUBZILLA_ADMIN_PASSWORD ]; then
         return
     fi
@@ -308,8 +287,6 @@ function remove_hubzilla {
     function_check remove_onion_service
     remove_onion_service hubzilla ${HUBZILLA_ONION_PORT}
     sed -i '/hubzilla/d' $COMPLETION_FILE
-    sed -i '/hubzilla/d' /home/$MY_USERNAME/README
-    sed -i '/Hubzilla/d' /home/$MY_USERNAME/README
     sed -i '/poller.php/d' /etc/crontab
 
     function_check remove_ddns_domain
diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
index 569e27deb..9b5033f51 100755
--- a/src/freedombone-app-irc
+++ b/src/freedombone-app-irc
@@ -161,6 +161,8 @@ function remove_user_irc_bouncer {
 function remove_user_irc {
     remove_username="$1"
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp irc
+
     remove_user_irc_bouncer ${remove_username}
     if [ -d /home/${remove_username}/.irssi ]; then
         rm -rf /home/${remove_username}/.irssi
@@ -178,6 +180,8 @@ function add_user_irc_bouncer {
         is_admin='false'
     fi
 
+    ${PROJECT_NAME}-pass -u $new_username -a irc -p "$new_user_password"
+
     if [[ $(is_valid_user "$new_username") == "0" ]]; then
         return
     fi
@@ -344,8 +348,9 @@ function irc_set_global_password {
             # change the server password
             sed -i "s|Server     = 127.0.0.1.*|Server     = 127.0.0.1 ${IRC_PORT} ${NEW_IRC_PASSWORD}|g" /home/znc/.znc/configs/znc.conf
 
-            # Update the password in the readme
-            sed -i "s|IRC login password.*|IRC login password: $NEW_IRC_PASSWORD|g" /home/$MY_USERNAME/README
+            # Update the password
+            ${PROJECT_NAME}-pass -u $MY_USERNAME -a irc -p "$NEW_IRC_PASSWORD"
+
 
             if [ -f $INSTALL_DIR/matrix_irc_bridge/config.yaml ]; then
                 sed -i "s|password: .*|password: \"$NEW_IRC_PASSWORD\"|g" $INSTALL_DIR/matrix_irc_bridge/config.yaml
@@ -400,7 +405,7 @@ function install_interactive_irc {
 }
 
 function change_password_irc {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a irc -p "$2"
 }
 
 function reconfigure_irc {
@@ -451,7 +456,6 @@ function remove_irc {
     if [ -d /home/znc ]; then
         userdel -r znc
     fi
-    sed -i '/IRC login/d' /home/$MY_USERNAME/README
 }
 
 function configure_firewall_for_irc {
@@ -506,12 +510,7 @@ function install_irc_server {
         IRC_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
     fi
 
-    if ! grep -q "IRC login password: $IRC_PASSWORD" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo "IRC login password: $IRC_PASSWORD" >> /home/$MY_USERNAME/README
-    else
-        sed -i "s|IRC login password.*|IRC login password: $IRC_PASSWORD|g" /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a irc -p "$IRC_PASSWORD"
 
     echo '**************************************************' > /etc/ngircd/motd
     echo $'*           F R E E D O M B O N E   I R C        *' >> /etc/ngircd/motd
diff --git a/src/freedombone-app-jitsi b/src/freedombone-app-jitsi
index 90853d68c..1d55d32fb 100755
--- a/src/freedombone-app-jitsi
+++ b/src/freedombone-app-jitsi
@@ -86,21 +86,6 @@ function can_install_videobridge {
     fi
 }
 
-function create_jitsi_subdomains {
-    JITSI_ONION_HOSTNAME=$(add_onion_service jitsi 80 ${JITSI_ONION_PORT})
-
-    if ! grep -q "Jitsi onion domain" /home/${MY_USERNAME}/README; then
-        echo $"Jitsi onion domain: ${JITSI_ONION_HOSTNAME}" >> /home/${MY_USERNAME}/README
-        echo '' >> /home/${MY_USERNAME}/README
-        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
-        chmod 600 /home/${MY_USERNAME}/README
-    else
-        if [ -f /home/${MY_USERNAME}/README ]; then
-            sed -i "s|Jitsi onion domain.*|Jitsi onion domain: ${JITSI_ONION_HOSTNAME}|g" /home/${MY_USERNAME}/README
-        fi
-    fi
-}
-
 function remove_jitsi_subdomains {
     function_check remove_onion_service
     remove_onion_service jitsi ${JITSI_ONION_PORT}
@@ -213,7 +198,6 @@ function remove_jitsi {
     remove_app jitsi
     remove_completion_param install_jitsi
     sed -i '/jitsi/d' ${COMPLETION_FILE}
-    sed -i '/Jitsi/d' /home/${MY_USERNAME}/README
 
     function_check remove_ddns_domain
     remove_ddns_domain $JITSI_DOMAIN_NAME
@@ -255,8 +239,7 @@ function install_jitsi {
     wget -qO - https://download.jitsi.org/nightly/deb/${jitsi_deb_repo}/archive.key | apt-key add -
     apt-get update
 
-    # create onion domains
-    create_jitsi_subdomains
+    JITSI_ONION_HOSTNAME=$(add_onion_service jitsi 80 ${JITSI_ONION_PORT})
 
     # videobridge
     if [[ $ONION_ONLY == 'no' ]]; then
diff --git a/src/freedombone-app-lychee b/src/freedombone-app-lychee
index 9d8defdfa..d0e9390f9 100755
--- a/src/freedombone-app-lychee
+++ b/src/freedombone-app-lychee
@@ -48,26 +48,15 @@ lychee_variables=(LYCHEE_REPO
                   MY_USERNAME)
 
 
-function get_mariadb_git_admin_password {
-    if [ -f /home/${MY_USERNAME}/README ]; then
-        if grep -q "Lychee admin user password" /home/${MY_USERNAME}/README; then
-            GIT_ADMIN_PASSWORD=$(cat /home/${MY_USERNAME}/README | grep "Lychee admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function lychee_create_database {
-    function_check get_mariadb_git_admin_password
-    get_mariadb_git_admin_password
-
     if [ -f ${IMAGE_PASSWORD_FILE} ]; then
-        GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+        LYCHEE_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
-        if [ ! ${GIT_ADMIN_PASSWORD} ]; then
-            GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+        if [ ! ${LYCHEE_ADMIN_PASSWORD} ]; then
+            LYCHEE_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
         fi
     fi
-    if [ ! $GIT_ADMIN_PASSWORD ]; then
+    if [ ! $LYCHEE_ADMIN_PASSWORD ]; then
         return
     fi
 
@@ -78,6 +67,7 @@ function lychee_create_database {
 function remove_user_lychee {
     remove_username="$1"
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp lychee
 }
 
 function add_user_lychee {
@@ -89,6 +79,8 @@ function add_user_lychee {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a lychee -p "$new_user_password"
+
     echo '0'
 }
 
@@ -117,6 +109,7 @@ function change_password_lychee {
         echo $'Lychee password is too short'
         return
     fi
+    ${PROJECT_NAME}-pass -u $LYCHEE_USERNAME -a lychee -p "$LYCHEE_PASSWORD"
 }
 
 function reconfigure_lychee {
@@ -219,21 +212,11 @@ function remove_lychee {
     remove_completion_param "install_lychee"
     sed -i '/Lychee/d' $COMPLETION_FILE
     sed -i '/lychee/d' $COMPLETION_FILE
-    sed -i '/lychee/d' /home/$MY_USERNAME/README
-    sed -i '/Lychee/d' /home/$MY_USERNAME/README
 
     function_check remove_ddns_domain
     remove_ddns_domain $LYCHEE_DOMAIN_NAME
 }
 
-function get_lychee_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "Your lychee password is" /home/$MY_USERNAME/README; then
-            LYCHEE_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Your lychee password is" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function install_lychee_website {
     function_check nginx_http_redirect
     nginx_http_redirect $LYCHEE_DOMAIN_NAME
@@ -434,13 +417,7 @@ function install_lychee {
     systemctl restart php5-fpm
     systemctl restart nginx
 
-    if ! grep -q "Lychee onion domain" /home/$MY_USERNAME/README; then
-        echo $"Lychee onion domain: ${LYCHEE_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"Log into your lychee at https://${LYCHEE_ONION_HOSTNAME}/login" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a lychee -p "$LYCHEE_ADMIN_PASSWORD"
 
     function_check add_ddns_domain
     add_ddns_domain $LYCHEE_DOMAIN_NAME
diff --git a/src/freedombone-app-mailpile b/src/freedombone-app-mailpile
index ba699ab63..f5d4fbd97 100755
--- a/src/freedombone-app-mailpile
+++ b/src/freedombone-app-mailpile
@@ -50,10 +50,11 @@ mailpile_variables=(MAILPILE_REPO
 
 function remove_user_mailpile {
     remove_username="$1"
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp mailpile
 }
 
 function add_user_mailpile {
-    echo '0'
+    ${PROJECT_NAME}-pass -u $1 -a mailpile -p "$2"
 }
 
 function install_interactive_mailpile {
@@ -72,7 +73,7 @@ function install_interactive_mailpile {
 }
 
 function change_password_mailpile {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a mailpile -p "$2"
 }
 
 function reconfigure_mailpile {
@@ -233,8 +234,6 @@ function remove_mailpile {
 
     sed -i '/Mailpile/d' $COMPLETION_FILE
     sed -i '/mailpile/d' $COMPLETION_FILE
-    sed -i '/mailpile/d' /home/$MY_USERNAME/README
-    sed -i '/Mailpile/d' /home/$MY_USERNAME/README
 }
 
 function install_mailpile {
@@ -386,16 +385,7 @@ function install_mailpile {
     function_check nginx_ensite
     nginx_ensite $MAILPILE_DOMAIN_NAME
 
-    if ! grep -q "Mailpile onion domain" /home/$MY_USERNAME/README; then
-        echo $"Mailpile onion domain: ${MAILPILE_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Mailpile onion domain.*|Mailpile onion domain: ${MAILPILE_ONION_HOSTNAME}|g" /home/$MY_USERNAME/README
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a mailpile -p "*"
 
     function_check add_ddns_domain
     add_ddns_domain $MAILPILE_DOMAIN_NAME
diff --git a/src/freedombone-app-mumble b/src/freedombone-app-mumble
index a1c1eb8ce..a4c7da223 100755
--- a/src/freedombone-app-mumble
+++ b/src/freedombone-app-mumble
@@ -54,7 +54,7 @@ function install_interactive_mumble {
 }
 
 function change_password_mumble {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a mumble -p "$2"
 }
 
 function reconfigure_mumble {
@@ -170,17 +170,6 @@ function remove_mumble {
     function_check remove_onion_service
     remove_onion_service mumble ${MUMBLE_PORT}
     sed -i '/mumble/d' $COMPLETION_FILE
-    sed -i '/Mumble/d' /home/$MY_USERNAME/README
-}
-
-function get_mumble_server_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "Mumble server password" /home/$MY_USERNAME/README; then
-            if [ ! $MUMBLE_SERVER_PASSWORD ]; then
-                MUMBLE_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Mumble server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-            fi
-        fi
-    fi
 }
 
 function configure_firewall_for_mumble {
@@ -197,12 +186,10 @@ function configure_firewall_for_mumble {
 function install_mumble {
     apt-get -yq install mumble-server
 
-    function_check get_mumble_server_password
-    get_mumble_server_password
-    if [ ! $MUMBLE_SERVER_PASSWORD ]; then
-        if [ -f $IMAGE_PASSWORD_FILE ]; then
-            MUMBLE_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
-        else
+    if [ -f $IMAGE_PASSWORD_FILE ]; then
+        MUMBLE_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+    else
+        if [ ! $MUMBLE_SERVER_PASSWORD ]; then
             MUMBLE_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
             if [ ${#MUMBLE_SERVER_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
                 MUMBLE_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
@@ -271,16 +258,7 @@ function install_mumble {
     update_default_domain
     systemctl restart mumble-server
 
-    if ! grep -q $"Mumble Server" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# Mumble Server' >> /home/$MY_USERNAME/README
-        echo $"Mumble onion domain:$MUMBLE_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
-        echo $'Mumble server username: mumble-server' >> /home/$MY_USERNAME/README
-        echo $"Mumble server password: $MUMBLE_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a mumble -p "$MUMBLE_SERVER_PASSWORD"
 
     function_check configure_firewall_for_mumble
     configure_firewall_for_mumble
diff --git a/src/freedombone-app-postactiv b/src/freedombone-app-postactiv
index 0459d1fab..c734b3d75 100755
--- a/src/freedombone-app-postactiv
+++ b/src/freedombone-app-postactiv
@@ -53,6 +53,8 @@ postactiv_variables=(POSTACTIV_COMMIT
 function remove_user_postactiv {
     remove_username="$1"
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp postactiv
+
     function_check get_completion_param
     POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
     if [ -d /var/www/$POSTACTIV_DOMAIN_NAME ]; then
@@ -65,6 +67,8 @@ function add_user_postactiv {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a postactiv -p "$new_user_password"
+
     POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
     if [ -d /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs ]; then
         cd /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
@@ -145,20 +149,7 @@ function change_password_postactiv {
     echo -n ''
 }
 
-function get_mariadb_postactiv_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "MariaDB postactiv admin password" /home/$MY_USERNAME/README; then
-            POSTACTIV_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB postactiv admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-        if grep -q "postactiv administrator password" /home/$MY_USERNAME/README; then
-            POSTACTIV_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "postactiv administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
-}
-
 function postactiv_create_database {
-    function_check get_mariadb_postactiv_admin_password
-    get_mariadb_postactiv_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         POSTACTIV_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
@@ -333,7 +324,6 @@ function remove_postactiv {
     if [ -f /etc/cron.hourly/postactiv-daemons ]; then
         rm /etc/cron.hourly/postactiv-daemons
     fi
-    sed -i '/Postactiv/d' /home/$MY_USERNAME/README
     remove_backup_database_local postactiv
 
     function_check remove_ddns_domain
@@ -588,31 +578,7 @@ function install_postactiv_main {
 
     ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$POSTACTIV_DOMAIN_NAME" -g postactiv --public no
 
-    # some post-install instructions for the user
-    if ! grep -q $"Postactiv administrator" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# Postactiv' >> /home/$MY_USERNAME/README
-        echo $"Postactiv administrator nickname: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Postactiv administrator password.*|Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD|g" /home/$MY_USERNAME/README
-        fi
-    fi
-
-    if ! grep -q "Postactiv onion domain" /home/$MY_USERNAME/README; then
-        echo $"Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Postactiv onion domain.*|Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}|g" /home/$MY_USERNAME/README
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a postactiv -p "$POSTACTIV_ADMIN_PASSWORD"
 
     set_completion_param "postactiv domain" "$POSTACTIV_DOMAIN_NAME"
 
diff --git a/src/freedombone-app-radicale b/src/freedombone-app-radicale
index 7cad6abf2..17fd9615c 100755
--- a/src/freedombone-app-radicale
+++ b/src/freedombone-app-radicale
@@ -52,6 +52,9 @@ radicale_variables=(ONION_ONLY
 
 function remove_user_radicale {
     remove_username="$1"
+
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp radicale
+
     if grep "${remove_username}:" ${RADICALE_USERS}; then
         sed -i "/${remove_username}:/d" ${RADICALE_USERS}
         if [ -d /var/www/radicale/collections/${remove_username} ]; then
@@ -68,6 +71,8 @@ function add_user_radicale {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a radicale -p "$new_user_password"
+
     if [ ! -f ${RADICALE_USERS} ]; then
         touch ${RADICALE_USERS}
     fi
@@ -94,6 +99,8 @@ function change_password_radicale {
     existing_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $existing_username -a radicale -p "$new_user_password"
+
     if grep "${existing_username}:" ${RADICALE_USERS}; then
         sed -i "/${existing_username}:/d" ${RADICALE_USERS}
         htpasswd -bd ${RADICALE_USERS} "$existing_username" "$new_user_password"
@@ -118,7 +125,8 @@ function reconfigure_radicale {
         RADICALE_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
     fi
     add_user_radicale "$MY_USERNAME" "$RADICALE_PASSWORD"
-    sed -i "s|Your Radicale password is.*|Your Radicale password is: ${RADICALE_PASSWORD}|g" /home/$MY_USERNAME/README
+
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a radicale -p "$RADICALE_PASSWORD"
 
     touch /var/log/radicale/radicale.log
     chown -R www-data:www-data /var/log/radicale
@@ -294,7 +302,6 @@ function remove_radicale {
 
     remove_completion_param install_radicale
     sed -i '/radicale/d' $COMPLETION_FILE
-    sed -i '/Radicale/d' /home/$MY_USERNAME/README
     sed -i '/location \/radicale/,/}/d' /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
     systemctl restart nginx
 }
@@ -487,15 +494,7 @@ function install_radicale {
 
     systemctl restart nginx
 
-    if ! grep -q "# Radicale" /home/$MY_USERNAME/README; then
-        echo $'# Radicale' >> /home/$MY_USERNAME/README
-        echo $"Your Radicale password is: ${RADICALE_PASSWORD}" >> /home/$MY_USERNAME/README
-        echo $"Radicale is accessible via https://${DEFAULT_DOMAIN_NAME}/radicale/" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        sed -i "s|Your Radicale password is.*|Your Radicale password is: ${RADICALE_PASSWORD}|g" /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a radicale -p "$RADICALE_PASSWORD"
 
     # keep track of the version so we can check for upgrades
     if ! grep -q "radicale version:" ${COMPLETION_FILE}; then
diff --git a/src/freedombone-app-rss b/src/freedombone-app-rss
index c603cf4f8..76998df19 100755
--- a/src/freedombone-app-rss
+++ b/src/freedombone-app-rss
@@ -60,20 +60,10 @@ function install_interactive_rss {
 }
 
 function change_password_rss {
-    echo -n ''
-}
-
-function get_mariadb_rss_admin_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "RSS reader admin password" /home/$MY_USERNAME/README; then
-            RSS_READER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "RSS reader admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-        fi
-    fi
+    ${PROJECT_NAME}-pass -u $1 -a rss -p "$2"
 }
 
 function rss_create_database {
-    function_check get_mariadb_rss_admin_password
-    get_mariadb_rss_admin_password
     if [ -f $IMAGE_PASSWORD_FILE ]; then
         RSS_READER_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
     else
@@ -267,7 +257,6 @@ function remove_rss {
     remove_completion_param install_rss
     sed -i '/RSS /d' $COMPLETION_FILE
     sed -i '/rss /d' $COMPLETION_FILE
-    sed -i '/RSS reader/d' /home/$MY_USERNAME/README
     remove_backup_database_local ttrss
 }
 
@@ -496,19 +485,7 @@ function install_rss_main {
     systemctl daemon-reload
     systemctl start ttrss
 
-    # some post-install instructions for the user
-    if ! grep -q $"RSS Reader" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# RSS Reader' >> /home/$MY_USERNAME/README
-        echo $"RSS reader domain: ${RSS_READER_DOMAIN_NAME}" >> /home/$MY_USERNAME/README
-        echo $"RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"RSS reader admin username: admin" >> /home/$MY_USERNAME/README
-        echo $"RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a rss -p "$RSS_READER_ADMIN_PASSWORD"
 
     install_completed rss_main
 }
diff --git a/src/freedombone-app-sip b/src/freedombone-app-sip
index 640927564..2a08bb0d1 100755
--- a/src/freedombone-app-sip
+++ b/src/freedombone-app-sip
@@ -54,6 +54,8 @@ function remove_user_sip {
     remove_username="$1"
     ${PROJECT_NAME}-rmsipuser ${remove_username}
 
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp sip
+
     # remove user from SIP TURN/STUN
     if [ -f /etc/turnserver/turnusers.txt ]; then
         sed -i "/${remove_username}:/d" /etc/turnserver/turnusers.txt
@@ -64,6 +66,8 @@ function add_user_sip {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a sip -p "$new_user_password"
+
     SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
     ${PROJECT_NAME}-addsipuser -u $new_username -e $SIP_EXTENSION -p "$new_user_password"
     if [ ! "$?" = "0" ]; then
@@ -93,7 +97,7 @@ function install_interactive_sip {
 }
 
 function change_password_sip {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a sip -p "$2"
 }
 
 function reconfigure_sip {
@@ -177,7 +181,6 @@ function remove_sip {
     remove_completion_param install_sip
     remove_completion_param configure_firewall_for_turn
     remove_completion_param configure_firewall_for_sip4
-    sed -i '/SIP /d' /home/$MY_USERNAME/README
 }
 
 function configure_firewall_for_turn {
@@ -197,16 +200,6 @@ function configure_firewall_for_sip4 {
     firewall_add "SIP TLS" ${SIP_TLS_PORT}
 }
 
-function get_sip_server_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "sip server password" /home/$MY_USERNAME/README; then
-            if [ ! $SIP_SERVER_PASSWORD ]; then
-                SIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "sip server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-            fi
-        fi
-    fi
-}
-
 function update_sipwitch_daemon {
     if [ ! -f /etc/init.d/sipwitch ]; then
         return
@@ -251,12 +244,10 @@ function install_sip_main {
 
     apt-get -yq install sipwitch
 
-    function_check get_sip_server_password
-    get_sip_server_password
-    if [ ! $SIP_SERVER_PASSWORD ]; then
-        if [ -f $IMAGE_PASSWORD_FILE ]; then
-            SIP_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
-        else
+    if [ -f $IMAGE_PASSWORD_FILE ]; then
+        SIP_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+    else
+        if [ ! $SIP_SERVER_PASSWORD ]; then
             SIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
         fi
     fi
@@ -310,17 +301,7 @@ function install_sip_main {
 
     SIP_ONION_HOSTNAME=$(add_onion_service sip ${SIP_PORT} ${SIP_PORT})
 
-    if ! grep -q $"SIP Server" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# SIP Server' >> /home/$MY_USERNAME/README
-        echo $"SIP onion_domain: $SIP_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
-        echo $"SIP server username: $MY_USERNAME" >> /home/$MY_USERNAME/README
-        echo $"SIP server extension: 201" >> /home/$MY_USERNAME/README
-        echo $"SIP server password: $SIP_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a sip -p "$SIP_SERVER_PASSWORD"
 
     function_check configure_firewall_for_sip4
     configure_firewall_for_sip4
diff --git a/src/freedombone-app-synapse b/src/freedombone-app-synapse
index d0555d42b..7be562dbb 100755
--- a/src/freedombone-app-synapse
+++ b/src/freedombone-app-synapse
@@ -189,6 +189,9 @@ function can_install_synapse {
 
 function remove_user_synapse {
     remove_username="$1"
+
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp synapse
+
     # TODO
 }
 
@@ -196,6 +199,8 @@ function add_user_synapse {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a synapse -p "$new_user_password"
+
     cd $SYNAPSE_DIR
     register_new_matrix_user -c homeserver.yaml https://localhost:${SYNAPSE_PORT} -u "${new_username}" -p "${new_user_password}" -a
     echo '0'
@@ -207,7 +212,7 @@ function install_interactive_synapse {
 }
 
 function change_password_synapse {
-    echo -n ''
+    ${PROJECT_NAME}-pass -u $1 -a synapse -p "$2"
 }
 
 function reconfigure_synapse {
@@ -324,7 +329,6 @@ function remove_synapse {
 
     remove_completion_param install_synapse
     sed -i '/synapse/d' $COMPLETION_FILE
-    sed -i '/Synapse/d' /home/$MY_USERNAME/README
 }
 
 function install_synapse {
@@ -383,17 +387,6 @@ function install_synapse {
     firewall_add synapse ${SYNAPSE_PORT}
 
     SYNAPSE_ONION_HOSTNAME=$(add_onion_service synapse ${SYNAPSE_PORT} ${SYNAPSE_PORT})
-    if ! grep -q "Synapse onion domain" /home/$MY_USERNAME/README; then
-        echo $"Synapse onion domain: ${SYNAPSE_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    else
-        if [ -f /home/$MY_USERNAME/README ]; then
-            sed -i "s|Synapse onion domain.*|Synapse onion domain: ${SYNAPSE_ONION_HOSTNAME}|g" /home/$MY_USERNAME/README
-        fi
-    fi
-
     if [ ! ${SYNAPSE_PASSWORD} ]; then
         if [ -f ${IMAGE_PASSWORD_FILE} ]; then
             SYNAPSE_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
@@ -404,19 +397,6 @@ function install_synapse {
 
     add_user_synapse "${MY_USERNAME}" "${SYNAPSE_PASSWORD}"
 
-    if ! grep -q $"Synapse administrator" /home/${MY_USERNAME}/README; then
-        echo '' >> /home/${MY_USERNAME}/README
-        echo $'# Synapse' >> /home/${MY_USERNAME}/README
-        echo $"Synapse administrator nickname: $MY_USERNAME" >> /home/${MY_USERNAME}/README
-        echo $"Synapse administrator password: $SYNAPSE_PASSWORD" >> /home/${MY_USERNAME}/README
-        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
-        chmod 600 /home/${MY_USERNAME}/README
-    else
-        if [ -f /home/${MY_USERNAME}/README ]; then
-            sed -i "s|Synapse administrator password.*|Synapse administrator password: $SYNAPSE_PASSWORD|g" /home/${MY_USERNAME}/README
-        fi
-    fi
-
     #install_matrix_irc_bridge
 
     APP_INSTALLED=1
diff --git a/src/freedombone-app-tox b/src/freedombone-app-tox
index 21e1c1922..12b9f1b89 100755
--- a/src/freedombone-app-tox
+++ b/src/freedombone-app-tox
@@ -254,8 +254,6 @@ function remove_tox_node {
     fi
     remove_completion_param install_tox_node
     remove_completion_param configure_firewall_for_tox
-    sed -i '/Tox' /home/$MY_USERNAME/README
-    sed -i '/tox ' /home/$MY_USERNAME/README
 }
 
 function remove_tox_avahi {
@@ -374,16 +372,6 @@ function install_tox_node {
     function_check configure_firewall_for_tox
     configure_firewall_for_tox
 
-    if ! grep -q $"Your Tox node public key is" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo '# Tox' >> /home/$MY_USERNAME/README
-        echo $"tox onion domain: ${TOX_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"Your Tox node public key is: $TOX_PUBLIC_KEY" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
-    fi
-
     function_check configure_firewall_for_tox
     configure_firewall_for_tox
     install_completed tox_node
diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
index 9d00fc3f8..baa4d39ef 100755
--- a/src/freedombone-app-xmpp
+++ b/src/freedombone-app-xmpp
@@ -51,6 +51,7 @@ xmpp_variables=(ONION_ONLY
 
 function remove_user_xmpp {
     remove_username="$1"
+    ${PROJECT_NAME}-pass -u $remove_username --rmapp xmpp
     ${PROJECT_NAME}-rmxmpp -e "${remove_username}@$HOSTNAME"
 }
 
@@ -58,6 +59,8 @@ function add_user_xmpp {
     new_username="$1"
     new_user_password="$2"
 
+    ${PROJECT_NAME}-pass -u $new_username -a xmpp -p "$new_user_password"
+
     ${PROJECT_NAME}-addxmpp -e "$new_username@$HOSTNAME" -p "$new_user_password"
     if [ ! "$?" = "0" ]; then
         echo '1'
@@ -286,7 +289,6 @@ function remove_xmpp {
 
     remove_completion_param install_xmpp
     sed -i '/xmpp/d' $COMPLETION_FILE
-    sed -i '/XMPP/d' /home/$MY_USERNAME/README
 }
 
 function xmpp_email_headers {
@@ -461,7 +463,6 @@ function install_xmpp_main {
     sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/prosody.cfg.lua
 
     update_default_domain
-    touch /home/$MY_USERNAME/README
 
     if [ ! -d /var/lib/tor ]; then
         echo $'No Tor installation found. xmpp onion site cannot be configured.'
@@ -489,23 +490,16 @@ function install_xmpp_main {
     fi
     set_completion_param "xmpp onion domain" "${XMPP_ONION_HOSTNAME}"
 
-    if ! grep -q "Your XMPP password is" /home/$MY_USERNAME/README; then
+    if [ -f $IMAGE_PASSWORD_FILE ]; then
+        XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+    else
         if [ ${#XMPP_PASSWORD} -lt 8 ]; then
-            if [ -f $IMAGE_PASSWORD_FILE ]; then
-                XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
-            else
-                XMPP_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
-            fi
+            XMPP_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
         fi
-        prosodyctl register $MY_USERNAME $DEFAULT_DOMAIN_NAME $XMPP_PASSWORD
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo $'# XMPP' >> /home/$MY_USERNAME/README
-        echo $"XMPP onion domain: ${XMPP_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
-        echo $"Your XMPP password is: $XMPP_PASSWORD" >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
     fi
+    prosodyctl register $MY_USERNAME $DEFAULT_DOMAIN_NAME $XMPP_PASSWORD
+
+    ${PROJECT_NAME}-pass -u $MY_USERNAME -a xmpp -p "$XMPP_PASSWORD"
 
     function_check configure_firewall_for_xmpp
     configure_firewall_for_xmpp
diff --git a/src/freedombone-app-zeronet b/src/freedombone-app-zeronet
index 67cd12689..8be8d7da2 100755
--- a/src/freedombone-app-zeronet
+++ b/src/freedombone-app-zeronet
@@ -135,7 +135,6 @@ function remove_zeronet {
     remove_completion_param install_zeronet
     remove_completion_param configure_firewall_for_zeronet
     sed -i '/zeronet/d' $COMPLETION_FILE
-    sed -i '/ZeroNet/d' /home/$MY_USERNAME/README
 }
 
 function configure_firewall_for_zeronet {
@@ -153,14 +152,6 @@ function install_zeronet_blog {
         return
     fi
 
-    if [ ! -f /home/$MY_USERNAME/README ]; then
-        touch /home/$MY_USERNAME/README
-    fi
-
-    if grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
-        return
-    fi
-
     if [ ! -d /etc/avahi ]; then
         echo $'Avahi is not installed'
         exit 736
@@ -236,12 +227,6 @@ function install_zeronet_blog {
     fi
     echo "${ZERONET_URL}/${ZERONET_BLOG_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myblog
 
-    if ! grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS" >> /home/$MY_USERNAME/README
-        echo "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> /home/$MY_USERNAME/README
-    fi
-
     install_completed zeronet_blog
 }
 
@@ -250,14 +235,6 @@ function install_zeronet_mail {
         return
     fi
 
-    if [ ! -f /home/$MY_USERNAME/README ]; then
-        touch /home/$MY_USERNAME/README
-    fi
-
-    if grep -q "ZeroNet Mail address" /home/$MY_USERNAME/README; then
-        return
-    fi
-
     if [ ! -d /etc/avahi ]; then
         echo 'Avahi is not installed'
         exit 736
@@ -333,12 +310,6 @@ function install_zeronet_mail {
     fi
     echo "${ZERONET_URL}/${ZERONET_MAIL_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/mymail
 
-    if ! grep -q $"ZeroNet Mail address" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS" >> /home/$MY_USERNAME/README
-        echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> /home/$MY_USERNAME/README
-    fi
-
     install_completed zeronet_mail
 }
 
@@ -347,14 +318,6 @@ function install_zeronet_forum {
         return
     fi
 
-    if [ ! -f /home/$MY_USERNAME/README ]; then
-        touch /home/$MY_USERNAME/README
-    fi
-
-    if grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
-        return
-    fi
-
     if [ ! -d /etc/avahi ]; then
         echo $'Avahi is not installed'
         exit 736
@@ -424,12 +387,6 @@ function install_zeronet_forum {
     fi
     echo "${ZERONET_URL}/${ZERONET_FORUM_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myforum
 
-    if ! grep -q $"ZeroNet Forum address" /home/$MY_USERNAME/README; then
-        echo '' >> /home/$MY_USERNAME/README
-        echo $"ZeroNet Forum address: $ZERONET_FORUM_ADDRESS" >> /home/$MY_USERNAME/README
-        echo $"ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY" >> /home/$MY_USERNAME/README
-    fi
-
     install_completed zeronet_forum
 }
 
diff --git a/src/freedombone-pass b/src/freedombone-pass
index 1face6e92..a43100677 100755
--- a/src/freedombone-pass
+++ b/src/freedombone-pass
@@ -44,7 +44,9 @@ export TEXTDOMAINDIR="/usr/share/locale"
 
 MY_BACKUP_KEY_ID=
 CURR_USERNAME=
+REMOVE_USERNAME=
 CURR_APP=
+REMOVE_APP=
 CURR_PASSWORD=""
 
 function get_backup_key_id {
@@ -76,6 +78,14 @@ function pass_show_help {
     echo $''
     echo $"  ${PROJECT_NAME}-pass -u [username] -a [app]"
     echo ''
+    echo $'To remove passwords for a user:'
+    echo $''
+    echo $"  ${PROJECT_NAME}-pass -r [username]"
+    echo ''
+    echo $'To remove an application password for a user:'
+    echo $''
+    echo $"  ${PROJECT_NAME}-pass --u [username] --rmapp [name]"
+    echo ''
     exit 0
 }
 
@@ -95,6 +105,14 @@ do
             shift
             CURR_USERNAME="${1}"
             ;;
+        -r|--rm|--remove)
+            shift
+            REMOVE_USERNAME="${1}"
+            ;;
+        --rmapp|--removeapp)
+            shift
+            REMOVE_APP="${1}"
+            ;;
         -a|--app|--application)
             shift
             CURR_APP="${1}"
@@ -110,6 +128,13 @@ do
     shift
 done
 
+if [ ${REMOVE_USERNAME} ]; then
+    if [ -d ~/.passwords/${REMOVE_USERNAME} ]; then
+        rm -rf ~/.passwords/${REMOVE_USERNAME}
+    fi
+    exit 0
+fi
+
 get_backup_key_id
 
 # Use the backups private key as a symmetric passphrase
@@ -125,6 +150,13 @@ if [ ! -d /home/$CURR_USERNAME ]; then
     exit 2
 fi
 
+if [ ${REMOVE_APP} ]; then
+    if [ -d ~/.passwords/${CURR_USERNAME}/${REMOVE_APP} ]; then
+        shred -zu ~/.passwords/${CURR_USERNAME}/${REMOVE_APP}
+    fi
+    exit 0
+fi
+
 if [ ! $CURR_APP ]; then
     echo $'No app name given'
     exit 3
diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database
index 2e6cf1e70..16bb5258f 100755
--- a/src/freedombone-utils-database
+++ b/src/freedombone-utils-database
@@ -114,16 +114,8 @@ function backup_database_local {
 }
 
 function get_mariadb_password {
-    if [ -f /home/$MY_USERNAME/README ]; then
-        if grep -q "MariaDB password" /home/$MY_USERNAME/README; then
-            if [ -f $DATABASE_PASSWORD_FILE ]; then
-                MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
-            else
-                MARIADB_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-                echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
-                chmod 600 $DATABASE_PASSWORD_FILE
-            fi
-        fi
+    if [ -f $DATABASE_PASSWORD_FILE ]; then
+        MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
     fi
 }
 
@@ -145,14 +137,6 @@ function install_mariadb {
         fi
         echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
         chmod 600 $DATABASE_PASSWORD_FILE
-
-        echo '' >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        echo '# MariaDB / MySql' >> /home/$MY_USERNAME/README
-        echo $"Your MariaDB password is: $MARIADB_PASSWORD" >> /home/$MY_USERNAME/README
-        echo '' >> /home/$MY_USERNAME/README
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-        chmod 600 /home/$MY_USERNAME/README
     fi
 
     debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
-- 
GitLab