diff --git a/migrations/20190725172940-settings-migrate-cloudron-conf.js b/migrations/20190725172940-settings-migrate-cloudron-conf.js index 6ba2b22d9..c4cc212b7 100644 --- a/migrations/20190725172940-settings-migrate-cloudron-conf.js +++ b/migrations/20190725172940-settings-migrate-cloudron-conf.js @@ -14,11 +14,12 @@ exports.up = function(db, callback) { async.series([ db.runSql.bind(db, 'START TRANSACTION;'), - db.runSql.bind(db, 'INSERT settings (name, value) VALUES(?, ?)', [ 'api_server_origin', config.apiServerOrigin ]), - db.runSql.bind(db, 'INSERT settings (name, value) VALUES(?, ?)', [ 'web_server_origin', config.webServerOrigin ]), - db.runSql.bind(db, 'INSERT settings (name, value) VALUES(?, ?)', [ 'admin_domain', config.adminDomain ]), - db.runSql.bind(db, 'INSERT settings (name, value) VALUES(?, ?)', [ 'admin_fqdn', config.adminFqdn ]), - db.runSql.bind(db, 'INSERT settings (name, value) VALUES(?, ?)', [ 'demo', config.isDemo ]), + // we use replace instead of insert because the cloudron-setup adds api/web_server_origin even for legacy setups + db.runSql.bind(db, 'REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'api_server_origin', config.apiServerOrigin ]), + db.runSql.bind(db, 'REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'web_server_origin', config.webServerOrigin ]), + db.runSql.bind(db, 'REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'admin_domain', config.adminDomain ]), + db.runSql.bind(db, 'REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'admin_fqdn', config.adminFqdn ]), + db.runSql.bind(db, 'REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'demo', config.isDemo ]), db.runSql.bind(db, 'COMMIT') ], callback); }; diff --git a/scripts/cloudron-setup b/scripts/cloudron-setup index abdd2b894..22b16d07d 100755 --- a/scripts/cloudron-setup +++ b/scripts/cloudron-setup @@ -200,11 +200,21 @@ if [[ "${initBaseImage}" == "true" ]]; then echo "" fi -# NOTE: this install script only supports 4.2 and above +# NOTE: this install script only supports 3.x and above echo "=> Installing version ${version} (this takes some time) ..." mkdir -p /etc/cloudron +# this file is used >= 4.2 echo "${provider}" > /etc/cloudron/PROVIDER +# this file is unused <= 4.2 and exists to make legacy installations work. the start script will remove this file anyway +cat > "/etc/cloudron/cloudron.conf" < /etc/cloudron/LICENSE if ! /bin/bash "${box_src_tmp_dir}/scripts/installer.sh" &>> "${LOG_FILE}"; then @@ -212,6 +222,7 @@ if ! /bin/bash "${box_src_tmp_dir}/scripts/installer.sh" &>> "${LOG_FILE}"; then exit 1 fi +# only needed for >= 4.2 mysql -uroot -ppassword -e "REPLACE INTO box.settings (name, value) VALUES ('api_server_origin', '${apiServerOrigin}');" 2>/dev/null mysql -uroot -ppassword -e "REPLACE INTO box.settings (name, value) VALUES ('web_server_origin', '${webServerOrigin}');" 2>/dev/null