1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 06:18:42 +03:00
Files
android_cast/orchestration/deploy.sh
Anton Afanasyeu 43f802de5d snap
2026-05-27 16:44:50 +02:00

87 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ENV_FILE="$ROOT_DIR/.env"
ENV_EXAMPLE="$ROOT_DIR/.env.example"
RUNTIME_DIR="$ROOT_DIR/runtime"
DB_INIT_DIR="$RUNTIME_DIR/db-init"
CRASH_CONFIG="$RUNTIME_DIR/crash-config.php"
SRC_SCHEMA="$ROOT_DIR/../examples/crash_reporter/backend/sql/schema.mariadb.sql"
SRC_MIG_004="$ROOT_DIR/../examples/crash_reporter/backend/sql/migrations/004_ticket_workflow.sql"
SRC_MIG_005="$ROOT_DIR/../examples/crash_reporter/backend/sql/migrations/005_ticket_attachments.sql"
if ! command -v docker >/dev/null 2>&1; then
echo "docker not found in PATH"
exit 1
fi
if ! docker compose version >/dev/null 2>&1; then
echo "docker compose plugin is required"
exit 1
fi
if [[ ! -f "$ENV_FILE" ]]; then
cp "$ENV_EXAMPLE" "$ENV_FILE"
echo "Created .env from .env.example"
fi
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
mkdir -p "$DB_INIT_DIR"
cat >"$CRASH_CONFIG" <<EOF
<?php
return [
'app_name' => 'Android Cast Crashes',
'base_path' => '/app/androidcast_project/crashes',
'db' => [
'driver' => 'mysql',
'sqlite_path' => __DIR__ . '/../data/crashes.sqlite',
'mysql' => [
'host' => 'mariadb',
'port' => 3306,
'socket' => '',
'database' => '${MARIADB_DATABASE}',
'username' => '${MARIADB_USER}',
'password' => '${MARIADB_PASSWORD}',
'charset' => 'utf8mb4',
],
],
'session_name' => 'ac_crash_sess',
'debug' => true,
'rbac' => [
'default_company_slug' => 'default',
'default_company_id' => 1,
],
];
EOF
cp "$SRC_SCHEMA" "$DB_INIT_DIR/010_schema.sql"
{
echo "USE \`${MARIADB_DATABASE}\`;"
cat "$SRC_MIG_004"
} >"$DB_INIT_DIR/040_ticket_workflow.sql"
{
echo "USE \`${MARIADB_DATABASE}\`;"
cat "$SRC_MIG_005"
} >"$DB_INIT_DIR/050_ticket_attachments.sql"
echo "Pulling images..."
docker compose -f "$ROOT_DIR/docker-compose.yml" pull landing-fe gitea-fe crashes-fe mariadb gitea || true
echo "Starting/updating stack..."
docker compose -f "$ROOT_DIR/docker-compose.yml" up -d --build --remove-orphans --force-recreate
echo
echo "Stack is up."
echo "Landing: ${PUBLIC_BASE_URL}/app/androidcast_project/"
echo "Gitea (direct FE): http://localhost:${GITEA_FE_PORT}/app/androidcast_project/git/"
echo "Crashes (direct FE): http://localhost:${CRASHES_FE_PORT}/app/androidcast_project/crashes/"
echo
docker compose -f "$ROOT_DIR/docker-compose.yml" ps