Single-file HTML5 canvas game - sprites, bitmap font, music and sound are all generated in code, no external assets. Game: - 6 playable birds, each with a unique ability (Double Flap, Teleport, Allay Magnet, Melt, Phase, Howl) - 5 score-driven biomes (Plains, Desert, Mineshaft, Nether, Ice Peaks) - Day/night cycle, weather (rain, snow, embers), camera drift - Pickups: gold, bubble shield, elytra wings, lucky cube buffs - Difficulty settings, bird unlocks, per-bird bests, advancement toasts - Daily challenge with a shareable code and a ghost of your best run - 2-player on one screen Deployment: - Dockerfile (nginx:alpine) serving the single file - nginx.conf with no-cache headers, gzip and a /healthz endpoint - docker-compose.yml and Coolify instructions in the README
33 lines
730 B
Nginx Configuration File
33 lines
730 B
Nginx Configuration File
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name _;
|
|
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
server_tokens off;
|
|
charset utf-8;
|
|
|
|
# The game is one file - never cache it, so a redeploy shows up at once
|
|
location = /index.html {
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate" always;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
location = /healthz {
|
|
access_log off;
|
|
default_type text/plain;
|
|
return 200 "ok\n";
|
|
}
|
|
|
|
location / {
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
|
|
gzip on;
|
|
gzip_vary on;
|
|
gzip_min_length 1024;
|
|
gzip_comp_level 5;
|
|
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
|
|
}
|