fix(slink,fleet): append APP_ENV/APP_SECRET to .env, use setup_mariadb_db

- slink: APP_ENV and APP_SECRET not present in .env.example, sed patterns
  never matched → Symfony defaulted to dev mode → WebProfilerBundle crash
  (not installed with --no-dev). Now appends APP_ENV=prod + APP_SECRET.
- fleet: use setup_mariadb_db helper instead of manual SQL, reference
  MARIADB_DB_PASS, depend on mariadb.service
This commit is contained in:
MickLesk
2026-04-05 18:54:14 +02:00
parent 17c7984546
commit 67bc34d45b
2 changed files with 10 additions and 16 deletions

View File

@@ -14,16 +14,7 @@ network_check
update_os update_os
setup_mariadb setup_mariadb
MARIADB_DB_NAME="fleet" MARIADB_DB_USER="fleet" setup_mariadb_db
msg_info "Setting up Database"
FLEET_DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c 13)
$STD mysql -u root <<EOSQL
CREATE DATABASE fleet;
CREATE USER 'fleet'@'localhost' IDENTIFIED BY '${FLEET_DB_PASS}';
GRANT ALL PRIVILEGES ON fleet.* TO 'fleet'@'localhost';
FLUSH PRIVILEGES;
EOSQL
msg_ok "Set up Database"
fetch_and_deploy_gh_release "fleet" "fleetdm/fleet" "prebuild" "latest" "/opt/fleet" "fleet_v*_linux.tar.gz" fetch_and_deploy_gh_release "fleet" "fleetdm/fleet" "prebuild" "latest" "/opt/fleet" "fleet_v*_linux.tar.gz"
@@ -34,7 +25,7 @@ cat <<EOF >/opt/fleet/.env
FLEET_MYSQL_ADDRESS=127.0.0.1:3306 FLEET_MYSQL_ADDRESS=127.0.0.1:3306
FLEET_MYSQL_DATABASE=fleet FLEET_MYSQL_DATABASE=fleet
FLEET_MYSQL_USERNAME=fleet FLEET_MYSQL_USERNAME=fleet
FLEET_MYSQL_PASSWORD=${FLEET_DB_PASS} FLEET_MYSQL_PASSWORD=${MARIADB_DB_PASS}
FLEET_SERVER_ADDRESS=0.0.0.0:8080 FLEET_SERVER_ADDRESS=0.0.0.0:8080
FLEET_SERVER_TLS=false FLEET_SERVER_TLS=false
FLEET_AUTH_JWT_KEY=${JWT_KEY} FLEET_AUTH_JWT_KEY=${JWT_KEY}
@@ -51,8 +42,8 @@ msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/fleet.service cat <<EOF >/etc/systemd/system/fleet.service
[Unit] [Unit]
Description=Fleet Description=Fleet
After=network.target mysql.service After=network.target mariadb.service
Requires=mysql.service Requires=mariadb.service
[Service] [Service]
Type=simple Type=simple

View File

@@ -41,12 +41,15 @@ cd /opt/slink/services/api
APP_SECRET=$(openssl rand -hex 16) APP_SECRET=$(openssl rand -hex 16)
ADMIN_PASS=$(openssl rand -base64 12 | tr -dc 'a-zA-Z0-9' | head -c12) ADMIN_PASS=$(openssl rand -base64 12 | tr -dc 'a-zA-Z0-9' | head -c12)
JWT_PASS=$(openssl rand -hex 16) JWT_PASS=$(openssl rand -hex 16)
sed -i "s|^APP_SECRET=.*|APP_SECRET=${APP_SECRET}|" .env {
sed -i "s|^APP_ENV=.*|APP_ENV=prod|" .env echo ""
echo "APP_ENV=prod"
echo "APP_SECRET=${APP_SECRET}"
} >>".env"
sed -i "s|^ADMIN_EMAIL=.*|ADMIN_EMAIL=admin@localhost|" .env sed -i "s|^ADMIN_EMAIL=.*|ADMIN_EMAIL=admin@localhost|" .env
sed -i "s|^ADMIN_PASSWORD=.*|ADMIN_PASSWORD=${ADMIN_PASS}|" .env sed -i "s|^ADMIN_PASSWORD=.*|ADMIN_PASSWORD=${ADMIN_PASS}|" .env
sed -i "s|^JWT_PASSPHRASE=.*|JWT_PASSPHRASE=${JWT_PASS}|" .env sed -i "s|^JWT_PASSPHRASE=.*|JWT_PASSPHRASE=${JWT_PASS}|" .env
sed -i "s|^CORS_ALLOW_ORIGIN=.*|CORS_ALLOW_ORIGIN='^https?://.*$'|" .env sed -i "s|^CORS_ALLOW_ORIGIN=.*|CORS_ALLOW_ORIGIN='^https?://.*\$'|" .env
sed -i "s|sqlite:////app/var/data|sqlite:////opt/slink/services/api/var/data|g" .env sed -i "s|sqlite:////app/var/data|sqlite:////opt/slink/services/api/var/data|g" .env
export APP_ENV=prod export APP_ENV=prod
mkdir -p /opt/slink/services/api/var/data mkdir -p /opt/slink/services/api/var/data