diff --git a/deploy/build_macos.sh b/deploy/build_macos.sh
index 13214d6d..2c725ea6 100755
--- a/deploy/build_macos.sh
+++ b/deploy/build_macos.sh
@@ -163,7 +163,18 @@ if [ "${MAC_CERT_PW+x}" ]; then
fi
fi
-echo "Finished, artifact is $DMG_FILENAME"
-
+echo "Finished to generate local installer, artifact is $DMG_FILENAME"
# restore keychain
security default-keychain -s login.keychain
+
+echo "Generate online installer and repository..."
+
+cd $PROJECT_DIR
+DIRNAME=$0
+if [ "${DIRNAME:0:1}" = "/" ];then
+ CURDIR=`dirname $DIRNAME`
+else
+ CURDIR="`pwd`"/"`dirname $DIRNAME`"
+fi
+
+source $CURDIR/build_macos_online_installer.sh
diff --git a/deploy/build_macos_online_installer.sh b/deploy/build_macos_online_installer.sh
new file mode 100755
index 00000000..a0664b44
--- /dev/null
+++ b/deploy/build_macos_online_installer.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+echo "___________________________________________________________________"
+echo "..................repository and online installer.................."
+echo "___________________________________________________________________"
+
+set -o errexit -o nounset
+
+while getopts n flag
+do
+ case "${flag}" in
+ n) NOTARIZE_APP=1;;
+ esac
+done
+
+# Hold on to current directory
+PROJECT_DIR=$(pwd)
+DEPLOY_DIR=$PROJECT_DIR/deploy
+
+mkdir -p $DEPLOY_DIR/build
+BUILD_DIR=$DEPLOY_DIR/build
+
+echo "Project dir: ${PROJECT_DIR}"
+echo "Build dir: ${BUILD_DIR}"
+
+APP_NAME=amneziavpn-online-installer
+APP_FILENAME=$APP_NAME.app
+APP_DOMAIN=org.amneziavpn.package
+PLIST_NAME=$APP_NAME.plist
+
+REPO_NAME=amneziavpn-macos-repository
+
+OUT_APP_DIR=$BUILD_DIR/client
+BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME
+
+PREBUILT_DEPLOY_DATA_DIR=$PROJECT_DIR/deploy/data/deploy-prebuilt/macos
+DEPLOY_DATA_DIR=$PROJECT_DIR/deploy/data/macos
+
+INSTALLER_DATA_DIR=$BUILD_DIR/installer/packages/$APP_DOMAIN/data
+INSTALLER_BUNDLE_DIR=$BUILD_DIR/installer/$APP_FILENAME
+DMG_FILENAME=$PROJECT_DIR/${APP_NAME}.dmg
+
+# Search Qt
+if [ -z "${QT_VERSION+x}" ]; then
+QT_VERSION=6.5.1;
+QIF_VERSION=4.6
+QT_BIN_DIR=$HOME/Qt/$QT_VERSION/macos/bin
+QIF_BIN_DIR=$QT_BIN_DIR/../../../Tools/QtInstallerFramework/$QIF_VERSION/bin
+fi
+
+echo "Using Qt in $QT_BIN_DIR"
+echo "Using QIF in $QIF_BIN_DIR"
+
+
+echo "Generating repository..."
+$QIF_BIN_DIR/repogen -p $BUILD_DIR/installer/packages $BUILD_DIR/installer/$REPO_NAME
+
+echo "Building online installer..."
+$QIF_BIN_DIR/binarycreator --online-only -c $BUILD_DIR/installer/config/macos.xml -p $BUILD_DIR/installer/packages $INSTALLER_BUNDLE_DIR
+
+
+if [ "${MAC_CERT_PW+x}" ]; then
+ echo "Signing installer bundle..."
+ security unlock-keychain -p $TEMP_PASS $KEYCHAIN
+ /usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "$MAC_SIGNER_ID" $INSTALLER_BUNDLE_DIR
+ /usr/bin/codesign --verify -vvvv $INSTALLER_BUNDLE_DIR || true
+
+ if [ "${NOTARIZE_APP+x}" ]; then
+ echo "Notarizing installer bundle..."
+ /usr/bin/ditto -c -k --keepParent $INSTALLER_BUNDLE_DIR $PROJECT_DIR/Installer_bundle_to_notarize.zip
+ xcrun notarytool submit $PROJECT_DIR/Installer_bundle_to_notarize.zip --apple-id $APPLE_DEV_EMAIL --team-id $MAC_TEAM_ID --password $APPLE_DEV_PASSWORD
+ rm $PROJECT_DIR/Installer_bundle_to_notarize.zip
+ sleep 300
+ xcrun stapler staple $INSTALLER_BUNDLE_DIR
+ xcrun stapler validate $INSTALLER_BUNDLE_DIR
+ spctl -a -vvvv $INSTALLER_BUNDLE_DIR || true
+ fi
+fi
+
+echo "Building DMG installer..."
+hdiutil create -volname AmneziaVPN -srcfolder $BUILD_DIR/installer/$APP_NAME.app -ov -format UDZO $DMG_FILENAME
+
+if [ "${MAC_CERT_PW+x}" ]; then
+ echo "Signing DMG installer..."
+ security unlock-keychain -p $TEMP_PASS $KEYCHAIN
+ /usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "$MAC_SIGNER_ID" $DMG_FILENAME
+ /usr/bin/codesign --verify -vvvv $DMG_FILENAME || true
+
+ if [ "${NOTARIZE_APP+x}" ]; then
+ echo "Notarizing DMG installer..."
+ xcrun notarytool submit $DMG_FILENAME --apple-id $APPLE_DEV_EMAIL --team-id $MAC_TEAM_ID --password $APPLE_DEV_PASSWORD
+ sleep 300
+ xcrun stapler staple $DMG_FILENAME
+ xcrun stapler validate $DMG_FILENAME
+ fi
+fi
+
+echo "Finished to generate online instaler and repository, artifact is $DMG_FILENAME"
+
+# restore keychain
+security default-keychain -s login.keychain
diff --git a/deploy/installer/config/macos.xml.in b/deploy/installer/config/macos.xml.in
index 3888d08d..89163044 100644
--- a/deploy/installer/config/macos.xml.in
+++ b/deploy/installer/config/macos.xml.in
@@ -13,14 +13,14 @@
true
false
controlscript.js
- false
+ true
true
false
true
- https://amneziavpn.org/updates/macos
- true
+ https://updates.amnezia.org/amneziavpn-macos-repository
+ 1
AmneziaVPN - repository for macOS