diff --git a/src/freedombone-app-babel b/src/freedombone-app-babel
index 04b5a3e50049d15570f8b3cd06410d2814dfa27d..63bdf86b70a03113e3c8728cd4357ff8dbb6292e 100755
--- a/src/freedombone-app-babel
+++ b/src/freedombone-app-babel
@@ -32,6 +32,10 @@
 ENABLE_BABEL="no"
 BABEL_PORT=6696
 
+function backup_babel {
+    echo ''
+}
+
 function remove_babel {
     if ! grep -Fxq "mesh_babel" $COMPLETION_FILE; then
         return
diff --git a/src/freedombone-app-batman b/src/freedombone-app-batman
index 99db647d78ca23f60e235fe25500e69282c17232..84eef455025fe6dfa848228b6659d9cf20f1052c 100755
--- a/src/freedombone-app-batman
+++ b/src/freedombone-app-batman
@@ -45,6 +45,10 @@ function configure_firewall_for_batman {
 	echo 'configure_firewall_for_batman' >> $COMPLETION_FILE
 }
 
+function backup_batman {
+    echo ''
+}
+
 function remove_batman {
 	if ! grep -Fxq "mesh_batman" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-blog b/src/freedombone-app-blog
index ef4dc2e5c0a5831ec640c1df03ade0f6e4465ea6..714e3f7ec7adc1d5ee055ef35bde411248876402 100755
--- a/src/freedombone-app-blog
+++ b/src/freedombone-app-blog
@@ -36,6 +36,10 @@ FULLBLOG_COMMIT='bf5fe9486160be4da86d8987d3e5c977e1dc6d32'
 MY_BLOG_TITLE="My Blog"
 MY_BLOG_SUBTITLE="Another ${PROJECT_NAME} Blog"
 
+function backup_blog {
+    echo ''
+}
+
 function remove_blog {
 	if ! grep -Fxq "install_blog" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-cjdns b/src/freedombone-app-cjdns
index f4ffdd1899656ec25a26e634e3d9144cbaff8d35..3ba35d07e1528c00971b276527de8ad5eb24da7d 100755
--- a/src/freedombone-app-cjdns
+++ b/src/freedombone-app-cjdns
@@ -107,12 +107,16 @@ function get_cjdns_password {
 	fi
 }
 
+function backup_cjdns {
+	echo ''
+}
+
 function remove_cjdns {
 	if ! grep -Fxq "mesh_cjdns" $COMPLETION_FILE; then
 		return
 	fi
 	service cjdns stop
-	ip6tables -t nat -D POSTROUTING -o tun0 -j MASQUERADE
+	ip6tables -D nat -D POSTROUTING -o tun0 -j MASQUERADE
 	ip6tables -D FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 	ip6tables -D INPUT -p udp --dport $CJDNS_PORT -j ACCEPT
 	ip6tables -D INPUT -p tcp --dport $CJDNS_PORT -j ACCEPT
@@ -121,6 +125,7 @@ function remove_cjdns {
 
 	rm -rf /etc/cjdns
 	sed -i '/mesh_cjdns/d' $COMPLETION_FILE
+	sed -i '/cjdns /d' $COMPLETION_FILE
 	sed -i '/configure_firewall_for_cjdns/d' $COMPLETION_FILE
 }
 
diff --git a/src/freedombone-app-dlna b/src/freedombone-app-dlna
index 36358f388cb9b1b0c1c751d2f107ec9675e38c45..5a9e41f7a3c7b2eb1849459ff7cd875119dcfdba 100755
--- a/src/freedombone-app-dlna
+++ b/src/freedombone-app-dlna
@@ -49,6 +49,10 @@ function configure_firewall_for_dlna {
 	echo 'configure_firewall_for_dlna' >> $COMPLETION_FILE
 }
 
+function backup_dlna_server {
+    echo ''
+}
+
 function remove_dlna_server {
 	if ! grep -Fxq "install_dlna_server" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-gnusocial b/src/freedombone-app-gnusocial
index c1a80a1ddfca5511ba47a33514bcc017dd2e05c3..01774f1025f05eb67ddfd88085eee312ea75c56b 100755
--- a/src/freedombone-app-gnusocial
+++ b/src/freedombone-app-gnusocial
@@ -47,6 +47,10 @@ SHARINGS_COMMIT='d5c6c7f855d9afff9086c09ea706f38c859bc0d4'
 SHARINGS_THEME_REPO="http://git.lasindias.club/manuel/SharingsTheme"
 SHARINGS_THEME_COMMIT='7106c7ef03'
 
+function backup_gnu_social {
+    echo ''
+}
+
 function remove_gnu_social {
 	if ! grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-gogs b/src/freedombone-app-gogs
index dd2331f6f12fcb5b172c57a28a011c4789652dad..c11d4cbbea7900c0dc34108c3c16c7fae6ff2134 100755
--- a/src/freedombone-app-gogs
+++ b/src/freedombone-app-gogs
@@ -35,6 +35,10 @@ GIT_DOMAIN_REPO="https://github.com/gogits/gogs"
 GIT_ADMIN_PASSWORD=
 GOGS_COMMIT='3fb4f7f4980b4339fd9ef6a3ba5b0acab83d264d'
 
+function backup_gogs {
+    echo ''
+}
+
 function remove_gogs {
 	if ! grep -Fxq "install_gogs" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-hubzilla b/src/freedombone-app-hubzilla
index 032f794d504a2a2fcfd96882df8181d47359cc04..12f49e1a874d82e9e378b0b03aa4da4e9402ea58 100755
--- a/src/freedombone-app-hubzilla
+++ b/src/freedombone-app-hubzilla
@@ -38,6 +38,10 @@ HUBZILLA_ADMIN_PASSWORD=
 HUBZILLA_COMMIT='2d79e75788aa71664a379c4cea0b6bfe3ab87ad0'
 HUBZILLA_ADDONS_COMMIT='67b40c7a40f328a93ee030eb15e9e1261f3cba64'
 
+function backup_hubzilla {
+    echo ''
+}
+
 function remove_hubzilla {
 	if ! grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-intrusion b/src/freedombone-app-intrusion
index 64feb0602be5a325295fa98043c04a26ab247040..c8832016f6bb7f7864b599aa0aabcba1ad41a3cd 100755
--- a/src/freedombone-app-intrusion
+++ b/src/freedombone-app-intrusion
@@ -28,6 +28,10 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+function backup_intrusion_detection {
+    echo ''
+}
+
 function remove_intrusion_detection {
 	if ! grep -Fxq "intrusion_detection" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-ipfs b/src/freedombone-app-ipfs
index fc7d2a3943f1d20ae0d5f54648267e78a054c32f..f1dbf9f9e13339a8dd0ab0d837490bba9cde4ddc 100755
--- a/src/freedombone-app-ipfs
+++ b/src/freedombone-app-ipfs
@@ -32,6 +32,10 @@ IPFS_GO_REPO="https://github.com/ipfs/go-ipfs"
 IPFS_COMMIT='20b06a4cbce8884f5b194da6e98cb11f2c77f166'
 IPFS_PORT=4001
 
+function backup_ipfs {
+    echo ''
+}
+
 function remove_ipfs {
 	if ! grep -Fxq "install_ipfs" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
index 3d23ec35e4400ceadf2b29d571a8c50122d79054..176cec307fa9744f0759f16c3fdb04daf1da4164 100755
--- a/src/freedombone-app-irc
+++ b/src/freedombone-app-irc
@@ -34,6 +34,10 @@ IRC_ONION_PORT=6697
 # An optional password to log into IRC. This applies to all users
 IRC_PASSWORD=
 
+function backup_irc_server {
+    echo ''
+}
+
 function remove_irc_server {
 	if ! grep -Fxq "install_irc_server" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-mediagoblin b/src/freedombone-app-mediagoblin
index a356fba28af816bda57ca62f8d4f07294e793122..35a73389258463c2e4c05577bb92bbd01aa3d88c 100755
--- a/src/freedombone-app-mediagoblin
+++ b/src/freedombone-app-mediagoblin
@@ -35,6 +35,10 @@ MEDIAGOBLIN_COMMIT='d1ac2d52fd8859c3f32fa38e4836ffe9615e5bba'
 MEDIAGOBLIN_ADMIN_PASSWORD=
 MEDIAGOBLIN_ONION_PORT=8096
 
+function backup_mediagoblin {
+    echo ''
+}
+
 function install_mediagoblin {
 	if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
 		return
diff --git a/src/freedombone-app-mumble b/src/freedombone-app-mumble
index 907cb0ae82aebf32bb4fb55925ee68f491b79f55..244aa30f9e016188ada2e90e64066d8a66741301 100755
--- a/src/freedombone-app-mumble
+++ b/src/freedombone-app-mumble
@@ -37,6 +37,10 @@ VOIP_PORT=64738
 VOIP_DATABASE="mumble-server.sqlite"
 VOIP_CONFIG_FILE="mumble-server.ini"
 
+function backup_mumble {
+    echo ''
+}
+
 function remove_mumble {
 	if !grep -Fxq "install_mumble" $COMPLETION_FILE; then
 		if ! grep -Fxq "install_voip" $COMPLETION_FILE; then
diff --git a/src/freedombone-app-rss b/src/freedombone-app-rss
index 6a56ca2b29a303e0a67a10759cd6bbea4a90c974..273946f9ffd5a2c4a19edf9f8198822a03c6a775 100755
--- a/src/freedombone-app-rss
+++ b/src/freedombone-app-rss
@@ -40,6 +40,10 @@ RSS_READER_PATH=/etc/share/tt-rss
 RSS_READER_GNUSOCIAL_REPO="https://github.com/bashrc/ttrss-gnusocial"
 RSS_READER_GNUSOCIAL_COMMIT='8b92b8f5db7b0d12459c7bd86a50f48815efe642'
 
+function backup_rss_reader {
+    echo ''
+}
+
 function remove_rss_reader {
 	if ! grep -Fxq "install_rss_reader" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-search b/src/freedombone-app-search
index a18088f2894ab9ccf5d8b55ee4156a789296fb7f..a23a816f6e6c0746489f1e17cf20f40a013c91ad 100755
--- a/src/freedombone-app-search
+++ b/src/freedombone-app-search
@@ -36,6 +36,10 @@ SEARCH_ENGINE_ONION_HOSTNAME=
 SEARCH_ENGINE_LOGIN_TEXT=$"Search engine login"
 SEARCH_ENGINE_PASSWORD=
 
+function backup_search_engine {
+    echo ''
+}
+
 function remove_search_engine {
 	if ! grep -Fxq "install_search_engine" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-sip b/src/freedombone-app-sip
index 3eee1cedc66917c81d9d59ed8f75eb57b4f7c9f7..c1f7e603c81eb0355fd317ec4ad37c85a6240eab 100755
--- a/src/freedombone-app-sip
+++ b/src/freedombone-app-sip
@@ -35,6 +35,10 @@ VOIP_TURN_PORT=3478
 VOIP_TURN_TLS_PORT=5349
 VOIP_TURN_NONCE=
 
+function backup_sip {
+    echo ''
+}
+
 function remove_sip {
 	if ! grep -Fxq "install_sip" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing
index dac89ce2c233aaa4f47e400bebb25d595a06d610..1d8e0415a1205d67d6ba9ca009bd994f1a42aa24 100755
--- a/src/freedombone-app-syncthing
+++ b/src/freedombone-app-syncthing
@@ -37,6 +37,10 @@ SYNCTHING_PORT=22000
 SYNCTHING_SHARED_DATA=/var/lib/syncthing/SyncShared
 SYNCTHING_USER_IDS_FILE='.syncthingids'
 
+function backup_syncthing {
+    echo ''
+}
+
 function remove_syncthing {
 	if ! grep -Fxq "install_syncthing" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-tox b/src/freedombone-app-tox
index 3293c16d1ebd45bfea5dc360c845b5ee2318700f..9a82461285eda32bdf3fe48a1dc3f32ec8088aa0 100755
--- a/src/freedombone-app-tox
+++ b/src/freedombone-app-tox
@@ -44,6 +44,10 @@ TOXIC_REPO="https://github.com/Tox/toxic"
 TOXIC_COMMIT='cf16849b374e484a33a4dffa3dfb937b59d537f2'
 TOXIC_FILE=/usr/local/bin/toxic
 
+function backup_tox {
+    echo ''
+}
+
 function remove_tox_node {
 	if ! grep -Fxq "install_tox_node" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-vpn b/src/freedombone-app-vpn
index e41df45ae5e528d4caa75a1ff4b1bf157bc84c42..9bb45669a65187cac41e4d7ef446b75b728cd2c4 100755
--- a/src/freedombone-app-vpn
+++ b/src/freedombone-app-vpn
@@ -28,6 +28,10 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+function backup_vpn_tunnel {
+    echo ''
+}
+
 function remove_vpn_tunnel {
 	apt-get -y remove --purge fastd
 }
diff --git a/src/freedombone-app-webmail b/src/freedombone-app-webmail
index ff8108885fd22801122aa1a6b6f0989ebf5e3a3b..ebc39347c05de685902e8393815d500480e23b69 100755
--- a/src/freedombone-app-webmail
+++ b/src/freedombone-app-webmail
@@ -36,6 +36,10 @@ WEBMAIL_ADMIN_PASSWORD=
 WEB_PATH=/var/www
 WEBMAIL_PATH=$WEB_PATH/webmail
 
+function backup_webmail {
+    echo ''
+}
+
 function remove_webmail {
 	if ! grep -Fxq "install_webmail" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-wiki b/src/freedombone-app-wiki
index fd4e08570babfd78ad9aa85fb0a5f2399fac30cd..f4bc74f1bdc21081f4b6cfddc954bba4c530950f 100755
--- a/src/freedombone-app-wiki
+++ b/src/freedombone-app-wiki
@@ -34,6 +34,10 @@ WIKI_TITLE="${PROJECT_NAME} Wiki"
 WIKI_CODE=
 WIKI_ONION_PORT=8089
 
+function backup_wiki {
+    echo ''
+}
+
 function remove_wiki {
 	if ! grep -Fxq "install_wiki" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
index 5c1d5ad5295dc11b6783adceb1c5d2fd952df047..56083de84bd5a5e63fc022eec136d7ce1a480175 100755
--- a/src/freedombone-app-xmpp
+++ b/src/freedombone-app-xmpp
@@ -35,6 +35,10 @@ XMPP_PASSWORD=
 XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
 XMPP_ECC_CURVE='"secp384r1"'
 
+function backup_xmpp {
+    echo ''
+}
+
 function configure_firewall_for_xmpp {
 	if [ ! -d /etc/prosody ]; then
 		return
diff --git a/src/freedombone-app-zeronet b/src/freedombone-app-zeronet
index fbe24e03b0224f87c3a2662941fb1b1ee4a13acb..4a9148dbcd590c7bf52ab49c14aae752b72c2ec8 100755
--- a/src/freedombone-app-zeronet
+++ b/src/freedombone-app-zeronet
@@ -45,6 +45,10 @@ ZERONET_DEFAULT_MAIL_TAGLINE="Mail for the Mesh"
 ZERONET_ID_REPO="https://github.com/HelloZeroNet/ZeroID"
 ZERONET_ID_COMMIT='ccf14fdc96fa9cdb2ddd8a7ab283a8e17a4f234b'
 
+function backup_zeronet {
+    echo ''
+}
+
 function remove_zeronet_blog {
 	if ! grep -Fxq "install_zeronet_blog" $COMPLETION_FILE; then
 		return