mirror of
git://f0xx.org/android_cast
synced 2026-07-29 07:58:10 +03:00
87 lines
2.5 KiB
Bash
Executable File
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
|