deploy without node
This commit is contained in:
23
README.md
23
README.md
@@ -86,7 +86,9 @@ Instrumentation checklist:
|
||||
|
||||
## Deployment (Linode + Docker)
|
||||
|
||||
Build and run:
|
||||
The production host is intentionally minimal and only needs Docker (no Node.js on the server).
|
||||
|
||||
### Local Docker
|
||||
|
||||
```bash
|
||||
docker compose build
|
||||
@@ -95,24 +97,29 @@ docker compose up -d
|
||||
|
||||
The container serves the static output on port `8080` (map or proxy as needed).
|
||||
|
||||
### Refreshing Content (Manual)
|
||||
### Production (Docker-Only Host)
|
||||
|
||||
Content is fetched at build time into `site/content/cache/content.json`.
|
||||
In production, CI builds and publishes a Docker image (nginx serving the static output). The server updates by pulling that image and restarting the service.
|
||||
|
||||
On the Linode host:
|
||||
Runbook: `deploy/runbook.md`.
|
||||
|
||||
### Refreshing Content (Manual, Docker-Only)
|
||||
|
||||
Content is fetched at build time into `site/content/cache/content.json` (typically in CI), then packaged into the image.
|
||||
|
||||
On the server host:
|
||||
|
||||
```bash
|
||||
./scripts/refresh.sh
|
||||
```
|
||||
|
||||
This:
|
||||
1. Runs `npm run fetch-content` in `site/`
|
||||
2. Rebuilds the Docker image
|
||||
3. Restarts the container
|
||||
1. Pulls the latest published image
|
||||
2. Restarts the service (no build on the host)
|
||||
|
||||
### Refreshing Content (Scheduled)
|
||||
|
||||
Install a daily cron using `deploy/cron.example` as a starting point.
|
||||
|
||||
Rollback:
|
||||
- Re-run `docker compose up -d` with a previously built image/tag, or restore the last known-good repo state and rerun `scripts/refresh.sh`.
|
||||
- Re-deploy a known-good image tag/digest (see `deploy/runbook.md`).
|
||||
|
||||
Reference in New Issue
Block a user