Despliegue en nightspire.gg: dominio real, estáticos y home resiliente

- settings: ALLOWED_HOSTS y CSRF_TRUSTED_ORIGINS a nightspire.gg /
  www.nightspire.gg (+ IP del servidor). Se retira el antiguo novawow.com.
- WhiteNoise para servir estáticos desde gunicorn (el reverse proxy Caddy
  corre como usuario 'caddy' y no puede leer /root): middleware +
  STORAGES con CompressedStaticFilesStorage. Añadido a requirements.txt.
- home: get_online_characters_count() ahora tolera que la BD de personajes
  (AzerothCore) no exista/esté vacía y devuelve 0 en vez de provocar un 500
  en la portada (mismo criterio que el context_processor get_server_info).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 20:01:43 +00:00
parent 96ab91a82b
commit 1ee126a69f
3 changed files with 23 additions and 8 deletions
+10 -4
View File
@@ -2,10 +2,16 @@ from ._base import *
def get_online_characters_count():
with connections['acore_characters'].cursor() as cursor:
cursor.execute("SELECT COUNT(*) FROM characters WHERE online = 1")
result = cursor.fetchone()
return result[0] if result else 0
# Si la BD de personajes (AzerothCore) aún no está disponible/poblada,
# no rompemos la portada: devolvemos 0 como hace el context_processor.
try:
with connections['acore_characters'].cursor() as cursor:
cursor.execute("SELECT COUNT(*) FROM characters WHERE online = 1")
result = cursor.fetchone()
return result[0] if result else 0
except Exception as e:
logger.warning("No se pudo contar personajes en línea: %s", e)
return 0
def check_server_status(host, port):
if not host or host == "N/A":
return False