Updates to work around cloudflare tunnel
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Deploy: build image, push to registry, trigger Portainer stack redeploy.
|
# Build: site + Docker image, push to registry (deploy workflow triggers Dockhand).
|
||||||
# Runs on push/tag/manual to main only, after ci workflow succeeds.
|
# Runs on push/tag/manual to main only, after ci workflow succeeds.
|
||||||
when:
|
when:
|
||||||
- branch: main
|
- branch: main
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Deploy: build image, push to registry, trigger Portainer stack redeploy.
|
# Deploy: after image push, trigger Dockhand stack redeploy.
|
||||||
# Runs on push/tag/manual to main only, after ci workflow succeeds.
|
# Runs on push/tag/manual to main only, after ci workflow succeeds.
|
||||||
skip_clone: true
|
skip_clone: true
|
||||||
# Use writable workspace when clone is skipped (no root clone step to create /woodpecker/src)
|
# Use writable workspace when clone is skipped (no root clone step to create /woodpecker/src)
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ This file helps LLM agents work with the Armandine codebase without introducing
|
|||||||
| Static assets (favicons, media files) | `static/assets/` (media: `desktop/`, `tablet/`, `mobile/`, `thumbnail/`, `videos/`) |
|
| Static assets (favicons, media files) | `static/assets/` (media: `desktop/`, `tablet/`, `mobile/`, `thumbnail/`, `videos/`) |
|
||||||
| Global CSS | `src/app.css` (imported in `+layout.svelte`) |
|
| Global CSS | `src/app.css` (imported in `+layout.svelte`) |
|
||||||
| Config | `svelte.config.js`, `vite.config.ts`, `tsconfig.json`, `postcss.config.js` |
|
| Config | `svelte.config.js`, `vite.config.ts`, `tsconfig.json`, `postcss.config.js` |
|
||||||
|
| Runtime compose (Dockhand) | `deploy/docker-compose.yml` only — keep this directory free of media/site assets so Hawser sync stays small |
|
||||||
|
|
||||||
## Conventions
|
## Conventions
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Pre-rendered Svelte gallery site served by Nginx. Build outputs to `build/`; ima
|
|||||||
- **CSS:** PostCSS (nesting + level 2), component-scoped styles; critical CSS inlined at build time with Beasties.
|
- **CSS:** PostCSS (nesting + level 2), component-scoped styles; critical CSS inlined at build time with Beasties.
|
||||||
- **Runtime:** `nginx:alpine` (see `Dockerfile`) serves the contents of `build/`.
|
- **Runtime:** `nginx:alpine` (see `Dockerfile`) serves the contents of `build/`.
|
||||||
- **Registry:** Gitea at `git.mifi.dev` → image `git.mifi.dev/mifi-holdings/armandine`.
|
- **Registry:** Gitea at `git.mifi.dev` → image `git.mifi.dev/mifi-holdings/armandine`.
|
||||||
- **Deploy:** Portainer on Linode; stack uses this image (no volume for site content).
|
- **Deploy:** Dockhand git stack from `deploy/docker-compose.yml`; stack uses this image (no volume for site content).
|
||||||
|
|
||||||
## Local development
|
## Local development
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ Ports:
|
|||||||
```bash
|
```bash
|
||||||
pnpm docker:push
|
pnpm docker:push
|
||||||
```
|
```
|
||||||
Then on the server, redeploy the stack (e.g. Portainer “Pull and redeploy” or your webhook).
|
Then on the server, redeploy the stack (e.g. Dockhand sync/redeploy or your webhook).
|
||||||
|
|
||||||
## Woodpecker CI/CD
|
## Woodpecker CI/CD
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ Three pipelines (see `.woodpecker/`):
|
|||||||
|----------|------|------|
|
|----------|------|------|
|
||||||
| **ci** | Every push to `main`, every PR | Lint (ESLint + Stylelint), Prettier check, Svelte/TypeScript check |
|
| **ci** | Every push to `main`, every PR | Lint (ESLint + Stylelint), Prettier check, Svelte/TypeScript check |
|
||||||
| **build**| Push/tag/manual on `main` only (after ci) | Build site to `build/`, build Docker image, push to `git.mifi.dev/mifi-holdings/armandine` |
|
| **build**| Push/tag/manual on `main` only (after ci) | Build site to `build/`, build Docker image, push to `git.mifi.dev/mifi-holdings/armandine` |
|
||||||
| **deploy** | After build | Trigger Portainer stack redeploy via webhook |
|
| **deploy** | After build | Trigger Dockhand stack redeploy via webhook |
|
||||||
|
|
||||||
Order: **ci** → **build** → **deploy**.
|
Order: **ci** → **build** → **deploy**.
|
||||||
|
|
||||||
@@ -91,14 +91,15 @@ Configure in the repo’s Woodpecker secrets:
|
|||||||
|
|
||||||
- `gitea_registry_username` – Gitea user for registry login
|
- `gitea_registry_username` – Gitea user for registry login
|
||||||
- `gitea_package_token` – Gitea token with package read/write
|
- `gitea_package_token` – Gitea token with package read/write
|
||||||
- `portainer_webhook_url` – Portainer stack webhook URL for redeploy
|
- `dockhand_webhook_url` – Dockhand stack webhook URL for redeploy
|
||||||
- Mattermost/Discord webhook secrets (see `.woodpecker/*.yaml` for notifications)
|
- Mattermost/Discord webhook secrets (see `.woodpecker/*.yaml` for notifications)
|
||||||
|
|
||||||
## Server / Portainer
|
## Server / Dockhand
|
||||||
|
|
||||||
- Stack is defined by `docker-compose.yml` in this repo.
|
- Runtime stack lives in `deploy/docker-compose.yml` only (thin git-stack context so Dockhand/Hawser does not sync `static/` media).
|
||||||
|
- In Dockhand, set compose path to `deploy/docker-compose.yml` and leave **Context directory** empty (or `deploy`) — do not set context to `.`.
|
||||||
- Compose uses the image from the registry (`git.mifi.dev/mifi-holdings/armandine:latest`); no volume for site content (it’s inside the image).
|
- Compose uses the image from the registry (`git.mifi.dev/mifi-holdings/armandine:latest`); no volume for site content (it’s inside the image).
|
||||||
- Ensure the server can pull from `git.mifi.dev`. After a push, either let the deploy pipeline trigger the Portainer webhook or manually “Pull and redeploy” the stack.
|
- Ensure the server can pull from `git.mifi.dev`. After a push, either let the deploy pipeline trigger the Dockhand webhook or manually sync/redeploy the stack.
|
||||||
|
|
||||||
## Project layout
|
## Project layout
|
||||||
|
|
||||||
@@ -127,7 +128,8 @@ Configure in the repo’s Woodpecker secrets:
|
|||||||
│ └── critical-css.js # Beasties post-step on build/
|
│ └── critical-css.js # Beasties post-step on build/
|
||||||
├── build/ # Output of pnpm build (Vite + Beasties)
|
├── build/ # Output of pnpm build (Vite + Beasties)
|
||||||
├── Dockerfile # nginx:alpine + COPY build/
|
├── Dockerfile # nginx:alpine + COPY build/
|
||||||
├── docker-compose.yml
|
├── deploy/
|
||||||
|
│ └── docker-compose.yml # Thin Dockhand/Hawser runtime stack only
|
||||||
├── package.json # Scripts: dev, build, preview, check, lint, format
|
├── package.json # Scripts: dev, build, preview, check, lint, format
|
||||||
├── .devcontainer/
|
├── .devcontainer/
|
||||||
├── .woodpecker/
|
├── .woodpecker/
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# Thin deploy context for Dockhand/Hawser.
|
||||||
|
# Keep only runtime compose here so git-stack sync does not ship static/media.
|
||||||
services:
|
services:
|
||||||
mifi-holdings-armandine-gallery:
|
mifi-holdings-armandine-gallery:
|
||||||
image: git.mifi.dev/mifi-holdings/armandine:latest
|
image: git.mifi.dev/mifi-holdings/armandine:latest
|
||||||
+2
-2
@@ -16,11 +16,11 @@
|
|||||||
"lint": "pnpm run lint:yaml && pnpm run lint:js && pnpm run lint:css",
|
"lint": "pnpm run lint:yaml && pnpm run lint:js && pnpm run lint:css",
|
||||||
"lint:css": "stylelint \"src/**/*.css\"",
|
"lint:css": "stylelint \"src/**/*.css\"",
|
||||||
"lint:js": "eslint src/",
|
"lint:js": "eslint src/",
|
||||||
"lint:yaml": "yamllint .woodpecker/ci.yaml .woodpecker/build.yaml .woodpecker/deploy.yaml docker-compose.yml",
|
"lint:yaml": "yamllint .woodpecker/ci.yaml .woodpecker/build.yaml .woodpecker/deploy.yaml deploy/docker-compose.yml",
|
||||||
"lint:fix": "pnpm run lint:fix:js && pnpm run lint:fix:css && pnpm run lint:fix:yaml",
|
"lint:fix": "pnpm run lint:fix:js && pnpm run lint:fix:css && pnpm run lint:fix:yaml",
|
||||||
"lint:fix:js": "eslint src/ --fix",
|
"lint:fix:js": "eslint src/ --fix",
|
||||||
"lint:fix:css": "stylelint \"src/**/*.css\" --fix",
|
"lint:fix:css": "stylelint \"src/**/*.css\" --fix",
|
||||||
"lint:fix:yaml": "yamllint .woodpecker/ci.yaml .woodpecker/build.yaml .woodpecker/deploy.yaml docker-compose.yml --fix",
|
"lint:fix:yaml": "yamllint .woodpecker/ci.yaml .woodpecker/build.yaml .woodpecker/deploy.yaml deploy/docker-compose.yml --fix",
|
||||||
"docker:build": "docker build --platform linux/amd64 -t git.mifi.dev/mifi-holdings/armandine:latest .",
|
"docker:build": "docker build --platform linux/amd64 -t git.mifi.dev/mifi-holdings/armandine:latest .",
|
||||||
"docker:push": "docker push git.mifi.dev/mifi-holdings/armandine:latest"
|
"docker:push": "docker push git.mifi.dev/mifi-holdings/armandine:latest"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user