mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 03:58:34 +03:00
Remove monolith clone path; add hub deploy, legacy purge, composed-backend login/logout nginx locations, and full hub asset rsync validation. Co-authored-by: Cursor <cursoragent@cursor.com>
167 lines
5.6 KiB
Plaintext
167 lines
5.6 KiB
Plaintext
# Full androidcast vhost for Alpine BE — listen 80 only.
|
||
# FE (apps.f0xx.org / s.f0xx.org) proxies here: cast01–03 cluster :80
|
||
# Port 8089 is a different service (e.g. Janus) — not this vhost.
|
||
|
||
server {
|
||
listen 80 default_server;
|
||
listen [::]:80 default_server;
|
||
|
||
# OTA v0 static tree — devices fetch https://apps.f0xx.org/v0/ota/channel/stable.json
|
||
# Populate: builder auto_deploy, or rsync out/ota/v0/ → .../ota-artifacts/v0/
|
||
location ^~ /v0/ota/ {
|
||
alias /var/www/localhost/htdocs/apps/app/androidcast_project/ota-artifacts/v0/ota/;
|
||
add_header Cache-Control "public, max-age=60";
|
||
}
|
||
|
||
location = /app/androidcast_project {
|
||
return 301 /app/androidcast_project/;
|
||
}
|
||
|
||
location = /app/androidcast_project/index.php {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/localhost/htdocs/apps/app/androidcast_project/index.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/index.php;
|
||
}
|
||
|
||
location = /app/androidcast_project/ {
|
||
rewrite ^ /app/androidcast_project/index.php last;
|
||
}
|
||
|
||
# Shared session auth at project root (not under /issues/) — composed ac/* backend
|
||
location ~ ^/app/androidcast_project/(login|logout|register|two-factor|verify-email)(/|$) {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/index.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/issues/index.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 4m;
|
||
}
|
||
|
||
location /app/androidcast_project/ {
|
||
alias /var/www/localhost/htdocs/apps/app/androidcast_project/;
|
||
index index.php index.html;
|
||
try_files $uri $uri/ =404;
|
||
}
|
||
|
||
location = /app/androidcast_project/graphs {
|
||
return 301 /app/androidcast_project/graphs/;
|
||
}
|
||
|
||
# --- Target paths (SPEC): /issues/ served from composed ac/* backend ---
|
||
location = /app/androidcast_project/issues {
|
||
return 301 /app/androidcast_project/issues/;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/issues/assets/ {
|
||
alias /var/www/ac/composed/backend/public/assets/;
|
||
}
|
||
|
||
location = /app/androidcast_project/issues/api/upload.php {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/api/upload.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/issues/api/upload.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 4m;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/issues/ {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/index.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/issues/index.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 4m;
|
||
}
|
||
|
||
# Legacy /crashes/ → 301 to /issues/ (SPEC §7)
|
||
location = /app/androidcast_project/crashes {
|
||
return 301 /app/androidcast_project/issues/;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/crashes/ {
|
||
rewrite ^/app/androidcast_project/crashes/?(.*)$ /app/androidcast_project/issues/$1 permanent;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/crashes/assets/ {
|
||
alias /var/www/ac/composed/backend/public/assets/;
|
||
}
|
||
|
||
location = /app/androidcast_project/crashes/api/upload.php {
|
||
return 301 /app/androidcast_project/issues/api/upload.php;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/graphs/assets/ {
|
||
alias /var/www/ac/composed/backend/public/assets/;
|
||
}
|
||
|
||
location = /app/androidcast_project/graphs/api/graphs.php {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/api/graphs.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/graphs/api/graphs.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
}
|
||
|
||
location = /app/androidcast_project/graphs/api/graph_upload.php {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/api/graph_upload.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/graphs/api/graph_upload.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 4m;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/graphs/ {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/composed/backend/public/index.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/graphs/index.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 4m;
|
||
}
|
||
|
||
location = /app/androidcast_project/build {
|
||
return 301 /app/androidcast_project/build/;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/build/assets/ {
|
||
alias /var/www/ac/workspace/ac-be-builder/public/assets/;
|
||
}
|
||
|
||
location ^~ /app/androidcast_project/build/ {
|
||
include fastcgi_params;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
fastcgi_param SCRIPT_FILENAME /var/www/ac/workspace/ac-be-builder/public/index.php;
|
||
fastcgi_param SCRIPT_NAME /app/androidcast_project/build/index.php;
|
||
fastcgi_param REQUEST_URI $request_uri;
|
||
client_max_body_size 512m;
|
||
fastcgi_read_timeout 1800s;
|
||
}
|
||
|
||
# --- Gitea web UI (lab browse; mirrors configured separately) ---
|
||
location = /app/androidcast_project/git {
|
||
return 301 /app/androidcast_project/git/;
|
||
}
|
||
location ^~ /app/androidcast_project/git/ {
|
||
proxy_pass http://127.0.0.1:3000/;
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
proxy_set_header X-Forwarded-Host $host;
|
||
proxy_set_header Upgrade $http_upgrade;
|
||
proxy_set_header Connection $connection_upgrade;
|
||
proxy_read_timeout 1800s;
|
||
proxy_send_timeout 1800s;
|
||
client_max_body_size 512m;
|
||
}
|
||
|
||
location ~ \.php$ {
|
||
include /etc/nginx/fastcgi.conf;
|
||
fastcgi_pass 127.0.0.1:9000;
|
||
}
|
||
}
|