Debian 12 “Bookworm” es una distribución GNU/Linux reconocida por su estabilidad, seguridad y versatilidad. Requiere entre 1 y 2 GB de RAM y entre 4 y 10 GB de espacio en disco según la instalación, con un sistema base que ocupa alrededor de 1,2 GB. Sus prestaciones incluyen compatibilidad con múltiples arquitecturas, gran variedad de entornos de escritorio, mejoras en seguridad y soporte ampliado de hardware reciente.
📦 Tamaño del software y requisitos
- Instalación mínima (sin utilidades estándar): ~1,0 GB en disco
- Instalación estándar (amd64 con utilidades): ~1,2 GB en disco
- Requisitos mínimos de hardware:
- RAM: 512 MB (mínimo), 1 GB recomendado
- Espacio en disco: 4 GB sin escritorio, 10 GB con escritorio
- Requisitos recomendados:
- Procesador: Pentium 4 a 1 GHz o superior
- RAM: 2 GB para un entorno gráfico fluido
Características principales
Nombre en clave: Bookworm
Entornos de escritorio disponibles: GNOME, KDE Plasma, Xfce, LXQt, Cinnamon, MATE, entre otros
Gestión de paquetes: Más de 59.000 paquetes disponibles en repositorios oficiales
Soporte de idiomas: Extenso, con traducciones para la mayoría de lenguas
Firmware no libre incluido: Mejora la compatibilidad con hardware moderno (tarjetas Wi-Fi, gráficas, etc.)
Seguridad: Actualizaciones constantes y sistema de parches rápido
Compatibilidad: Funciona en múltiples arquitecturas (amd64, arm64, s390x, etc.)
Opciones de instalación: Instalador gráfico y en modo texto, imágenes para nube y contenedores
Prestaciones destacadas
- Estabilidad y fiabilidad: Debian es referencia en servidores y entornos críticos
- Rendimiento optimizado: Mejoras en velocidad de ejecución y gestión de recursos en Debian 12.10
- Compatibilidad ampliada: Drivers actualizados para hardware reciente
- Soporte a largo plazo (LTS): Garantiza actualizaciones de seguridad durante años
- Versatilidad de uso:
- Servidores web, bases de datos y entornos corporativos.
- Escritorios personales con múltiples interfaces gráficas.
- Imágenes para nube y virtualización.
Debian 12 combina ligereza en instalación (1–1,2 GB base) con robustez y seguridad, ofreciendo un sistema adaptable tanto para usuarios domésticos como para infraestructuras profesionales. Su soporte de hardware moderno, amplia gama de escritorios y miles de paquetes lo convierten en una de las distribuciones más completas y confiables del ecosistema Linux.
Puedes descargar Debian 12 “Bookworm” directamente desde la página oficial de Debian en este enlace: 👉 Descarga oficial de Debian 12
📥 Opciones de descarga
En la página oficial encontrarás distintas imágenes de instalación:
- Netinst (instalador mínimo): Ideal para instalaciones ligeras, descarga solo lo esencial y el resto desde internet.
- Imágenes completas (CD/DVD): Incluyen todos los paquetes, útiles para sistemas sin conexión.
- Arquitecturas soportadas: amd64, arm64, i386, mips64el, mipsel, ppc64el, s390x, entre otras.
- Métodos de descarga:
- HTTP/FTP directo
- BitTorrent
- Jigdo (descarga eficiente de imágenes grandes)
Si trabajas con servidores VPS y proyectos web, lo más práctico es usar la imagen netinst amd64, ya que ocupa poco espacio (~300 MB) y te permite personalizar la instalación con solo los paquetes que necesitas.
Perfecto, Francisco 🌑🔥. Aquí tienes el enlace directo al ISO netinst amd64 de Debian 12 “Bookworm” (la opción más ligera y práctica para servidores y proyectos web):
📥 Detalles de esta descarga
- Tamaño aproximado: ~300 MB
- Uso recomendado: Instalación mínima con descarga de paquetes desde internet
- Arquitectura: amd64 (64 bits, la más común en servidores y PCs modernos)
- Versión: 12.6.0 (última actualización estable de Bookworm)
Si prefieres imágenes completas (DVD con todos los paquetes incluidos), también están disponibles en la misma carpeta oficial: 👉 Imágenes completas de Debian 12
Comandos SSH para instalar Debian 12 en un VPS
Aquí tienes una guía práctica con los comandos SSH para instalar Debian 12 en un VPS desde cero, suponiendo que estás accediendo a un servidor con consola KVM o instalación remota (como en Proxmox, Hetzner, OVH, etc.).
Supuestos previos
- Tienes acceso SSH o consola al VPS (modo rescate o instalación manual).
- El VPS está vacío o en modo de instalación.
- Usarás el instalador oficial de Debian 12 (netinst).
Instalación manual vía SSH (modo avanzado)
1. Conéctate al VPS
bash
ssh root@IP_DEL_VPS
2. Descarga el instalador de Debian 12 netinst
bash
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.6.0-amd64-netinst.iso -O debian12.iso
3. Monta la ISO (si el VPS lo permite)
bash
mkdir /mnt/debian12
mount -o loop debian12.iso /mnt/debian12
4. Inicia instalación desde la ISO (requiere consola KVM o reinicio con ISO montada)
Este paso depende del proveedor. En muchos VPS, debes:
- Usar el panel para montar la ISO como CD-ROM
- Reiniciar el VPS en modo instalación
- Seguir el instalador gráfico o en modo texto
🧪 Alternativa: instalación automatizada con debootstrap
Si el VPS ya tiene un sistema base (ej. modo rescate), puedes instalar Debian 12 manualmente:
1. Instala debootstrap
bash
apt update && apt install debootstrap
2. Crea el sistema base
bash
debootstrap --arch=amd64 bookworm /mnt/debian http://deb.debian.org/debian
3. Chroot al nuevo sistema
bash
mount --bind /dev /mnt/debian/dev
mount --bind /proc /mnt/debian/proc
mount --bind /sys /mnt/debian/sys
chroot /mnt/debian
4. Configura el sistema
bash
echo "debian-vps" > /etc/hostname
apt update && apt install linux-image-amd64 grub-pc systemd
5. Instala GRUB y reinicia
bash
grub-install /dev/sda
update-grub
exit
reboot
✅ Resultado
Tu VPS arrancará con Debian 12 limpio, listo para instalar Apache, Nginx, PHP, WordPress o lo que necesites.
Script cloud-init para Debian 12
yaml
#cloud-config
hostname: debian-vps
timezone: Europe/Madrid
locale: es_ES.UTF-8
users:
- name: francisco
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAA...tu_clave_ssh...
package_update: true
package_upgrade: true
packages:
- curl
- wget
- git
- htop
- ufw
- fail2ban
- nginx
runcmd:
- ufw allow OpenSSH
- ufw allow 'Nginx Full'
- ufw enable
- systemctl enable fail2ban
- echo "Instalación completa en Debian 12 VPS"
¿Cómo usarlo?
- En Hetzner Cloud o Contabo VPS:
- Al crear el VPS, selecciona Debian 12 como imagen base.
- En el campo “cloud-init” o “custom script”, pega el YAML anterior.
- Asegúrate de incluir tu clave SSH pública en el campo correspondiente.
- Resultado:
- VPS con Debian 12, usuario
francisco, acceso SSH, firewall activo, Nginx instalado y Fail2Ban protegiendo.
- VPS con Debian 12, usuario
SCRIPT Cloud-Init
Script cloud-init para LAMP + WordPress en Debian 12
yaml
#cloud-config
hostname: debian-vps
timezone: Europe/Madrid
locale: es_ES.UTF-8
users:
- name: francisco
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAA...tu_clave_ssh...
package_update: true
package_upgrade: true
packages:
- apache2
- mariadb-server
- php
- php-mysql
- libapache2-mod-php
- curl
- wget
- unzip
- ufw
- fail2ban
runcmd:
# Configuración básica de firewall
- ufw allow OpenSSH
- ufw allow 'Apache Full'
- ufw enable
# Configuración de MariaDB segura
- mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuPasswordSeguro';"
- mysql -e "DELETE FROM mysql.user WHERE User='';"
- mysql -e "DROP DATABASE IF EXISTS test;"
- mysql -e "FLUSH PRIVILEGES;"
# Crear base de datos para WordPress
- mysql -uroot -pTuPasswordSeguro -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- mysql -uroot -pTuPasswordSeguro -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'WpPasswordSeguro';"
- mysql -uroot -pTuPasswordSeguro -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';"
- mysql -uroot -pTuPasswordSeguro -e "FLUSH PRIVILEGES;"
# Descargar e instalar WordPress
- wget https://wordpress.org/latest.tar.gz -O /tmp/wordpress.tar.gz
- tar -xzf /tmp/wordpress.tar.gz -C /var/www/html/
- chown -R www-data:www-data /var/www/html/wordpress
- chmod -R 755 /var/www/html/wordpress
# Configuración de Apache
- echo "<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>" > /etc/apache2/sites-available/wordpress.conf
- a2ensite wordpress.conf
- a2enmod rewrite
- systemctl reload apache2
Resultado
- VPS con Debian 12
- Apache + PHP + MariaDB configurados
- WordPress descargado y listo en
/var/www/html/wordpress - Firewall activo y Fail2Ban protegiendo
👉 Este script lo pegas en el campo cloud-init al crear tu VPS en Hetzner, Contabo o cualquier proveedor que lo soporte.
script cloud-init optimizado para un VPS con Debian 12 + Nginx + PHP-FPM + MariaDB + WordPress, pensado para rendimiento y estabilidad:
Script cloud-init (Nginx + PHP-FPM + WordPress)
yaml
#cloud-config
hostname: debian-vps
timezone: Europe/Madrid
locale: es_ES.UTF-8
users:
- name: francisco
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAA...tu_clave_ssh...
package_update: true
package_upgrade: true
packages:
- nginx
- mariadb-server
- php-fpm
- php-mysql
- php-cli
- php-curl
- php-xml
- php-zip
- php-gd
- php-mbstring
- curl
- wget
- unzip
- ufw
- fail2ban
runcmd:
# Configuración de firewall
- ufw allow OpenSSH
- ufw allow 'Nginx Full'
- ufw enable
# Configuración segura de MariaDB
- mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuPasswordSeguro';"
- mysql -e "DELETE FROM mysql.user WHERE User='';"
- mysql -e "DROP DATABASE IF EXISTS test;"
- mysql -e "FLUSH PRIVILEGES;"
# Crear base de datos para WordPress
- mysql -uroot -pTuPasswordSeguro -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- mysql -uroot -pTuPasswordSeguro -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'WpPasswordSeguro';"
- mysql -uroot -pTuPasswordSeguro -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';"
- mysql -uroot -pTuPasswordSeguro -e "FLUSH PRIVILEGES;"
# Descargar e instalar WordPress
- wget https://wordpress.org/latest.tar.gz -O /tmp/wordpress.tar.gz
- tar -xzf /tmp/wordpress.tar.gz -C /var/www/html/
- chown -R www-data:www-data /var/www/html/wordpress
- chmod -R 755 /var/www/html/wordpress
# Configuración de Nginx para WordPress
- echo "server {
listen 80;
server_name _;
root /var/www/html/wordpress;
index index.php index.html index.htm;
location / {
try_files \$uri \$uri/ /index.php?\$args;
}
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}" > /etc/nginx/sites-available/wordpress
- ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
- nginx -t
- systemctl reload nginx
Resultado
- VPS con Debian 12
- Nginx + PHP-FPM (más rápido que Apache para WordPress)
- MariaDB configurado con base de datos y usuario para WordPress
- WordPress instalado en
/var/www/html/wordpress - Firewall activo y Fail2Ban protegiendo
Este script lo pegas en el campo cloud-init al crear tu VPS en Hetzner, Contabo o cualquier proveedor que lo soporte.
script cloud-init avanzado para tu VPS con Debian 12 + Nginx + PHP-FPM + MariaDB + WordPress, incluyendo optimización de rendimiento con Redis cache, PHP-FPM tunning y HTTPS con Let’s Encrypt.
Script cloud-init optimizado
yaml
#cloud-config
hostname: debian-vps
timezone: Europe/Madrid
locale: es_ES.UTF-8
users:
- name: francisco
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAA...tu_clave_ssh...
package_update: true
package_upgrade: true
packages:
- nginx
- mariadb-server
- php-fpm
- php-mysql
- php-cli
- php-curl
- php-xml
- php-zip
- php-gd
- php-mbstring
- redis-server
- php-redis
- certbot
- python3-certbot-nginx
- curl
- wget
- unzip
- ufw
- fail2ban
runcmd:
# Firewall
- ufw allow OpenSSH
- ufw allow 'Nginx Full'
- ufw enable
# Configuración segura de MariaDB
- mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuPasswordSeguro';"
- mysql -e "DELETE FROM mysql.user WHERE User='';"
- mysql -e "DROP DATABASE IF EXISTS test;"
- mysql -e "FLUSH PRIVILEGES;"
# Crear base de datos para WordPress
- mysql -uroot -pTuPasswordSeguro -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- mysql -uroot -pTuPasswordSeguro -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'WpPasswordSeguro';"
- mysql -uroot -pTuPasswordSeguro -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';"
- mysql -uroot -pTuPasswordSeguro -e "FLUSH PRIVILEGES;"
# Descargar e instalar WordPress
- wget https://wordpress.org/latest.tar.gz -O /tmp/wordpress.tar.gz
- tar -xzf /tmp/wordpress.tar.gz -C /var/www/html/
- chown -R www-data:www-data /var/www/html/wordpress
- chmod -R 755 /var/www/html/wordpress
# Configuración Nginx optimizada
- echo "server {
listen 80;
server_name _;
root /var/www/html/wordpress;
index index.php index.html index.htm;
location / {
try_files \$uri \$uri/ /index.php?\$args;
}
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}" > /etc/nginx/sites-available/wordpress
- ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
- nginx -t
- systemctl reload nginx
# Optimización PHP-FPM
- sed -i 's/pm = .*/pm = dynamic/' /etc/php/8.2/fpm/pool.d/www.conf
- sed -i 's/pm.max_children = .*/pm.max_children = 20/' /etc/php/8.2/fpm/pool.d/www.conf
- sed -i 's/pm.start_servers = .*/pm.start_servers = 5/' /etc/php/8.2/fpm/pool.d/www.conf
- sed -i 's/pm.min_spare_servers = .*/pm.min_spare_servers = 3/' /etc/php/8.2/fpm/pool.d/www.conf
- sed -i 's/pm.max_spare_servers = .*/pm.max_spare_servers = 10/' /etc/php/8.2/fpm/pool.d/www.conf
- systemctl restart php8.2-fpm
# Configuración HTTPS con Let's Encrypt
- certbot --nginx -d tu-dominio.com --non-interactive --agree-tos -m admin@tu-dominio.com
Resultado
- VPS con Debian 12
- Nginx + PHP-FPM optimizado para WordPress
- MariaDB configurado con base de datos y usuario
- Redis cache instalado y listo para usar con plugins de WordPress
- Firewall + Fail2Ban activos
- HTTPS automático con Let’s Encrypt