diff --git a/selfprivacy_api/services/config_service/__init__.py b/selfprivacy_api/services/config_service/__init__.py
deleted file mode 100644
index ef7e9a2..0000000
--- a/selfprivacy_api/services/config_service/__init__.py
+++ /dev/null
@@ -1,188 +0,0 @@
-"""Class representing the configs of our API
-Mostly for backupping purposes
-"""
-
-import base64
-import typing
-
-from typing import List
-from os import path, mkdir
-from pathlib import Path
-
-# from enum import Enum
-
-from selfprivacy_api.services.service import Service, ServiceStatus
-
-from selfprivacy_api.services.test_service.icon import BITWARDEN_ICON
-from selfprivacy_api.utils import USERDATA_FILE, DKIM_DIR, SECRETS_FILE
-from selfprivacy_api.utils.block_devices import BlockDevices
-from shutil import copyfile, copytree, rmtree
-
-
-from selfprivacy_api.services.bitwarden import Bitwarden
-from selfprivacy_api.services.gitea import Gitea
-from selfprivacy_api.services.jitsimeet import JitsiMeet
-from selfprivacy_api.services.mailserver import MailServer
-from selfprivacy_api.services.nextcloud import Nextcloud
-from selfprivacy_api.services.pleroma import Pleroma
-from selfprivacy_api.services.ocserv import Ocserv
-
-
-CONFIG_STASH_DIR = "/tmp/selfprivacy_config_dump"
-
-
-# it is too intimately tied to Services
-# that's why it is so awkward.
-# service list is below
-
-
-class ConfigService(Service):
- """A fake service to store our configs"""
-
- folders: List[str] = [CONFIG_STASH_DIR]
-
- @staticmethod
- def get_id() -> str:
- """Return service id."""
- return "testservice"
-
- @staticmethod
- def get_display_name() -> str:
- """Return service display name."""
- return "Test Service"
-
- @staticmethod
- def get_description() -> str:
- """Return service description."""
- return "A small service used for test purposes. Does nothing."
-
- @staticmethod
- def get_svg_icon() -> str:
- """Read SVG icon from file and return it as base64 encoded string."""
- # return ""
- return base64.b64encode(BITWARDEN_ICON.encode("utf-8")).decode("utf-8")
-
- @staticmethod
- def get_url() -> typing.Optional[str]:
- """Return service url."""
- domain = "test.com"
- return f"https://password.{domain}"
-
- @staticmethod
- def get_subdomain() -> typing.Optional[str]:
- return "password"
-
- @classmethod
- def is_movable(cls) -> bool:
- return False
-
- @staticmethod
- def is_required() -> bool:
- return False
-
- @staticmethod
- def get_backup_description() -> str:
- return "How did we get here?"
-
- @classmethod
- def status_file(cls) -> str:
- dir = cls.folders[0]
- # We do not want to store our state in our declared folders
- # Because they are moved and tossed in tests wildly
- parent = Path(dir).parent
-
- return path.join(parent, "service_status")
-
- @classmethod
- def set_status(cls, status: ServiceStatus):
- pass
-
- @classmethod
- def get_status(cls) -> ServiceStatus:
- return ServiceStatus.ACTIVE
-
- @classmethod
- def can_be_backed_up(cls) -> bool:
- """`True` if the service can be backed up."""
- return True
-
- @staticmethod
- def merge_settings(restored_settings_folder: str):
- # For now we will just copy settings EXCEPT the locations of services
- # Stash locations as they are set by user right now
- locations = {}
- for service in services:
- locations[service.get_id()] = service.get_drive()
-
- # Copy files
- userdata_name = path.basename(USERDATA_FILE)
- secretfile_name = path.basename(SECRETS_FILE)
- dkim_dirname = path.basename(DKIM_DIR)
-
- copyfile(path.join(restored_settings_folder, userdata_name), USERDATA_FILE)
- copyfile(path.join(restored_settings_folder, secretfile_name), SECRETS_FILE)
- copytree(path.join(restored_settings_folder, dkim_dirname), DKIM_DIR)
-
- # Pop locations
- for service in services:
- device = BlockDevices().get_block_device(locations[service.get_id()])
- if device is not None:
- service.set_location(device.name)
-
- @classmethod
- def stop(cls):
- # simulate a failing service unable to stop
- if not cls.get_status() == ServiceStatus.FAILED:
- cls.set_status(ServiceStatus.DEACTIVATING)
- cls.change_status_with_async_delay(
- ServiceStatus.INACTIVE, cls.startstop_delay
- )
-
- @classmethod
- def start(cls):
- pass
-
- @classmethod
- def restart(cls):
- pass
-
- @staticmethod
- def get_logs():
- return ""
-
- @classmethod
- def get_drive(cls) -> str:
- return BlockDevices().get_root_block_device().name
-
- @classmethod
- def get_folders(cls) -> List[str]:
- return cls.folders
-
- @classmethod
- def pre_backup(cls):
- tempdir = cls.folders[0]
- rmtree(tempdir, ignore_errors=True)
- mkdir(tempdir)
-
- copyfile(USERDATA_FILE, tempdir)
- copyfile(SECRETS_FILE, tempdir)
- copytree(DKIM_DIR, tempdir)
-
- @classmethod
- def post_restore(cls):
- tempdir = cls.folders[0]
- cls.merge_settings(tempdir)
- rmtree(tempdir, ignore_errors=True)
-
-
-# It is here because our thing needs to include itself
-services: list[Service] = [
- Bitwarden(),
- Gitea(),
- MailServer(),
- Nextcloud(),
- Pleroma(),
- Ocserv(),
- JitsiMeet(),
- ConfigService(),
-]
diff --git a/selfprivacy_api/services/config_service/bitwarden.svg b/selfprivacy_api/services/config_service/bitwarden.svg
deleted file mode 100644
index ced270c..0000000
--- a/selfprivacy_api/services/config_service/bitwarden.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/selfprivacy_api/services/config_service/icon.py b/selfprivacy_api/services/config_service/icon.py
deleted file mode 100644
index f9280e0..0000000
--- a/selfprivacy_api/services/config_service/icon.py
+++ /dev/null
@@ -1,5 +0,0 @@
-BITWARDEN_ICON = """
-
-"""