commit 65fa14cb32bed2583f62157b1b464b5eab2ea3f2 Author: Kantin Petit Date: Sat Aug 8 16:48:08 2026 +0200 chore: init pogoo-web deploy repo (static site + compose) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e2d7a31 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text=auto eol=lf +*.png binary +*.ico binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc5e06a --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# pogoo-web — repo `git.pogoo.app/kantin/pogoo-web` + +Self-contained deploy repo for **pogoo.app** (main house site). Portainer-git friendly. + +``` +pogoo-web/ +├── docker-compose.yml # context: ./site +└── site/ # index.html, Dockerfile, nginx.conf, favicons +``` + +## Deploy (Portainer-git, auto) +1. Push this repo to Forgejo: `git.pogoo.app/kantin/pogoo-web`. +2. Portainer → Stacks → Add → **Git repository** + - URL: `https://git.pogoo.app/kantin/pogoo-web.git` + - Compose path: `docker-compose.yml` + - Auth: Forgejo deploy token (read) + - **Automatic updates + webhook: ON** +3. Forgejo repo → Settings → Webhooks → paste the Portainer webhook URL. +4. `git push` → webhook → Portainer rebuilds + redeploys. TLS via Traefik (edge). + +## Prereqs +- Edge stack up (Traefik + Portainer), `edge` network exists. +- DNS: `pogoo.app` + `www.pogoo.app` → server IP. + +## Update the site +Edit `site/index.html` (or assets) → commit → push. Done. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ba1a139 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +# pogoo.app — main house site. Self-contained repo for Portainer-git auto-deploy. +# Build context is INSIDE the repo (./site) so Portainer's checkout builds correctly. +name: pogoo-web + +services: + web: + build: + context: ./site + image: pogoo/web:latest + restart: unless-stopped + networks: [edge] + labels: + - "traefik.enable=true" + - "traefik.http.routers.pogoo.rule=Host(`pogoo.app`) || Host(`www.pogoo.app`)" + - "traefik.http.routers.pogoo.entrypoints=websecure" + - "traefik.http.routers.pogoo.tls.certresolver=le" + - "traefik.http.routers.pogoo.middlewares=www-redirect@file,security-headers@file" + - "traefik.http.services.pogoo.loadbalancer.server.port=80" + +networks: + edge: + external: true diff --git a/site/.dockerignore b/site/.dockerignore new file mode 100644 index 0000000..b1a4cf9 --- /dev/null +++ b/site/.dockerignore @@ -0,0 +1,3 @@ +Dockerfile +.dockerignore +atlas/ diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 0000000..d3513f0 --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,6 @@ +# Immutable static image for pogoo.app (main house site). +FROM nginx:1.27-alpine +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY . /usr/share/nginx/html +# atlas/ lives here in the repo but is served on its own subdomain image; harmless if present. +HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost/ >/dev/null || exit 1 diff --git a/site/apple-touch-icon.png b/site/apple-touch-icon.png new file mode 100644 index 0000000..0a731cf Binary files /dev/null and b/site/apple-touch-icon.png differ diff --git a/site/favicon-16.png b/site/favicon-16.png new file mode 100644 index 0000000..50dacae Binary files /dev/null and b/site/favicon-16.png differ diff --git a/site/favicon-192.png b/site/favicon-192.png new file mode 100644 index 0000000..24ce037 Binary files /dev/null and b/site/favicon-192.png differ diff --git a/site/favicon-32.png b/site/favicon-32.png new file mode 100644 index 0000000..8ceb63f Binary files /dev/null and b/site/favicon-32.png differ diff --git a/site/favicon-48.png b/site/favicon-48.png new file mode 100644 index 0000000..800af38 Binary files /dev/null and b/site/favicon-48.png differ diff --git a/site/favicon-512.png b/site/favicon-512.png new file mode 100644 index 0000000..ef8b06a Binary files /dev/null and b/site/favicon-512.png differ diff --git a/site/favicon.ico b/site/favicon.ico new file mode 100644 index 0000000..b88fd2b Binary files /dev/null and b/site/favicon.ico differ diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..5393c84 --- /dev/null +++ b/site/index.html @@ -0,0 +1,133 @@ + + + + + +Pogoo — A house of good tools + + + + + + + + + + + + + +
+
+
A house of good tools · pogoo.app
+

Pogoo builds things.

+

We design, build and ship durable digital products — one at a time, all from the same spine.

+ +
+
+
+ +
+
The house · products
+

One house, many tools.

+ +
+ +
+
Method
+

Perceive. Build. Ship.

+
+
Perceive

Like the parietal eye — sense the real need before writing a line. No solution in search of a problem.

+
Build

One spine, shared tokens, shared craft. Each product inherits the system, then earns its own colour.

+
Ship

Durable over flashy. We release things meant to still be here in a decade.

+
+
+ +
+
+ +

A scale on its own still holds. Together, they’re armour.

+

Every Pogoo product is a scale of the same body. You’ll recognise the house before you see the logo — the type, the grid, the warmth. That’s the point.

+
+
+ + + + + + diff --git a/site/nginx.conf b/site/nginx.conf new file mode 100644 index 0000000..1d30f2e --- /dev/null +++ b/site/nginx.conf @@ -0,0 +1,16 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + # long cache for hashed/static assets + location ~* \.(?:png|ico|svg|woff2?|css|js)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + } + location / { + try_files $uri $uri/ /index.html; + } + # TLS + security headers are handled by Traefik at the edge. +}