Operar en BYOS
Una vez que tu servidor está conectado, el trabajo del día a día se parece al del alojamiento gestionado. Esta página cubre las áreas en las que ejecutar en tu propio servidor se comporta de forma distinta: dominios y SSL, Odoo Enterprise, copias de seguridad y comportamiento de la suscripción.
Dominios y SSL
Los despliegues en tu propio servidor no reciben direcciones *.skysize.io automáticas; esas están reservadas para el alojamiento gestionado en la nube. Para llegar a un despliegue BYOS desde la web, aportas tu propio dominio.
Sin un dominio
Un despliegue sin dominio sigue siendo accesible para pruebas en http://<your-server>:<port>, usando la dirección del servidor y el puerto asignado a la rama. El panel muestra la URL exacta en el despliegue. Esto es HTTP plano y es mejor reservarlo para verificación interna, no para usuarios finales.
Agregar tu dominio
- Abre la sección Dominios de la rama y agrega tu dominio (por ejemplo
erp.mycompany.com), dejando SSL habilitado. - En tu proveedor de DNS, crea un registro A que apunte el dominio a la dirección IPv4 pública de tu servidor (se muestra en la página de detalle del servidor en el panel).
- Espera a que el DNS se propague y luego abre el dominio en un navegador.
En el alojamiento gestionado apuntas un CNAME a tu nombre de host *.skysize.io. En BYOS no existe ese nombre de host, así que apuntas un registro A directamente a la IP de tu servidor. El resto de la guía de dominios personalizados se aplica sin cambios.
Certificados SSL
Los certificados HTTPS para los despliegues BYOS se emiten en tu servidor mediante Let's Encrypt, y se renuevan ahí automáticamente. Los certificados propios de la plataforma de Skysize nunca se instalan en hardware de clientes.
Para que la emisión tenga éxito:
- El DNS del dominio ya debe resolver a tu servidor.
- Los puertos 80 y 443 del servidor deben ser accesibles desde internet (Let's Encrypt valida el dominio por HTTP).
Hasta que se emita el certificado, el sitio puede estar accesible brevemente solo por HTTP.
Odoo Enterprise en tu propio servidor
Los despliegues Enterprise en tu servidor descargan el código fuente de Odoo Enterprise usando tus propias credenciales de GitHub, desde tu propia suscripción de Odoo Enterprise. Las credenciales enterprise de Skysize nunca se usan en hardware de clientes.
Para configurarlo, abre la página de detalle de tu servidor y busca los ajustes de Fuente de Odoo Enterprise:
- Token de GitHub: un token de acceso personal de una cuenta de GitHub vinculada a tu suscripción de Odoo Enterprise. Se almacena cifrado y nunca se vuelve a mostrar después de guardarlo.
- URL del repositorio: déjala vacía para usar el repositorio oficial
odoo/enterprise, o define tu propio mirror (debe empezar porhttps://).
También puedes proporcionar el token al crear un proyecto Enterprise; el panel te lo pide solo cuando el servidor de destino aún no tiene ninguno configurado.
Sin un token válido, los builds Enterprise en ese servidor fallan porque el código enterprise no se puede descargar. Los proyectos Community no se ven afectados.
Workers y memoria
Tu servidor, tu dimensionamiento: en BYOS el número de workers del despliegue no lo fija el plan, lo eliges tú. Abre la Configuración del proyecto y ve a Workers y memoria. Estos ajustes dimensionan solo el despliegue de producción; los despliegues de staging y de desarrollo se ejecutan siempre como un único proceso de Odoo, con recursos fijos.
- Workers: el número de procesos HTTP de Odoo. Déjalo en 0 para un único proceso que atiende a la vez el HTTP y las acciones planificadas, lo adecuado para una instancia pequeña o un servidor modesto. Indica 2 o más para ejecutar Odoo en modo multiproceso, donde cada worker atiende peticiones en paralelo.
- Workers cron: cuántos procesos ejecutan las acciones planificadas. Solo se usan en modo multiproceso; el valor predeterminado de Odoo es 2.
- Memoria por worker: el límite de memoria de cada proceso de Odoo, en MB. El mínimo es 512 MB y el valor predeterminado 1024 MB. Odoo reinicia el proceso que lo supera, así que súbelo si tu carga de trabajo incluye importaciones o informes grandes.
Al cambiar cualquiera de estos valores, el panel muestra, antes de aplicar, la memoria máxima que puede usar el despliegue: cada proceso en su límite, más 512 MB de margen para el contenedor. Comprueba que tu servidor dispone de esa memoria, además de Postgres y de todo lo demás que ejecute.
Aplicar y reiniciar guarda el dimensionamiento y reinicia el despliegue de producción, así que cuenta con una breve interrupción.
Los ajustes Tiempo de espera de las solicitudes y Tiempo de espera de los workers cron están en la misma sección y funcionan exactamente igual que en el alojamiento gestionado. Consulta Límites de tiempo.
Copias de seguridad
El sistema de copias de seguridad completo funciona en BYOS: copias de seguridad diarias automáticas de producción, copias de seguridad manuales, restauraciones, descargas e importaciones. Los trabajos de copia de seguridad se ejecutan en tu servidor y luego suben el archivo al destino de almacenamiento configurado del proyecto.
Elegir dónde se almacenan las copias de seguridad
Los proyectos BYOS hacen copias de seguridad en tu propio almacenamiento: el almacenamiento de la plataforma Skysize no se ofrece como destino, de modo que tanto los datos en vivo (en tu servidor) como las copias de seguridad permanecen en una infraestructura que tú controlas. Mientras no configures un destino no se hace ninguna copia de seguridad, y el proyecto muestra un aviso rojo indicándolo.
- Abre la Configuración del proyecto y ve a Destino de copias de seguridad.
- En Tus destinos de copias de seguridad, haz clic en Añadir destino y crea un destino de tipo Sistema de archivos, AWS S3 o Google Cloud Storage (consulta los ejemplos a continuación). Usa Probar para verificar la conexión.
- El primer destino que añadas se selecciona automáticamente como Destino de almacenamiento del proyecto. Si más adelante añades otros, elige el que quieras usar en Destino de almacenamiento y guarda.
Ejemplos de configuración
Un destino de copias de seguridad tiene un nombre, un tipo y un campo Configuración (JSON) cuyos parámetros dependen del tipo. La configuración se guarda cifrada; las credenciales nunca vuelven a mostrarse en claro después de guardar. Un ejemplo por tipo:
Sistema de archivos
Escribe los archivos en un directorio del propio servidor:
{
"base_path": "/var/lib/skysize/backups"
}
base_path es opcional y su valor por defecto es /var/lib/skysize/backups.
Las copias de seguridad en el sistema de archivos residen en la misma máquina que tus bases de datos. Protegen contra datos dañados (borrados accidentales, actualizaciones fallidas), pero no contra la pérdida del propio servidor. Para la recuperación ante desastres, usa un destino S3 o Google Cloud Storage, o copia tú mismo el directorio de copias de seguridad fuera del servidor.
AWS S3
Sube los archivos a un bucket de S3:
{
"bucket": "mycompany-odoo-backups",
"region": "eu-central-1",
"prefix": "erp-production",
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
bucket es obligatorio; region toma el valor us-east-1 si se omite. prefix es opcional y coloca cada archivo bajo ese prefijo de clave, lo cual resulta útil cuando varios proyectos comparten un mismo bucket.
access_key_id y secret_access_key son opcionales. Si se omiten, el agente usa las credenciales de la máquina en la que se ejecuta (cadena de credenciales predeterminada de AWS). Si tu servidor es una instancia EC2, esta es la configuración recomendada: asocia un rol de IAM a la instancia y no indiques ninguna clave; así no se almacena ningún secreto de larga duración y AWS se encarga de la rotación:
{
"bucket": "mycompany-odoo-backups",
"region": "eu-central-1",
"prefix": "erp-production"
}
Tanto con un rol de instancia como con una clave de acceso, la identidad debe poder listar el bucket y escribir, leer y eliminar objetos en él. Política mínima:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetBucketLocation"],
"Resource": "arn:aws:s3:::mycompany-odoo-backups"
},
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts"],
"Resource": "arn:aws:s3:::mycompany-odoo-backups/*"
}
]
}
Usa una clave de acceso solo cuando el servidor no se ejecute en AWS (crea un usuario de IAM con la política anterior y luego Credenciales de seguridad → Crear clave de acceso). El botón Probar ejecuta la comprobación desde tu propio servidor, por lo que valida el rol de instancia igual que lo haría una copia de seguridad real.
Google Cloud Storage
Sube los archivos a un bucket de GCS:
{
"bucket": "mycompany-odoo-backups",
"prefix": "erp-production",
"credentials_json": "{\"type\": \"service_account\", \"project_id\": \"my-project\", \"private_key_id\": \"...\", \"private_key\": \"...\", \"client_email\": \"[email protected]\", ...}"
}
bucket es obligatorio; prefix es opcional, igual que en S3. credentials_json es el contenido completo de un archivo de clave de cuenta de servicio, incrustado como una única cadena JSON (comillas escapadas). La cuenta de servicio necesita el rol Storage Object Admin en el bucket. Si dejas credentials_json vacío, el agente recurre a las credenciales de Google por defecto de la máquina, que normalmente solo existen cuando tu servidor se ejecuta en Google Cloud.
Las copias de seguridad se crean en el servidor antes de subirse, así que mantén suficiente espacio libre en disco para una copia comprimida de tu base de datos más grande junto con su filestore.
Si tu suscripción caduca
Si tu suscripción de Bring Your Own Server caduca o se cancela, Skysize nunca entra en tu servidor para apagar nada:
- Los despliegues en ejecución siguen funcionando. Tus instancias de Odoo y sus datos permanecen activos en tu hardware.
- El trabajo nuevo queda bloqueado. Los builds, los despliegues y las copias de seguridad de los proyectos BYOS se rechazan hasta que la suscripción vuelva a estar activa, y no se pueden agregar nuevos servidores ni proyectos BYOS. Los proyectos afectados muestran un aviso en el panel.
- Renovar lo restaura todo. Renueva o vuelve a comprar la suscripción desde la página Agentes y los builds y las copias de seguridad se reanudan; no hace falta reinstalar nada.
Si la cuenta permanece sin ninguna suscripción activa de Bring Your Own Server durante un periodo prolongado (unos 30 días), los servidores conectados que no estén alojando despliegues de proyectos activos se eliminan del panel. Tendrías que registrarlos e inscribirlos de nuevo después de volver a suscribirte. Los servidores que aún alojan tus despliegues en ejecución no se eliminan.
Límites y diferencias frente al alojamiento en la nube
- Sin dominios
*.skysize.io. Cada despliegue al que quieras llegar desde la web necesita tu propio dominio, con un registro A apuntando a tu servidor. - Sin interruptor de proxy de Cloudflare. El tráfico va directo a tu servidor. Si quieres una CDN o protección contra DDoS por delante, configúralo en tu propio proveedor de DNS o de proxy.
- Sin selección de región. La ubicación de tu servidor es la región. La latencia y la residencia de datos vienen determinadas por dónde lo alojes.
- Sin nivel gratuito. Los proyectos BYOS siempre requieren una suscripción activa de Bring Your Own Server, una por proyecto.
- La capacidad la gestionas tú. La CPU, la RAM y el disco están limitados por tu hardware. Vigila las métricas del servidor en el panel y agrega recursos, o conecta servidores adicionales, antes de que se agoten. Con varios servidores, producción se ejecuta en el servidor que seleccionaste y las demás ramas se reparten entre todos ellos.
- El mantenimiento del servidor es tuyo. Las actualizaciones del sistema operativo, los parches de seguridad y la configuración del firewall de la máquina son tu responsabilidad. Skysize mantiene actualizados el agente y tus despliegues de Odoo.
Todo lo demás, incluidos los flujos de trabajo de ramas, los logs de build, la gestión de accesos y las restauraciones, se comporta exactamente igual que en el alojamiento gestionado.