> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Cómo alojar Django en Square Cloud (paso a paso)

¿Buscas **dónde alojar tu aplicación Django** o cuál es **la mejor forma de poner un app Django en línea**? Esta guía muestra el paso a paso para alojar Django en Square Cloud — desde el `settings.py` (ALLOWED_HOSTS) hasta el deploy con Gunicorn, corriendo 24/7.

## 1. Requisitos previos
* **Cuenta en Square Cloud:** Crea tu cuenta vía [Página de Registro](https://squarecloud.app/pt-br/signup) (correo o GitHub).
* **Plan Activo:** Es necesario un plan de pago para alojar. Consulta los [precios aquí](https://squarecloud.app/pt-br/pricing).

---

## 2. Configuraciones de producción (settings.py)

Antes de realizar el deploy, debes ajustar el archivo `settings.py` de tu proyecto Django para permitir el tráfico de Square Cloud:

* **ALLOWED_HOSTS:** Añade el subdominio que pretendes usar y el dominio de Square Cloud.
```python
  ALLOWED_HOSTS = ['seusubdominio.squareweb.app', 'seudominio.com', 'localhost', '127.0.0.1']
```
* **DEBUG:** Para producción, recuerda definir `DEBUG = False`.
* **Archivos estáticos:** Asegúrate de configurar el `STATIC_ROOT` para que Django sepa dónde reunir los archivos estáticos.

---

## 3. Realizando el Deploy

1.  **Limpieza:** Elimina carpetas innecesarias como `venv/`, `.git/` y archivos de caché `__pycache__`.
2.  **Compresión:** Crea un archivo `.zip` que contenga la raíz del proyecto (donde está el archivo `manage.py`). El `requirements.txt` debe estar en la raíz del proyecto y contener al menos:
```text
  Django
  gunicorn
```
3.  **Upload:** En el Dashboard de Square Cloud, haz clic en enviar nueva aplicación.
4.  **Publicación Web:** En el menú de envío, marca la opción **"Publicar en la Web"**.
5.  **Subdominio:** Define el subdominio deseado (ej.: `miproyecto.squareweb.app`).
6.  **Comando de inicio personalizado:** Para que tu aplicación Django se ejecute en producción, debes configurar el comando de inicio para utilizar Gunicorn en el puerto **80**. En el momento del envío o en el archivo `squarecloud.app`, utiliza:
```bash
python -m gunicorn --bind 0.0.0.0:80 seu_projeto.wsgi:application
```
* **`--bind 0.0.0.0:80`**: Vincula la aplicación a la interfaz y al puerto exigidos por Square Cloud.
* **`tu_proyecto.wsgi:application`**: Sustituye `tu_proyecto` por el nombre de la carpeta que contiene el archivo `wsgi.py`.

---

## 4. Dominios personalizados (Plan Standard+)

Si utilizas un plan **Standard o superior**, puedes utilizar tu propio dominio:
* Configura el dominio (ej.: `www.misitio.com`) en la pestaña **Network**.
* El **SSL (HTTPS)** se configura y renueva automáticamente por Square Cloud, sin costo adicional.

---

## 5. Consejos de optimización y seguridad

* **Static Files:** En Django, recuerda ejecutar el comando "python manage.py collectstatic" o configurar Gunicorn/Middleware (como WhiteNoise) para servir archivos estáticos en producción.
* **Variables de entorno:** Utiliza la pestaña **ENV** del Dashboard para esconder tu `SECRET_KEY` y las credenciales de la base de datos. Nunca dejes contraseñas expuestas en el código enviado al repositorio o dashboard.
* **Base de datos:** Para producción, utiliza instancias de **PostgreSQL** o **MySQL** disponibles en Square Cloud, evitando el uso de SQLite en aplicaciones que exigen escalabilidad.