Projecte Proxmox: Ubuntu, DeepSeek i un sol web a /var/www/html/
Aquest post obre una sèrie de seguiment: muntar a casa un entorn Proxmox amb un contenidor Ubuntu, instal·lar intel·ligència artificial (preferència DeepSeek) i administrar un sol projecte web desplegat a /var/www/html/.
Anirem actualitzant aquest fil conforme avancem. Quan el contenidor estigui operatiu, continuarem la configuració connectant-nos per SSH des de Cursor.
Objectiu
- Hypervisor: Proxmox VE (clúster domèstic).
- Contenidor: LXC Ubuntu 24.04 (lleuger, ràpid, fàcil de clonar).
- Web: un únic projecte a
/var/www/html/. - IA: DeepSeek per assistir en administració, codi, logs i manteniment.
- Documentació: cada pas queda registrat al blog (categoria projectes).
VM o contenidor LXC? (la opció lleugera)
A Proxmox tens dues maneres de crear un «servidor» Ubuntu. L'opció més lleugera i ràpida que buscaves és el contenidor LXC (a Proxmox es diu CT, Container), no una màquina virtual completa.
| Contenidor LXC (CT) ✅ recomanat | Màquina virtual (VM) | |
|---|---|---|
| Què és | Ubuntu «compartint» el nucli (kernel) del host Proxmox | Ordinador simulat complet amb el seu propi kernel |
| RAM típica | 512 MB – 2 GB n'hi ha prou per Apache+PHP+MySQL | 2–4 GB mínim recomanat |
| Arrencada | Segons (molt ràpida) | Minuts (com un PC real) |
| Overhead | Mínim: quasi natiu | QEMU/KVM: més CPU i disc |
| Backup / clonació | Molt ràpid des de Proxmox | Més lent (disc complet) |
| Quan triar VM | Si necessites un altre SO (Windows), kernel propi, Docker dins amb privilegis especials, o GPU pass-through | |
Decisió per aquest projecte: crear un CT Ubuntu 24.04 (LXC), no una VM. Per un sol web PHP a /var/www/html/ és la millor relació rendiment / recursos / simplicitat.
RAM del node pve (mesurat)
| Recurs | Valor |
|---|---|
| Host | Proxmox VE 8.x · node pve |
| CPU | AMD Ryzen 9 7900X (24 fils) — molt de marge |
| RAM total | 64 GiB (~61,95 GiB) |
| RAM en ús | ~14 GiB (23%) — host + CT 100, 102, 103, 104 |
| RAM lliure | ~47–48 GiB |
| CT existents | 4 × 4 GiB assignats cadascun (ús real baix: ~70–450 MiB per CT) |
Conclusió: podem assignar 4 GiB RAM al nou CT sense cap problema.
▶ PAS SEGÜENT — Crear el CT a Proxmox (ara mateix)
Important: fes servir Crea CT (contenidor LXC). NO facis clic a Crea VM.
Resum de la configuració
- Tipus: Contenidor LXC (CT) — no màquina virtual
- Sistema: Ubuntu 24.04 (plantilla standard)
- RAM: 4 GB (4096 MiB)
- CPU: 2 vCPU
- Disc: 20–32 GB a
local-zfs - Xarxa: bridge
vmbr0· IP de la LAN (DHCP reservada o estàtica) - SSH: activat amb clau pública
Pas a pas a la interfície (Català)
- 1. General
Clica Crea CT (botó blau, dalt a la dreta).
Node:pve· CT ID: següent lliure (p. ex.105) · Nom d'amfitrió:ubuntu-web-ai(o el que vulguis).
Contrasenya d'usuarirootdel contenidor (guarda-la en un gestor de contrasenyes). - 2. Plantilla OS
Emmagatzematge:local(plantilles).
Si no tens Ubuntu 24.04: ves apve → local → CT Plantillesi descarrega ubuntu-24.04-standard.
Tria la plantilla ubuntu-24.04-standard. - 3. Discs
Emmagatzematge:local-zfs(com els CT 100–104).
Mida del disc: 32 GB (mínim 20 GB). - 4. CPU
Núcleos: 2. Tipus:hosto per defecte. - 5. Memòria
Memòria (MiB): 4096 (= 4 GB). - 6. Xarxa
Pont:vmbr0· IPv4: DHCP (o IP estàtica de la teva LAN, p. ex.192.168.1.x).
Anota la IP que rebi el CT (o la que assignis). - 7. DNS
Deixa els valors per defecte (hereta del host) llevat que tinguis DNS propi. - 8. Confirma
Revisa el resum · marca «Inicia després de la creació» · Finalitza. - 9. SSH (dins del CT)
Obre la Consola del CT nou o connecta per SSH quan tingui IP.
Des del teu PC, copia la clau SSH pública al CT (substitueix la IP):apt update && apt upgrade -y apt install -y openssh-server systemctl enable --now ssh
Prova:ssh-copy-id root@IP_DEL_CTssh root@IP_DEL_CT
Quan funcioni SSH, escriu-me la IP i el hostname del CT. Connectarem des de Cursor i continuem amb la Fase 2 (Apache + PHP + MySQL a /var/www/html/).
PHP fet amb Cursor vs WordPress: què triar?
Per a un sol projecte web que volem controlar i fer créixer amb ajuda d'IA, la decisió depèn del tipus de lloc:
| Criteri | PHP a mida (Cursor) | WordPress |
|---|---|---|
| Tipus de projecte | Portal, CRM, gestió interna, app a mida (com Nítida, el blog index.php…) |
Blog, web corporativa, catàleg amb edició per usuaris no tècnics |
| Control del codi | Total: cada fitxer és teu, sense plugins obsolets | Dependència de temes/plugins i actualitzacions de tercers |
| IA (DeepSeek / Cursor) | Excel·lent: el codi és clar, modular i fàcil de refactoritzar | Bo per contingut, però el core WP + plugins complica el context |
| Rendiment LXC | Lleuger: Apache/Nginx + PHP-FPM + MySQL | Més pesat: WP + plugins + cron + base de dades gran |
| Seguretat | Superfície petita si el codi és propi | Més superfície d'atac (plugins, xmlrpc, login WP…) |
| Temps d'arrencada | Mitjà: cal desenvolupar funcionalitats | Ràpid si el lloc és bàsicament contingut |
Recomanació per aquest projecte
PHP a mida amb Cursor si el web és una aplicació concreta (gestió, portal, eina interna). Ja treballes així localment (htdocs, mòduls Nítida, blog monolític) i DeepSeek/Cursor entenen molt bé un codebase PHP propi.
WordPress només si el que vols és sobretot publicar pàgines i entrades sense tocar codi. Es pot instal·lar a /var/www/html/, però no és l'opció ideal per «administrar un projecte» amb IA si el projecte és una app personalitzada.
Decisió provisional: començar amb PHP + Apache + MySQL en un LXC Ubuntu, replicant l'estratègia del servidor local Windows, adaptada a Linux.
Arquitectura proposada
┌─────────────────────────────────────────┐
│ Proxmox VE (casa) │
│ ┌───────────────────────────────────┐ │
│ │ LXC: ubuntu-web-ai │ │
│ │ · Ubuntu 24.04 │ │
│ │ · Apache + PHP 8.2 + MySQL 8 │ │
│ │ · /var/www/html/ (1 projecte) │ │
│ │ · DeepSeek API / Ollama (opc.) │ │
│ │ · SSH + clau per Cursor │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘
DeepSeek: com encaixa?
- Desenvolupament (ara): DeepSeek dins Cursor per generar i mantenir el codi PHP.
- Al servidor (fase 2):
- API DeepSeek — sense GPU al LXC; ideal per scripts d'administració, anàlisi de logs, generació de configs.
- Ollama + model DeepSeek — només si hi ha RAM/ GPU suficient al host o una VM dedicada; no és imprescindible al primer LXC.
- Ús pràctic: assistent per revisar
apache2, permisos, backups, actualitzacions i errors PHP — no cal que la IA executi comandes sense supervisió.
Full de ruta (anirem marcant)
Fase 1 — Proxmox i contenidor LXC
- ✅ Completat: anàlisi de RAM del node
pve(64 GiB, ~47 GiB lliures). - ⏳ Ara: crear CT segons el quadre verd «PAS SEGÜENT» (4 GB RAM, 2 vCPU, 32 GB
local-zfs). - ⏳ Activar SSH i provar
ssh root@IPdes del PC. - ⏳ Registrar IP i hostname d'aquest CT al blog.
- ⏳
apt update && apt upgrade -ydins del CT.
Fase 2 — Stack web
- Instal·lar Apache, PHP 8.2 (extensions: mysqli, curl, gd, mbstring, zip, intl).
- Instal·lar MySQL 8 o MariaDB.
- DocumentRoot:
/var/www/htmlamb propietariwww-data. - VirtualHost per domini local / IP LAN.
- Pàgina de prova
info.phpoindex.phpmínim.
Fase 3 — Projecte
- Decidir definitivament PHP a mida vs WordPress (segons taula anterior).
- Desplegar codi a
/var/www/html/(git clone, rsync o SFTP). - Configurar base de dades i
.env/ config PHP. - Provar des del navegador de la xarxa local.
Fase 4 — IA i operació
- Configurar clau API DeepSeek (variable d'entorn, mai al repositori).
- Script opcional d'assistència (logs, espai disc, estat serveis).
- Backup Proxmox del CT + dump MySQL programat.
- Firewall (
ufw): 22, 80, 443 només des de LAN si és possible.
Fase 5 — Cursor + SSH
- Obrir el projecte remot a Cursor via SSH (
user@ip-del-ct). - Continuar desenvolupament i documentació des del servidor real.
- Actualitzar aquest post amb IP, hostname i lliçons apreses.
Recursos i convencions
- Ruta web:
/var/www/html/ - Usuari servei:
www-data - Logs Apache:
/var/log/apache2/ - Config Apache:
/etc/apache2/sites-available/ - No commitejar: claus API, contrasenyes MySQL, fitxers
.env
Pròxim pas
Segueix el quadre verd «PAS SEGÜENT» de dalt: Crea CT → Ubuntu 24.04 → 4 GB RAM → 2 vCPU → local-zfs → xarxa LAN → SSH. Quan tinguis IP i accés SSH, continuem des de Cursor.
Aquest post es mantindrà actualitzat automàticament en carregar el blog (contingut i imatge). La categoria i etiquetes només s'assignen en crear el post; les edicions manuals des del formulari es respecten.