- Admin server function (service-role) to create accounts, set role, and optionally link a parent to a student; wired via env_file (.env.secret) - Admin > Users: "Add a user" form (teacher/parent/admin) with one-time temp password - Student profile > Family: "Parent portal access" — create + link a parent login - Parents can now edit their own child's profile (RLS-scoped); internal notes stay admin-only Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
1.3 KiB
YAML
32 lines
1.3 KiB
YAML
# Deploy stack for the Hostinger VPS (Docker + Dockge + Traefik).
|
|
# Lives in Dockge's stacks dir (/docker/info-share-spot) so Dockge manages it.
|
|
#
|
|
# Traefik on this VPS runs in host-network mode with the Docker provider, so the
|
|
# app just needs traefik.enable + a router; no shared "traefik" network is needed.
|
|
# It's served at the VPS wildcard hostname with automatic Let's Encrypt HTTPS.
|
|
|
|
services:
|
|
app:
|
|
build: .
|
|
image: info-share-spot:latest
|
|
container_name: info-share-spot
|
|
restart: unless-stopped
|
|
# Runtime secrets (SUPABASE_SERVICE_ROLE_KEY) live here — gitignored, not in the repo.
|
|
env_file:
|
|
- path: .env.secret
|
|
required: false
|
|
environment:
|
|
# SSR runtime vars (public-safe). Compose substitutes these from the .env
|
|
# file next to this compose file.
|
|
SUPABASE_URL: ${SUPABASE_URL}
|
|
SUPABASE_PUBLISHABLE_KEY: ${SUPABASE_PUBLISHABLE_KEY}
|
|
HOST: 0.0.0.0
|
|
PORT: 3000
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.infoshare.rule=Host(`info-share-spot.srv1720881.hstgr.cloud`)
|
|
- traefik.http.routers.infoshare.entrypoints=websecure
|
|
- traefik.http.routers.infoshare.tls=true
|
|
- traefik.http.routers.infoshare.tls.certresolver=letsencrypt
|
|
- traefik.http.services.infoshare.loadbalancer.server.port=3000
|