poco texto
This commit is contained in:
171
EXPERIENCIA/Servidores/Proyecto Web RP4.md
Executable file
171
EXPERIENCIA/Servidores/Proyecto Web RP4.md
Executable file
@@ -0,0 +1,171 @@
|
||||
# 🌐 Proyecto Web en Raspberry Pi 4 con HTTPS y Apache2
|
||||
|
||||
Configuración completa de servidor web autohospedado en una Raspberry Pi 4 usando Apache2, múltiples webs con HTTPS y dominio dinámico mediante DuckDNS.
|
||||
|
||||
---
|
||||
|
||||
## 🌟 Requisitos
|
||||
|
||||
- Raspberry Pi 4 con Raspberry Pi OS Lite
|
||||
|
||||
- Acceso root o sudo habilitado
|
||||
|
||||
- Acceso a tu router para redireccionar puertos
|
||||
|
||||
- Cuenta en [https://www.duckdns.org](https://www.duckdns.org)
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 1: Actualizar la Raspberry Pi
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 2: Instalar Apache2 y herramientas necesarias
|
||||
|
||||
```bash
|
||||
sudo apt install apache2 certbot python3-certbot-apache curl git unzip -y
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 3: Registrar dominios en DuckDNS
|
||||
|
||||
1. Ir a [https://www.duckdns.org](https://www.duckdns.org) e iniciar sesión
|
||||
|
||||
2. Crear los subdominios necesarios (ej: `lilcarpi`, `blogcarpi`)
|
||||
|
||||
3. Apuntar ambos a tu IP pública
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 4: Crear script de actualización de IP dinámica
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /root/duckdns
|
||||
sudo nano /root/duckdns/duck.sh
|
||||
```
|
||||
|
||||
Contenido del script:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
TOKEN="TU_TOKEN_DUCKDNS"
|
||||
DOMAINS="lilcarpi,blogcarpi"
|
||||
URL="https://www.duckdns.org/update?domains=$DOMAINS&token=$TOKEN&ip="
|
||||
echo url="$URL" | curl -k -o /root/duckdns/duck.log -K -
|
||||
```
|
||||
|
||||
Dar permisos y crear cronjob:
|
||||
|
||||
```bash
|
||||
chmod +x /root/duckdns/duck.sh
|
||||
(crontab -l ; echo "*/5 * * * * /root/duckdns/duck.sh") | crontab -
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 5: Configurar Apache2 con múltiples webs
|
||||
|
||||
Crear carpetas para los sitios:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /var/www/lilcarpi
|
||||
sudo mkdir -p /var/www/blogcarpi
|
||||
```
|
||||
|
||||
Dar permisos:
|
||||
|
||||
```bash
|
||||
sudo chown -R $USER:$USER /var/www/lilcarpi
|
||||
sudo chown -R $USER:$USER /var/www/blogcarpi
|
||||
```
|
||||
|
||||
Crear archivos de configuración para cada virtualhost:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/apache2/sites-available/lilcarpi.conf
|
||||
```
|
||||
|
||||
```apacheconf
|
||||
<VirtualHost *:80>
|
||||
ServerName lilcarpi.duckdns.org
|
||||
DocumentRoot /var/www/lilcarpi
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo nano /etc/apache2/sites-available/blogcarpi.conf
|
||||
```
|
||||
|
||||
```apacheconf
|
||||
<VirtualHost *:80>
|
||||
ServerName blogcarpi.duckdns.org
|
||||
DocumentRoot /var/www/blogcarpi
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
Activar los sitios y reiniciar Apache:
|
||||
|
||||
```bash
|
||||
sudo a2ensite lilcarpi.conf
|
||||
sudo a2ensite blogcarpi.conf
|
||||
sudo systemctl reload apache2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 6: Instalar HTTPS con Let's Encrypt
|
||||
|
||||
```bash
|
||||
sudo certbot --apache -d lilcarpi.duckdns.org -d blogcarpi.duckdns.org
|
||||
```
|
||||
|
||||
Si quieres forzar redirección HTTP → HTTPS, acepta cuando te lo pida.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Paso 7: Comprobación
|
||||
|
||||
- Visita [https://lilcarpi.duckdns.org](https://lilcarpi.duckdns.org)
|
||||
|
||||
- Visita [https://blogcarpi.duckdns.org](https://blogcarpi.duckdns.org)
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Paso Opcional: Configurar dominio personalizado (como carpi.inc)
|
||||
|
||||
**DuckDNS no permite usar dominios personalizados directamente**. Pero podrías:
|
||||
|
||||
1. Comprar un dominio (como carpi.inc)
|
||||
|
||||
2. En su DNS, apuntar un CNAME a `lilcarpi.duckdns.org`
|
||||
|
||||
3. Usar DNS-01 para Let's Encrypt, con un hook
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Notas finales
|
||||
|
||||
- Todo esto se ejecuta directamente en la Raspberry Pi 4
|
||||
|
||||
- Puedes expandirlo con más virtualhosts
|
||||
|
||||
- Si quieres rendimiento, activa caché o CDN local (como Cloudflare DNS + proxy inverso)
|
||||
|
||||
|
||||
---
|
||||
|
||||
🌟 Powered by Tars & Carpi
|
||||
|
||||
```
|
||||
}
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user