# CAMBIAR EL PUERTO DE ASTRA

Astra usa **dos puertos** que se pueden configurar por separado:

| Puerto | Que sirve | Config |
|---|---|---|
| **Panel (primario)** | Panel web + streams (por defecto) | `control_port` |
| **HTTP Play** | Solo streams (opcional, separado del panel) | `http_play_port` |

---

## METODO 1 — Desde el panel web (RECOMENDADO, sin reinicio)

El cambio se aplica **al instante**, sin reiniciar el servicio.

1. Abre el panel: `http://IP:8000`
2. Ve a **Settings → HTTP**
3. Seccion **Admin Interface**:
   - **Custom Port**: escribe el nuevo puerto (ej: `9000`)
4. Clic en **Apply & Restart**

> El cambio se guarda en `/etc/astra/astra.conf` como `"control_port": "9000"`
> y Astra empieza a escuchar en el nuevo puerto inmediatamente.

### Separar el puerto de streams del panel (opcional)

En la misma pantalla, seccion **HTTP Play**:

- **HTTP Play Port**: puerto exclusivo para los streams (ej: `9001`)
  - Vacio = usa el mismo puerto que el panel

Asi puedes tener:
- `http://IP:9000` → panel de administracion
- `http://IP:9001/play/...` → streams para clientes

---

## METODO 2 — Desde el sistema (systemd)

Util si prefieres fijar el puerto en el servicio (ej: reinstalaciones).

```bash
# 1. Ver el puerto actual
grep ExecStart /etc/systemd/system/astra.service

# 2. Cambiar 8000 por el nuevo puerto (ejemplo: 9000)
sudo sed -i 's/-p 8000/-p 9000/' /etc/systemd/system/astra.service

# 3. Recargar y reiniciar
sudo systemctl daemon-reload
sudo systemctl restart astra

# 4. Verificar
ss -tlnp | grep 9000
systemctl status astra --no-pager
```

---

## IMPORTANTE — Cual metodo gana

**El `control_port` de la config GANA sobre el `-p` del servicio.**

| Config | Servicio | Puerto final |
|---|---|---|
| `control_port: 9000` | `-p 8000` | **9000** (gana la config) |
| sin `control_port` | `-p 8000` | **8000** |
| `control_port: 9000` | `-p 9000` | **9000** (coinciden) |

Si cambias el puerto desde el panel, el `-p 8000` del servicio queda
ignorado. Para que ambos coincidan, actualiza tambien el servicio.

### Verificar el puerto efectivo

```bash
# Opcion 1: ver que escucha
ss -tlnp | grep astra

# Opcion 2: ver la config
python3 -c "import json; print(json.load(open('/etc/astra/astra.conf'))['settings'])"

# Opcion 3: probar
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:9000/
```

---

## Preguntas frecuentes

**¿Se cortan los streams al cambiar el puerto?**
No. El cambio es en caliente: el proceso sigue vivo y los streams activos
continuan. Solo las conexiones nuevas usan el puerto nuevo.

**¿Los clientes existentes se reconectan?**
Los clientes que apuntan al puerto viejo fallaran. Actualiza sus URLs
(playlists M3U, paneles IPTV, etc.) al puerto nuevo.

**¿La lista de IPs autorizadas cambia?**
No. La autenticacion (`http_ip_allow`) es independiente del puerto.

**¿Que pasa al reiniciar el sistema?**
El puerto guardado en `control_port` persiste (esta en la config).
El servicio arranca y respeta ese puerto.

**¿Y si el puerto esta ocupado?**
Astra no arrancara. Verifica con:
```bash
ss -tlnp | grep :9000
```
y elige otro puerto libre.
