Updates to work around cloudflare tunnel
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful

This commit is contained in:
2026-07-14 00:02:16 -03:00
parent 276551edb3
commit e59e694363
6 changed files with 17 additions and 12 deletions
+1 -1
View File
@@ -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 -1
View File
@@ -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)
+1
View File
@@ -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
+10 -8
View File
@@ -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 repos 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 (its inside the image). - Compose uses the image from the registry (`git.mifi.dev/mifi-holdings/armandine:latest`); no volume for site content (its 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 repos 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
View File
@@ -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"
}, },