feat(landing): static site + nginx image + Gitea CI (landing + macOS DMG)

- landing/: the spaceshell.ru terminal-dark landing (index.html + screenshots),
  containerized as an nginx:alpine image (Dockerfile + nginx.conf with gzip and
  asset caching, VERSION, .dockerignore).
- .gitea/workflows/build.yaml: adapted from the coddykinder pipeline to this repo.
  Path-gated jobs — `landing` builds & pushes the nginx image to the Gitea
  registry on landing changes; `dmg` builds a universal (Intel + Apple Silicon)
  .dmg via `tauri build` on app/crates changes and uploads it as an artifact;
  Max notification summarizes both. Tags build everything (release).
- DOCS/landing/spaceshell-landing.md: build brief + copy + SEO meta.

Notes: the DMG job needs a self-hosted macOS runner labelled `macos` (Tauri
can't cross-compile macOS from Linux); the DMG is unsigned until Developer ID
secrets are wired. Landing image verified locally (HTTP 200, assets served).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 10:54:11 +07:00
parent a9836f28b7
commit 2f2159a468
9 changed files with 1578 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
Dockerfile
.dockerignore
VERSION
*.md
+9
View File
@@ -0,0 +1,9 @@
# Static landing for spaceshell.ru — served by nginx.
# Build context is ./landing (see .gitea/workflows/build.yaml).
FROM nginx:1.27-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY index.html /usr/share/nginx/html/index.html
COPY pics/ /usr/share/nginx/html/pics/
EXPOSE 80
+1
View File
@@ -0,0 +1 @@
0.1.0
+1188
View File
File diff suppressed because it is too large Load Diff
+27
View File
@@ -0,0 +1,27 @@
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
index index.html;
gzip on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
# Long cache for fingerprint-free static assets; HTML stays revalidated.
location ~* \.(?:css|js|png|jpe?g|gif|svg|webp|woff2?)$ {
expires 7d;
add_header Cache-Control "public, immutable";
access_log off;
}
location = /index.html {
add_header Cache-Control "no-cache";
}
location / {
try_files $uri $uri/ /index.html;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB