wrongmove/start.sh
Viktor Barzin eafbc1ac52
Flatten repo structure: move crawler/ to root, remove vqa/ and immoweb/
The crawler subdirectory was the only active project. Moving it to the
repo root simplifies paths and removes the unnecessary nesting. The
vqa/ and immoweb/ directories were legacy/unused and have been removed.

Updated .drone.yml, .gitignore, .claude/ docs, and skills to reflect
the new flat structure.
2026-02-07 23:01:20 +00:00

108 lines
3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eu
# Real Estate Crawler - Development Server
# Starts all backend services + frontend + Caddy HTTPS proxy via Docker Compose.
#
# Usage:
# ./start.sh - Start all services (backend + frontend)
# ./start.sh --build - Rebuild images before starting
# ./start.sh --down - Stop and remove all containers
# ./start.sh --logs - Follow logs from all services
# ./start.sh --help - Show help
show_help() {
echo "Real Estate Crawler - Development Server"
echo ""
echo "Usage: ./start.sh [OPTIONS]"
echo ""
echo "Options:"
echo " (default) Start all services with Docker Compose"
echo " --build Rebuild Docker images before starting"
echo " --down Stop and remove all containers"
echo " --logs Follow logs from all services"
echo " --help Show this help message"
echo ""
echo "Services started:"
echo " redis Redis broker + cache (port 6379)"
echo " mysql MySQL database (port 3306)"
echo " app FastAPI backend (hot-reload) (port 5001)"
echo " celery Celery background worker"
echo " celery-beat Celery periodic scheduler"
echo " frontend Vite dev server (hot-reload) (port 5173)"
echo " caddy HTTPS reverse proxy (port 443)"
echo ""
echo "Environment variables:"
echo " DEV_HOST Hostname for HTTPS access (default: localhost)"
echo " Set this to your dev machine's hostname for OIDC auth."
echo ""
echo "Examples:"
echo " ./start.sh # Start everything"
echo " ./start.sh --build # Rebuild and start"
echo " DEV_HOST=devvm.local ./start.sh # Start with custom hostname"
}
get_compose_cmd() {
if command -v docker &> /dev/null; then
echo "docker compose"
elif command -v podman-compose &> /dev/null; then
echo "podman-compose"
else
echo "❌ Error: Neither docker nor podman-compose found." >&2
echo " Install Docker: https://docs.docker.com/get-docker/" >&2
exit 1
fi
}
start_docker() {
local build_flag=""
if [[ "${1:-}" == "--build" ]]; then
build_flag="--build"
fi
echo "Starting all services with Docker Compose..."
echo ""
local compose_cmd
compose_cmd=$(get_compose_cmd)
$compose_cmd up $build_flag
}
stop_docker() {
echo "Stopping all containers..."
local compose_cmd
compose_cmd=$(get_compose_cmd)
$compose_cmd down
}
show_logs() {
local compose_cmd
compose_cmd=$(get_compose_cmd)
$compose_cmd logs -f
}
# Parse arguments
case "${1:-}" in
--help|-h)
show_help
;;
--down)
stop_docker
;;
--logs)
show_logs
;;
--build)
start_docker --build
;;
"")
start_docker
;;
*)
echo "❌ Unknown option: $1"
echo ""
show_help
exit 1
;;
esac