Files
site-slavic-pulse-com/default.conf
T
tomasz-syn-grzegorza d565f83490 init: static frontend for agency-ai.dev — nginx + YouTube intro video
Static landing page served via nginx 1.27 Alpine container.
Features:
- Fullscreen background image visible from first paint
- YouTube intro video overlay (iframe API, lazy loaded)
- PWA manifest with favicons (48x48, 180x180, 512x512)
- SEO meta tags (OG, Twitter Cards, canonical URL)
- Safety timeout: falls back to static image if YouTube fails

Infrastructure:
- Dockerfile: nginx 1.27 Alpine with custom default.conf
  (gzip, cache headers, security headers X-Frame-Options/nosniff)
- docker-compose.yml: local dev on FRONTEND_PORT (default 8080)
- docker-compose-example/: Dokploy deployment via runtime git clone
  from Gitea, resource limits (256M RAM, 0.5 CPU)

Files:
- index.html: main page with inline CSS + JS (YouTube iframe API)
- default.conf: nginx config (gzip, caching, security headers)
- site.webmanifest: PWA manifest
- assets/imgs/: background image + favicons
- .env.example: FRONTEND_PORT template
2026-06-26 08:55:39 +00:00

36 lines
848 B
Plaintext

server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# Gzip compression
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;
gzip_min_length 1024;
# Main page
location / {
try_files $uri $uri/ /index.html;
}
# Web app manifest
location = /site.webmanifest {
default_type application/manifest+json;
expires 30d;
add_header Cache-Control "public, immutable";
}
# Assets - long cache for images
location /assets/ {
expires 30d;
add_header Cache-Control "public, immutable";
try_files $uri =404;
}
# Security headers
add_header X-Frame-Options SAMEORIGIN always;
add_header X-Content-Type-Options nosniff always;
}