diff --git a/.gitlab-ci.yaml b/.gitlab-ci.yaml
index bb6ec97731b456e08cbbb59621d21c3407b96672..a04277fbaa9b962c06903e0ffd02cfe6cf57b361 100644
--- a/.gitlab-ci.yaml
+++ b/.gitlab-ci.yaml
@@ -12,6 +12,15 @@ variables:
   GIT_STRATEGY: clone
   GIT_SUBMODULE_STRATEGY: recursive
   HIVEMIND_SOURCE_HIVED_URL: $HIVEMIND_SOURCE_HIVED_URL
+  HIVEMIND_DB_NAME: "hive_$CI_COMMIT_REF_SLUG"
+  HIVEMIND_HTTP_PORT: $HIVEMIND_HTTP_PORT
+  # Configured at gitlab repository settings side
+  POSTGRES_USER: $HIVEMIND_POSTGRES_USER
+  POSTGRES_PASSWORD: $HIVEMIND_POSTGRES_PASSWORD
+  POSTGRES_HOST_AUTH_METHOD: trust
+  # official way to provide password to psql: http://www.postgresql.org/docs/9.3/static/libpq-envars.html
+  PGPASSWORD: $HIVEMIND_POSTGRES_PASSWORD
+
   PYTHONUSERBASE: ./local-site
 
 before_script:
@@ -38,7 +47,7 @@ hivemind_build:
   tags:
      - hivemind
 
-hivemind_deploy:
+hivemind_sync:
   stage: deploy
   environment: hive-4.pl.syncad.com
   needs:
@@ -46,34 +55,10 @@ hivemind_deploy:
       artifacts: true
   variables:
     GIT_STRATEGY: none
-    HIVEMIND_DB_NAME: "hive_$CI_JOB_ID"
-    HIVEMIND_HTTP_PORT: $HIVEMIND_HTTP_PORT
-
-    # Configured at gitlab repository settings side
-    POSTGRES_USER: $HIVEMIND_POSTGRES_USER
-    POSTGRES_PASSWORD: $HIVEMIND_POSTGRES_PASSWORD
-    POSTGRES_HOST_AUTH_METHOD: trust
-    # official way to provide password to psql: http://www.postgresql.org/docs/9.3/static/libpq-envars.html
-    PGPASSWORD: $HIVEMIND_POSTGRES_PASSWORD
-    DB_URL: "$HIVEMIND_POSTGRESQL_CONNECTION_STRING/hive_$CI_JOB_ID"
-    PYTHONUSERBASE: ./local-site
 
   script:
-    - ls -l dist/*
-    - rm -rf ./local-site
-    - mkdir -p `python3 -m site --user-site`
-    - python3 setup.py install --user --force
-    - ./local-site/bin/hive -h
-    - "echo Attempting to recreate database $HIVEMIND_DB_NAME"
-    - psql -U $POSTGRES_USER -h localhost -d postgres -c "DROP DATABASE IF EXISTS $HIVEMIND_DB_NAME;"
-    - psql -U $POSTGRES_USER -h localhost -d postgres -c "CREATE DATABASE $HIVEMIND_DB_NAME;"
-    - "echo Attempting to starting hive sync using hived node: $HIVEMIND_SOURCE_HIVED_URL . Max sync block is: $HIVEMIND_MAX_BLOCK"
-    - echo Attempting to access database $DB_URL
-    - ./local-site/bin/hive sync --test-max-block=$HIVEMIND_MAX_BLOCK --exit-after-sync --test-profile=False --steemd-url "$HIVEMIND_SOURCE_HIVED_URL" --database-url $DB_URL 2>&1 | tee -i hivemind-sync.log
-    - echo Attempting to start hive server listening on $HIVEMIND_HTTP_PORT port...
-    - screen -L -Logfile hive_server.log -dmS hive_server_$CI_JOB_ID ./local-site/bin/hive server --pid-file hive_server.pid --http-server-port $HIVEMIND_HTTP_PORT --steemd-url "$HIVEMIND_SOURCE_HIVED_URL" --database-url $DB_URL
-    - for i in `seq 1 10`; do if [ -f hive_server.pid ]; then break; else sleep 1; fi;  done
-    - cat hive_server.pid
+    - scripts/ci_sync.sh "$HIVEMIND_DB_NAME" "$HIVEMIND_POSTGRESQL_CONNECTION_STRING" "$HIVEMIND_SOURCE_HIVED_URL" $HIVEMIND_MAX_BLOCK
+    - scripts/ci_start_server.sh "$HIVEMIND_DB_NAME" "$HIVEMIND_POSTGRESQL_CONNECTION_STRING" "$HIVEMIND_SOURCE_HIVED_URL" $HIVEMIND_HTTP_PORT
   artifacts:
     paths:
       - hivemind-sync.log
@@ -82,3 +67,26 @@ hivemind_deploy:
 
   tags:
      - hivemind
+
+hivemind_start_server:
+  stage: deploy
+  environment: hive-4.pl.syncad.com
+  needs:
+    - job: hivemind_build
+      artifacts: true
+  variables:
+    GIT_STRATEGY: none
+
+  script:
+    - scripts/ci_start_server.sh "$HIVEMIND_DB_NAME" "$HIVEMIND_POSTGRESQL_CONNECTION_STRING" "$HIVEMIND_SOURCE_HIVED_URL" $HIVEMIND_HTTP_PORT
+
+  artifacts:
+    paths:
+      - hive_server.log
+      - hive_server.pid
+    expire_in: 1 week
+
+  when: manual
+
+  tags:
+     - hivemind
diff --git a/scripts/ci_start_server.sh b/scripts/ci_start_server.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f0efc1051c39c687e398cb89f5b7b3ab33aff46e
--- /dev/null
+++ b/scripts/ci_start_server.sh
@@ -0,0 +1,24 @@
+#!/bin/bash 
+
+set -e
+
+HIVEMIND_DB_NAME=$1
+HIVEMIND_POSTGRESQL_CONNECTION_STRING=$2
+HIVEMIND_SOURCE_HIVED_URL=$3
+HIVEMIND_HTTP_PORT=$4
+
+PYTHONUSERBASE=./local-site
+
+DB_NAME=${HIVEMIND_DB_NAME//-/_}
+DB_NAME=${DB_NAME//\[/_}
+DB_NAME=${DB_NAME//]/_}
+
+DB_URL=$HIVEMIND_POSTGRESQL_CONNECTION_STRING/$DB_NAME
+
+echo Attempting to start hive server listening on $HIVEMIND_HTTP_PORT port...
+if [ -f hive_server.pid ]; then kill -SIGINT `cat hive_server.pid`; fi;
+rm -f hive_server.pid
+screen -L -Logfile hive_server.log -dmS hive_server_$CI_JOB_ID ./local-site/bin/hive server --pid-file hive_server.pid --http-server-port $HIVEMIND_HTTP_PORT --steemd-url "$HIVEMIND_SOURCE_HIVED_URL" --database-url $DB_URL
+for i in `seq 1 10`; do if [ -f hive_server.pid ]; then break; else sleep 1; fi;  done
+if [ -f hive_server.pid ]; then echo "Hive server started successfully..."; else "Hive server start failure..." ; fi;
+
diff --git a/scripts/ci_sync.sh b/scripts/ci_sync.sh
new file mode 100755
index 0000000000000000000000000000000000000000..84d1422dd582c061f1c2f043c890d59100fdac55
--- /dev/null
+++ b/scripts/ci_sync.sh
@@ -0,0 +1,28 @@
+#!/bin/bash 
+
+set -e
+
+HIVEMIND_DB_NAME=$1
+HIVEMIND_POSTGRESQL_CONNECTION_STRING=$2
+HIVEMIND_SOURCE_HIVED_URL=$3
+HIVEMIND_MAX_BLOCK=$4
+
+PYTHONUSERBASE=./local-site
+
+DB_NAME=${HIVEMIND_DB_NAME//-/_}
+DB_NAME=${DB_NAME//\[/_}
+DB_NAME=${DB_NAME//]/_}
+DB_URL=$HIVEMIND_POSTGRESQL_CONNECTION_STRING/$DB_NAME
+echo Corrected db name $DB_NAME
+echo Corrected db url $DB_URL
+ls -l dist/*
+rm -rf ./local-site
+mkdir -p `python3 -m site --user-site`
+python3 setup.py install --user --force
+./local-site/bin/hive -h
+echo Attempting to recreate database $DB_NAME
+psql -U $POSTGRES_USER -h localhost -d postgres -c "DROP DATABASE IF EXISTS $DB_NAME;"
+psql -U $POSTGRES_USER -h localhost -d postgres -c "CREATE DATABASE $DB_NAME;"
+echo Attempting to starting hive sync using hived node: $HIVEMIND_SOURCE_HIVED_URL . Max sync block is: $HIVEMIND_MAX_BLOCK
+echo Attempting to access database $DB_URL
+./local-site/bin/hive sync --test-max-block=$HIVEMIND_MAX_BLOCK --exit-after-sync --test-profile=False --steemd-url "$HIVEMIND_SOURCE_HIVED_URL" --database-url $DB_URL 2>&1 | tee -i hivemind-sync.log