diff --git a/dashboards/deploy.py b/dashboards/deploy.py
index 29bee74cbebef4546033077e5bd86ead5ed71e3c..6d527297af949c98a5f04dd788f5adff12354099 100644
--- a/dashboards/deploy.py
+++ b/dashboards/deploy.py
@@ -1,10 +1,37 @@
+import argparse
+import logging
+
 import dashboards.dashboard_list as boards
 from dashboards.upload import upload_dashboard
 
+logger = logging.getLogger(__file__)
+logger.setLevel(logging.INFO)
+
+
+def get_available_dashboards():
+    yield from (func for func in dir(boards) if func.startswith("dashboard_"))
+
+
+def strip_prefix(available):
+    return available.replace("dashboard_", "")
+
 
 def main():
+    available_dashboards = list(get_available_dashboards())
+    parser = argparse.ArgumentParser(description="List Dashboards you want to deploy")
+    parser.add_argument("dashboards",
+                        nargs='*',
+                        help=', '.join((strip_prefix(d) for d in available_dashboards)))
+    args = parser.parse_args()
+    if len(args.dashboards) == 0:
+        dashboards = available_dashboards
+    else:
+        dashboards = (f"dashboard_{db}" for db in args.dashboards)
+
     walberla_folder = 8
-    for board in [getattr(boards, func) for func in dir(boards) if func.startswith("dashboard_")]:
+    for board in dashboards:
+        logger.info(f"Try to upload {board}")
+        board = getattr(boards, board)
         upload_dashboard(board(), folder=walberla_folder)