Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
MARIADB_ROOT_PASSWORD=change-this-root-password
MARIADB_PASSWORD=change-this-db-password
GRAFANA_ADMIN_USER=change-this-admin-user
GRAFANA_ADMIN_PASSWORD=change-this-admin-password

# Authentik OIDC - required for auth on write endpoints.
OIDC_ISSUER_URL=<your-oidc-issuer-url>
Expand Down
14 changes: 0 additions & 14 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,17 +78,3 @@ jobs:
NGINX_ACTIVE_INCLUDE: ${{ vars.DELTA_NGINX_ACTIVE_INCLUDE }}
PUBLIC_BASE_URL: ${{ vars.DELTA_PUBLIC_BASE_URL }}
run: deploy/scripts/deploy.sh "${{ steps.sha.outputs.value }}"

# Runs AFTER the CMS deploy, deliberately. Prometheus joins the CMS
# Compose network, which is declared external, so that network has to
# exist before this stack will start.
#
# It is a separate Compose project, so nothing here can recreate or stop
# the CMS slots -- a failure below leaves the CMS deployed and serving. It
# still fails the job, because an observability stack that quietly stopped
# matching the repo is exactly the state that lets a database outage go
# unannounced.
- name: Deploy observability stack
env:
OBSERVABILITY_DIR: ${{ vars.DELTA_OBSERVABILITY_DIR }}
run: deploy/scripts/deploy-observability.sh
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ frontend/.env
server/data/
deploy/*.env
!deploy/*.env.example
deploy/runner/
..env.un~

# Local secret: Discord webhook for failover alerts (see deploy/mariadb/README.md)
.webhook
# Local DB dumps (contain cms_users password hashes and cms_sessions).
# Kept here so Borg backs them up -- /var/lib/docker volumes are NOT backed up.
db-backups/
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
Headless CMS replacement for The Triangle, with:
- `server/` Go API
- `frontend/` React frontend
- `observability/` Loki + Promtail + Prometheus, plus a Grafana in the local dev
stack only — on Delta the dashboards live in the central Triangle Grafana
(see `deploy/README.md`)
- The observability stack — Prometheus, Loki, Promtail, Alertmanager, blackbox
and the Grafana dashboards — lives in
[`triangle-infrastructure`](https://github.com/DrexelTriangle/triangle-infrastructure).
The backend still exposes `GET /metrics`; scrape it directly in local dev.
- `scripts/` local setup helpers

API docs and data models: https://github.com/DrexelTriangle/triangle-cms/wiki
Expand Down Expand Up @@ -92,13 +93,17 @@ python ./scripts/generate_wordpress_sql.py

3. Start services (Path A is recommended):

Path A (recommended): full Docker stack (CMS + observability):
Path A (recommended): full Docker stack (CMS + MariaDB):

```bash
python ./scripts/setup_containers.py
```

This stack uses a shared Docker bridge network scoped to the Compose project, so services can resolve each other by container/service name (for example `mariadb`, `loki`, `grafana`).
This stack uses a shared Docker bridge network scoped to the Compose project, so services can resolve each other by container/service name (for example `mariadb`).

The dev stack no longer runs Loki, Promtail or Grafana: their config files were
shared with Delta's stack and moved to `triangle-infrastructure` so there is one
source of truth. Use `docker compose logs` locally.

Path B: Docker MariaDB + local Go backend:

Expand Down
277 changes: 52 additions & 225 deletions deploy/README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion deploy/compose.cms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ x-backend-base: &backend-base
EMBEDDINGS_URL: ${EMBEDDINGS_URL-http://embeddings:8000}
volumes:
# CephFS media tree (host). rw so the upload endpoint can store new files;
# host Nginx serves the same tree read-only (see deploy/nginx/triangle-cms.conf).
# host Nginx serves the same tree read-only (that site is in triangle-infrastructure).
- ${MEDIA_HOST_PATH:-/mnt/cephfs/media}:/mnt/cephfs/media:rw
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/v1/health/db || exit 1"]
Expand Down
190 changes: 0 additions & 190 deletions deploy/compose.observability.yml

This file was deleted.

Loading
Loading