mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-25 18:49:38 +00:00
07e9a35044
Brings up a fully local storyteller-web: portable MySQL 8.4 and Redis under a gitignored .devstack/ (plain user processes -- no admin, no services, no WSL, no Docker), all 281 migrations, role/badge seeds, and a demo login with credits. Windows and Linux variants, plus a doctor that reports what is and isn't healthy. Scripts and docs only. Nothing here is compiled into any binary, and no application behaviour changes: the backend it starts is the one that ships. Integrations that cannot be provided locally -- object storage, generation providers, email -- get placeholder credentials, so those endpoints fail when exercised. Swap in a real dev credential for the one you are working on. The doc records exactly which areas that leaves working. An earlier revision closed those gaps with development-only behaviour inside storyteller-web (DEV_FAKE_GENERATION, a filesystem bucket mode, a CDN_BASE_URL override). That is deliberately not here: a switch that exists in the shipped binary can be flipped. Frontend work that wants a populated, working stack should use frontend/apps/fake-storyteller-web instead.
27 lines
1.3 KiB
Bash
Executable File
27 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run the storyteller-web backend for local development (binds 0.0.0.0:12345).
|
|
#
|
|
# Must run from a bootstrapped environment (./script/bootstrap/bootstrap_dev_stack.sh).
|
|
# Always runs from the repo root: the server's config search path
|
|
# (crates/service/web/storyteller_web/config/*.env) and its includes/ defaults
|
|
# are cwd-relative.
|
|
set -euo pipefail
|
|
|
|
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
source "${root_dir}/script/bootstrap/common.sh"
|
|
|
|
SECRETS_ENV_FILE="${root_dir}/crates/service/web/storyteller_web/config/storyteller-web.development-secrets.env"
|
|
|
|
mysql_app_reachable || die "MySQL is not reachable as '${DEV_MYSQL_USER}'. Run ./script/bootstrap/bootstrap_dev_stack.sh first."
|
|
redis_reachable || die "Redis is not reachable. Run ./script/bootstrap/bootstrap_dev_stack.sh first."
|
|
[ -f "${SECRETS_ENV_FILE}" ] || die "Missing ${SECRETS_ENV_FILE}. Run ./script/bootstrap/bootstrap_dev_stack.sh first."
|
|
|
|
ensure_cargo_on_path
|
|
cd "${root_dir}"
|
|
|
|
# SERVER_ENVIRONMENT defaults to Development when unset (bootstrap.rs), and the
|
|
# dev config files are picked up from the search path automatically.
|
|
# SQLX_OFFLINE only affects compile-time query checking, never runtime.
|
|
log "Starting storyteller-web on ${DEV_BACKEND_URL} (Ctrl-C to stop)..."
|
|
exec env SQLX_OFFLINE=true cargo run -p storyteller-web --bin storyteller-web
|