Files
Barış Keser 83be058d23 feat: Athena v2 — Discord auth, AthenaCore mod, cross-platform launcher, CI
Backend (PHP+SQLite): Discord OAuth2 + JWT, coklu hesap (1 Discord = 3-5),
tek-kullanimlik join token (/api/join/prepare+verify), custom skin yukleme/sunma,
hesap/Discord/HWID ban, admin paneli kartlari; deterministik offline UUID (PHP<->C#
paritesi dogrulandi). 25 entegrasyon testi gecti.

AthenaCore (Forge 1.12.2): tek client+server mod — join token dogrulama + kick,
grace-gate, custom skin uygulama. Sunucu offline-mode kalir (UUID/dunya verisi korunur).

Masaustu: WPF -> Avalonia (Windows+Linux), Discord giris/hesap/skin/oyna; WMI/DPAPI
yerine cross-platform (machine-id HWID, AES-GCM secret store). Derlenir + calisir.

CI: athenacore-mod.yml (JDK8), desktop-release.yml (Win+Linux self-contained).
Deploy: deploy.sh (.env uretimi, php-gd, nginx Authorization gecisi) + HANDOFF.md.
Android: backend hazir; entegrasyon spec'i ANDROID_INTEGRATION.md.
2026-06-13 23:45:21 +03:00

58 lines
1.9 KiB
Plaintext

# Athena Studios Launcher - nginx + php-fpm server block (sample)
#
# Adjust:
# - server_name -> launcher.athenastudios.com.tr
# - root -> absolute path to WebBackend/public
# - fastcgi_pass -> your php-fpm socket/address (PHP 8.4)
#
# Front-controller pattern: every request that is not a real file is handed
# to public/index.php, which does the routing internally.
server {
listen 80;
listen [::]:80;
server_name launcher.athenastudios.com.tr;
# IMPORTANT: point this at WebBackend/public (NOT WebBackend itself).
root /var/www/athena/WebBackend/public;
index index.php;
# Reasonable upload/body size for raw client files served via /files/.
client_max_body_size 256M;
# Never expose the data/ or seed/ directories over the web.
location ~ /(data|seed|src|cli)/ {
deny all;
return 404;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# Pass the Authorization header so PHP sees the launcher's Bearer JWT.
fastcgi_param HTTP_AUTHORIZATION $http_authorization;
# Use ONE of the following (socket OR tcp) to match your php-fpm setup:
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 30s;
}
}
# For production, terminate TLS (HTTPS) here or via a reverse proxy.
# Example with certbot-managed certificates:
#
# server {
# listen 443 ssl http2;
# server_name launcher.athenastudios.com.tr;
# root /var/www/athena/WebBackend/public;
# ssl_certificate /etc/letsencrypt/live/launcher.athenastudios.com.tr/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/launcher.athenastudios.com.tr/privkey.pem;
# ... (same location blocks as above) ...
# }