#!/usr/bin/env bash # Copyright (c) 2021-2025 community-scripts ORG # Author: DevelopmentCats # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://romm.app # Updated: 03/10/2025 source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os msg_info "Installing dependencies" $STD apt-get install -y \ acl \ build-essential \ libssl-dev \ libffi-dev \ python3-dev \ python3-pip \ python3-venv \ libmariadb3 \ libmariadb-dev \ libpq-dev \ redis-tools \ p7zip \ tzdata \ jq msg_ok "Installed core dependencies" PYTHON_VERSION="3.12" setup_uv NODE_VERSION="22" NODE_MODULE="serve" setup_nodejs setup_mariadb msg_info "Configuring Database" DB_NAME=romm DB_USER=romm DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) $STD mariadb -u root -e "CREATE DATABASE IF NOT EXISTS $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" $STD mariadb -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" { echo "RomM-Credentials" echo "RomM Database User: $DB_USER" echo "RomM Database Password: $DB_PASS" echo "RomM Database Name: $DB_NAME" } >~/romm.creds chmod 600 ~/romm.creds msg_ok "Configured Database" msg_info "Creating romm user and directories" id -u romm &>/dev/null || useradd -r -m -d /var/lib/romm -s /bin/bash romm mkdir -p /opt/romm \ /var/lib/romm/config \ /var/lib/romm/resources \ /var/lib/romm/assets/{saves,states,screenshots} \ /var/lib/romm/library/roms/{gba,gbc,ps} \ /var/lib/romm/library/bios/{gba,ps} chown -R romm:romm /opt/romm /var/lib/romm msg_ok "Created romm user and directories" msg_info "Configuring Database" DB_NAME=romm DB_USER=romm DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) $STD mariadb -u root -e "CREATE DATABASE $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" $STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" { echo "RomM-Credentials" echo "RomM Database User: $DB_USER" echo "RomM Database Password: $DB_PASS" echo "RomM Database Name: $DB_NAME" } >~/romm.creds msg_ok "Configured Database" fetch_and_deploy_gh_release "romm" "rommapp/romm" msg_info "Creating environment file" sed -i 's/^supervised no/supervised systemd/' /etc/redis/redis.conf systemctl restart redis-server systemctl enable -q --now redis-server AUTH_SECRET_KEY=$(openssl rand -hex 32) cat >/opt/romm/.env </etc/systemd/system/romm-backend.service </etc/systemd/system/romm-frontend.service </etc/systemd/system/romm-worker.service </etc/systemd/system/romm-scheduler.service <