feat(gate-b): Gate B mask + BDFT + length axis (#21–#23) #31
@@ -35,3 +35,4 @@ images/
|
|||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
*.log
|
*.log
|
||||||
|
deploy/certs/
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from app.db.models import Base
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# Default DB path for production
|
# Default DB path for production
|
||||||
DEFAULT_DB_URL = "sqlite+aiosqlite:///data/slab.db"
|
DEFAULT_DB_URL = "sqlite+aiosqlite:////data/slab.db"
|
||||||
|
|
||||||
_engine: object = None
|
_engine: object = None
|
||||||
_session_factory: object = None
|
_session_factory: object = None
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
slab.local {
|
||||||
|
tls /data/certs/slab.crt /data/certs/slab.key
|
||||||
|
handle /api/* {
|
||||||
|
reverse_proxy fastapi:8000 {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
handle {
|
||||||
|
reverse_proxy frontend:80 {
|
||||||
|
header_up X-Real-IP {remote_host}
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# Implementable compose for SlabUploader (docs/refactor-v2).
|
# Implementable compose for SlabUploader.
|
||||||
# From repo root:
|
# From repo root:
|
||||||
# cp deploy/.env.example deploy/.env && chmod 600 deploy/.env
|
# cp deploy/.env.example deploy/.env && chmod 600 deploy/.env
|
||||||
# docker compose -f deploy/docker-compose.yml --env-file deploy/.env up -d
|
# docker compose -f deploy/docker-compose.yml --env-file deploy/.env up -d
|
||||||
# Bind loopback only. Caddy is the TLS edge. Services on the compose network
|
# Bind loopback only. Caddy is the TLS edge. Services on the compose network
|
||||||
# are named `frontend` and `fastapi` (must match Caddyfile.fragment).
|
# are named `frontend` and `fastapi` (must match Caddyfile).
|
||||||
#
|
#
|
||||||
# WOO_BASE_URL is deploy-time SoT, HTTPS only. FastAPI must refuse http://
|
# WOO_BASE_URL is deploy-time SoT, HTTPS only. FastAPI must refuse http://
|
||||||
# at startup. Settings UI displays the URL read-only.
|
# at startup. Settings UI displays the URL read-only.
|
||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
SLAB_AES_KEY: ${SLAB_AES_KEY}
|
SLAB_AES_KEY: ${SLAB_AES_KEY}
|
||||||
WOO_BASE_URL: ${WOO_BASE_URL}
|
SLAB_WOO_BASE_URL: ${WOO_BASE_URL}
|
||||||
APP_HOSTNAME: ${APP_HOSTNAME:-}
|
APP_HOSTNAME: ${APP_HOSTNAME:-}
|
||||||
# Woo Application Password + inference keys: AES-GCM in SQLite via Settings UI
|
# Woo Application Password + inference keys: AES-GCM in SQLite via Settings UI
|
||||||
volumes:
|
volumes:
|
||||||
@@ -36,6 +36,19 @@ services:
|
|||||||
mem_limit: 2g
|
mem_limit: 2g
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
caddy:
|
||||||
|
image: caddy:2.8.4
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:80:80"
|
||||||
|
- "127.0.0.1:443:443"
|
||||||
|
volumes:
|
||||||
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||||
|
- ./certs:/data/certs:ro
|
||||||
|
depends_on:
|
||||||
|
- frontend
|
||||||
|
- fastapi
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
slab_db:
|
slab_db:
|
||||||
slab_images:
|
slab_images:
|
||||||
|
|||||||
Reference in New Issue
Block a user