CINXE.COM

Nextcloud en Docker: instalar el software de la nube en un contenedor - IONOS MX

<!DOCTYPE html> <html lang="es" class="no-js"> <head itemscope itemtype="http://schema.org/WebSite"> <meta itemprop="name" content="IONOS Digital Guide"/> <meta charset="utf-8"><link rel="preconnect" href="https://cdn.ionos.de/"><link rel="preconnect" href="https://shop-api.ionos.mx/"><link rel="preconnect" href="https://dpm.demdex.net/"><link rel="preconnect" href="https://1and1internetag.demdex.net/"><script src="https://cdn.ionos.de/guides/9c2134ba72b4/047afaab1ab6/launch-bffa846ee117.min.js" async nonce=""></script><!-- Guides Datalayer --> <script id="guides_datalayer" nonce=""> var guidesDataLayer = guidesDataLayer || {}; guidesDataLayer = {"application":"T3.DG.MX","market":"MX","guide":"DG","context":"prod","shopname":"dg-mx","internalPageName":"servidores_configuracion_instalacion-de-nextcloud-con-docker","land":"mx","s_account":"iaglive","prop1":"servidores_configuracion_instalacion-de-nextcloud-con-docker","prop5":"dg-servidores","prop6":"dg-mx","prop7":"www.ionos.mx","prop11":"New contract shop","prop16":"","prop17":"mx","prop21":"","prop23":"","prop51":"","prop73":"iaglive","mcorgid":"AC42148954F5FEDA0A4C98BC@AdobeOrg","ns":"1und1internetag","eVar1":"digitalguide","eVar2":"servidores_configuracion_instalacion-de-nextcloud-con-docker","eVar6":"dg-servidores","eVar7":"dg-mx","eVar13":"New contract shop","eVar23":"","eVar24":"","eVar25":"","eVar45":"mx","eVar72":"","eVar74":"","eVar79":"","eVar91":"","eVar97":"","eVar98":"","eVar99":"","eVar83":"es-MX"}; var application = guidesDataLayer.application; var guidesDataLayerUpdate = function(key = '', value = '') { if (typeof guidesDataLayer !== 'undefined' && guidesDataLayer.hasOwnProperty(key) && (typeof value === 'string' || typeof value === 'number')) { guidesDataLayer[key] = value.toString(); } } guidesDataLayerUpdate('prop23', window.navigator.userAgent); var preparedUrlSearchParams = decodeURI(location.search.replace(/\?/g, "").replace(/&/g, "\",\"").replace(/=/g,"\":\"")); var urlSearchParams = JSON.parse(preparedUrlSearchParams ? '{"' + preparedUrlSearchParams + '"}' : '{}'); var utmSource = urlSearchParams.utm_source || ''; var utmCampaign = urlSearchParams.utm_campaign || ''; var utmTerm = urlSearchParams.utm_term || ''; var utmMedium = urlSearchParams.utm_medium || ''; var utmContent = urlSearchParams.utm_content || ''; if (utmSource || utmCampaign) { guidesDataLayerUpdate('eVar25', utmSource + '|' + utmCampaign); } if (utmTerm || utmMedium || utmContent) { guidesDataLayerUpdate('eVar72', utmTerm + '|' + utmMedium + '|' + utmContent); } </script> <!-- Guides Datalayer --><link class="preload" rel="preload" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-regular.1732271160.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link class="preload" rel="preload" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-regular.1732271160.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link class="preload" rel="preload" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-semibold.1732271160.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link class="preload" rel="preload" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-bold.1732271160.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link as="image" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Icons/logo-icon-nlement-48px-and-smaller.svg" rel="preload" /><link as="image" href="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_668649cffc.webp" imagesrcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_1531be22fc.webp 684w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_6333d86f6c.webp 644w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_adff4a69c6.webp 554w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_89d8f6110c.webp 464w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_668649cffc.webp 704w" imagesizes="(min-width: 1680px) 684px,(min-width: 1400px) 644px,(min-width: 1200px) 554px,(min-width: 922px) 464px,(min-width: 768px) 704px" rel="preload" /><link as="style" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Css/ionos/styles.bundled.1732271160.css" rel="preload" /><link as="style" href="https://www.ionos.mx/modules/hosting-common/script/privacy/bundle.css" rel="preload" /> <!-- build by IONOS SE This website is powered by TYPO3 - inspiring people to share! TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. TYPO3 is copyright 1998-2024 of Kasper Skaarhoj. Extensions are copyright of their respective owners. Information and contribution at https://typo3.org/ --> <link rel="icon" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Icons/logo-icon-nlement-48px-and-smaller.svg" type="image/svg+xml"> <title>Nextcloud en Docker: instalar el software de la nube en un contenedor - IONOS MX</title> <meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1"> <meta name="generator" content="TYPO3 CMS"> <meta name="description" content="Docker Compose se usa para instalar Nextcloud Server. De este modo, los elementos individuales pueden funcionar como contenedores y ser controlados de forma conjunta."> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=5.0"> <meta name="robots" content="index,follow"> <meta property="og:image" content="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/mysql-t.jpg"> <meta property="og:image:url" content="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/mysql-t.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta property="og:description" content="Docker Compose se usa para instalar Nextcloud Server. De este modo, los elementos individuales pueden funcionar como contenedores y ser controlados de forma conjunta."> <meta property="og:type" content="article"> <meta property="og:title" content="Instalación de Nextcloud con Docker"> <meta property="og:site_name" content="IONOS Digital Guide"> <meta property="og:locale" content="es_MX"> <meta property="og:url" content="https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/"> <meta name="twitter:card" content="summary"> <meta name="meta-category" content="Digital Guide"> <meta name="apple-mobile-web-app-capable" content="no"> <link class="preload" href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Css/ionos/styles.bundled.1732271160.css" rel="stylesheet" > <link href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/prism.1732271161.css" rel="stylesheet" > <link href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/toolbar/prism-toolbar.1732271161.css" rel="stylesheet" > <link href="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/line-numbers/prism-line-numbers.1732271161.css" rel="stylesheet" > <link class="preload" href="https://www.ionos.mx/modules/hosting-common/script/privacy/bundle.css" rel="stylesheet" > <style> @font-face { font-family:'Open Sans Regular'; font-weight:400; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-regular.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Open Sans'; font-weight:400; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-regular.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Open Sans Semi Bold'; font-weight:600; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-semibold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Open Sans'; font-weight:600; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-semibold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Open Sans Bold'; font-weight:700; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-bold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Open Sans'; font-weight:700; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/OpenSans/opensans-bold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass Regular'; font-weight:400; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-regular.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass'; font-weight:400; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-regular.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass Semi Bold'; font-weight:600; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-semibold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass'; font-weight:600; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-semibold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass Bold'; font-weight:700; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-bold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } @font-face { font-family:'Overpass'; font-weight:700; font-display:swap; src:url('https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Fonts/Overpass/overpass-bold.1732271160.woff2')format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+2713,U+2714,U+2718,U+0308 } </style> <script type="application/ld+json"> {"@context":"https:\/\/schema.org\/","@type":"Article","author":{"@type":"Person","name":"Equipo editorial de IONOS"},"headline":"Instalaci\u00f3n de Nextcloud con Docker","image":{"@type":"ImageObject","url":"https:\/\/www.ionos.mx\/digitalguide\/fileadmin\/DigitalGuide\/Teaser\/mysql-t.jpg"},"datePublished":"2023-03-01","publisher":{"@type":"Organization","name":"IONOS","logo":{"@type":"ImageObject","url":"https:\/\/www.ionos.mx\/digitalguide\/_assets\/b76f27cb02ebc538ac6fbabcf1a88e7f\/Images\/ionos_logo.svg"}}} </script> <script>/* src: https://github.com/taylorhakes/promise-polyfill */!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function r(e,n){if(n&&("object"==typeof n||"function"==typeof n)){var f=n.then;if("function"==typeof f)return void f.call(n,function(t){r(e,t)},function(n){o[e]={status:"rejected",reason:n},0==--i&&t(o)})}o[e]={status:"fulfilled",value:n},0==--i&&t(o)}if(!e||"undefined"==typeof e.length)return n(new TypeError(typeof e+" "+e+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var o=Array.prototype.slice.call(e);if(0===o.length)return t([]);for(var i=o.length,f=0;o.length>f;f++)r(f,o[f])})}function n(e,t){this.name="AggregateError",this.errors=e,this.message=t||""}function r(e){var t=this;return new t(function(r,o){if(!e||"undefined"==typeof e.length)return o(new TypeError("Promise.any accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return o();for(var f=[],u=0;i.length>u;u++)try{t.resolve(i[u]).then(r)["catch"](function(e){f.push(e),f.length===i.length&&o(new n(f,"All promises were rejected"))})}catch(c){o(c)}})}function o(e){return!(!e||"undefined"==typeof e.length)}function i(){}function f(e){if(!(this instanceof f))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,f._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(o){return void a(t.promise,o)}c(t.promise,r)}else(1===e._state?c:a)(t.promise,e._value)})):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof f)return e._state=3,e._value=t,void l(e);if("function"==typeof n)return void s(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,l(e)}catch(r){a(e,r)}}function a(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&f._immediateFn(function(){e._handled||f._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)u(e,e._deferreds[t]);e._deferreds=null}function s(e,t){var n=!1;try{e(function(e){n||(n=!0,c(t,e))},function(e){n||(n=!0,a(t,e))})}catch(r){if(n)return;n=!0,a(t,r)}}n.prototype=Error.prototype;var d=setTimeout;f.prototype["catch"]=function(e){return this.then(null,e)},f.prototype.then=function(e,t){var n=new this.constructor(i);return u(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,n)),n},f.prototype["finally"]=e,f.all=function(e){return new f(function(t,n){function r(e,o){try{if(o&&("object"==typeof o||"function"==typeof o)){var u=o.then;if("function"==typeof u)return void u.call(o,function(t){r(e,t)},n)}i[e]=o,0==--f&&t(i)}catch(c){n(c)}}if(!o(e))return n(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},f.any=r,f.allSettled=t,f.resolve=function(e){return e&&"object"==typeof e&&e.constructor===f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.race=function(e){return new f(function(t,n){if(!o(e))return n(new TypeError("Promise.race accepts an array"));for(var r=0,i=e.length;i>r;r++)f.resolve(e[r]).then(t,n)})},f._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},f._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var p=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"function"!=typeof p.Promise?p.Promise=f:(p.Promise.prototype["finally"]||(p.Promise.prototype["finally"]=e),p.Promise.allSettled||(p.Promise.allSettled=t),p.Promise.any||(p.Promise.any=r))}); </script> <script> window.promisedConsentScriptsBefore = window.promisedConsentScriptsBefore || []; window.promisedConsentScriptsAfter = window.promisedConsentScriptsAfter || []; // Define a whitelist of allowed URLs or domains const allowedUrls = [ /^https:\/\/(.*\.)?ionos\.(de|at|com|ca|co\.uk|mx|it|fr|es)$/, /^https:\/\/(.*\.)?uicdn\.net$/, /^https:\/\/(.*\.)?(youtube(-nocookie)?\.com|youtu\.be)$/, /^https:\/\/(.*\.)?server\.lan$/, /^https:\/\/(.*\.)?ddev\.site$/ ]; // Function to validate the URL function isValidUrl(url) { try { const parsedUrl = new URL(url); return allowedUrls.some(pattern => pattern.test(parsedUrl.origin)); } catch (e) { return false; } } // Function to load a script function loadScript(url) { return new Promise((resolve, reject) => { if (!isValidUrl(url)) { return reject(new Error(`Forbidden url: ${url}`)); } const script = document.createElement('script'); script.src = url; script.async = true; script.onload = () => resolve(script); script.onerror = () => reject(new Error(`Failed to load script: ${url}`)); document.head.appendChild(script); }); } // Function to execute scripts or functions function executeScripts(scripts) { return scripts.reduce((promise, scriptOrFunction) => { return promise.then(() => { if (typeof scriptOrFunction === 'string') { if (typeof window[scriptOrFunction] === 'function') { return Promise.resolve(window[scriptOrFunction]()); } else { return loadScript(scriptOrFunction); } } else if (typeof scriptOrFunction === 'function') { return Promise.resolve(scriptOrFunction()); } }); }, Promise.resolve()); } function loadPromisedConsentScripts({ consentUrl, consentConfig, before, after }) { executeScripts(before || []) .then(() => { return new Promise((resolve) => { if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", () => resolve(loadScript(consentUrl))); } else { resolve(loadScript(consentUrl)); } }); }) .then(() => { const consentLoaded = new CustomEvent('consentLoaded'); if (typeof window.privacyConsent === "undefined") { window.privacyConsent = new PrivacyConsent(consentConfig); } window.privacyConsent.initialize(); if (typeof window.privacyConsent === 'object') { if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function() { let consentBodyTag = document.querySelector('body'); consentBodyTag.dataset.consentLoaded = 1; }); } else { let consentBodyTag = document.querySelector('body'); consentBodyTag.dataset.consentLoaded = 1; } window.dispatchEvent(consentLoaded); } }) .then(() => { if (typeof window.privacyConsent !== "undefined") { return executeScripts(after || []); } else { throw new Error('window.privacyConsent is undefined'); } }) .catch(error => { console.error(error); }); } let jentis = function () { const jentisConfig = new Map([ ['de', {endpoint: 'https://6zqtim.ionos.de', project: 'ionos_de', jsFile: 'aljmf5.js'}], ['uk', {endpoint: 'https://xxwre7.ionos.co.uk', project: 'ionos_co_uk', jsFile: 'akbbdz.js'}], ['us', {endpoint: 'https://54ft7i.ionos.com', project: 'ionos_com', jsFile: '48gpcp.js'}], ['ca', {endpoint: 'https://nsupig.ionos.ca', project: 'ionos_ca', jsFile: 'j05pa0.js'}], ['fr', {endpoint: 'https://948si5.ionos.fr', project: 'ionos_fr', jsFile: 'b44g5k.js'}], ['es', {endpoint: 'https://v0v7kq.ionos.es', project: 'ionos_es', jsFile: 'bp6upp.js'}], ['it', {endpoint: 'https://kt8986.ionos.it', project: 'ionos_it', jsFile: 'td7zu1.js'}], ['mx', {endpoint: 'https://e5xnsj.ionos.mx', project: 'ionos_mx', jsFile: 'tvjenp.js'}], ['at', {endpoint: 'https://6kudki.ionos.at', project: 'ionos_at', jsFile: '9t1jfx.js'}], ]); let country = window.guidesDataLayer.market.toLowerCase(); const jentisRuntimeConfig = jentisConfig.has(country) ? jentisConfig.get(country) : null; if (jentisRuntimeConfig === null) { throw new Error('Jentis runtime configuration not available!'); } (function (sCDN, sCDNProject, sCDNWorkspace, sCDNVers) { if ( window.localStorage !== null && typeof window.localStorage === "object" && typeof window.localStorage.getItem === "function" && window.sessionStorage !== null && typeof window.sessionStorage === "object" && typeof window.sessionStorage.getItem === "function" ) { sCDNVers = window.sessionStorage.getItem("jts_preview_version") || window.localStorage.getItem("jts_preview_version") || sCDNVers; } window.jentis = window.jentis || {}; window.jentis.config = window.jentis.config || {}; window.jentis.config.frontend = window.jentis.config.frontend || {}; window.jentis.config.frontend.cdnhost = sCDN + "/get/" + sCDNWorkspace + "/web/" + sCDNVers + "/"; window.jentis.config.frontend.vers = sCDNVers; window.jentis.config.frontend.env = sCDNWorkspace; window.jentis.config.frontend.project = sCDNProject; window._jts = window._jts || []; var f = document.getElementsByTagName("script")[0]; var j = document.createElement("script"); j.async = true; j.src = window.jentis.config.frontend.cdnhost + jentisRuntimeConfig.jsFile; f.parentNode.insertBefore(j, f); })(jentisRuntimeConfig.endpoint, jentisRuntimeConfig.project, "live", "_"); } const jentisPageView = function () { const dataLayerNs = window.ionos.datalayer.pageview; dataLayerNs.applicationName = window.guidesDataLayer.shopname; dataLayerNs.subShopname = null; dataLayerNs.page = window.guidesDataLayer.prop1; dataLayerNs.productArea = window.guidesDataLayer.eVar1; dataLayerNs.section = window.guidesDataLayer.eVar6; dataLayerNs.hashedIp = null; dataLayerNs.loginStatus = null; dataLayerNs.hashedCustomerId = null; window.privacyConsent.invoke( window.ionos.datalayer.pageview.sendData, window.PrivacyConsentEnum.STATISTICS, null, true, ); window?.ionos?.datalayer?.initConsent(); } let doJentisPageView = function() { window.privacyConsent.invoke( jentisPageView, PrivacyConsentEnum.STATISTICS, window.privacyConsent, true ); } window.jentis = jentis; window.jentisPageView = jentisPageView; window.doJentisPageView = doJentisPageView; window.promisedConsentScriptsBefore.push('jentis'); window.promisedConsentScriptsAfter.push('https://var.uicdn.net/shopsshort/ionos-datalayer/datalayer.min.js'); window.promisedConsentScriptsAfter.push('doJentisPageView'); let hubspot = function () { let hubspotFn = function () { var n = document.createElement("script"); n.setAttribute("id", 'hs-script-loader'); n.async = true; n.defer = true; n.setAttribute("src", 'https://js-eu1.hs-scripts.com/8230984.js'); window.document.head.appendChild(n); }; window.privacyConsent.invoke( hubspotFn, PrivacyConsentEnum.STATISTICS, window.privacyConsent, true ); } window.hubspot = hubspot; window.promisedConsentScriptsAfter.push('hubspot'); function consentRelatedScriptsInsertAfter(newNode, existingNode) { existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling); } let consentRelatedScripts = function() { var consentRelatedScriptsFn = document.querySelectorAll('script[type="text/plain"][data-consent]'); console.info(consentRelatedScriptsFn); var consentedFunctions = []; consentRelatedScriptsFn.forEach(function (item) { var consentCategoryFromDataSet = item.dataset.consent || ''; if (consentCategoryFromDataSet !== '') { var consentCategory = consentCategoryFromDataSet.toUpperCase(); if (!(consentCategory in consentedFunctions)) { consentedFunctions[consentCategory] = []; } consentedFunctions[consentCategory].push(item); } }) var activateConsentRelatedScripts = []; for (var consentCategory in consentedFunctions) { activateConsentRelatedScripts[consentCategory] = function() { consentedFunctions[consentCategory].forEach(function(item) { var newScriptContent = item.text; const newScript = document.createElement("script"); newScript.text = newScriptContent; newScript.type = "text/javascript"; newScript.dataset.consentGiven = true; consentRelatedScriptsInsertAfter(newScript, item); }); }; window.privacyConsent.invoke( activateConsentRelatedScripts[consentCategory], PrivacyConsentEnum[consentCategory], window.privacyConsent, false ); } } window.consentRelatedScripts = consentRelatedScripts; window.consentRelatedScriptsInsertAfter = consentRelatedScriptsInsertAfter; window.promisedConsentScriptsAfter.push('consentRelatedScripts'); window.promisedConsentScriptsBefore = window.promisedConsentScriptsBefore || []; window.promisedConsentScriptsAfter = window.promisedConsentScriptsAfter || []; loadPromisedConsentScripts({ consentUrl: 'https://www.ionos.mx/modules/hosting-common/script/privacy/bundle.js', consentConfig: '{"whitelist" => true}', before: window.promisedConsentScriptsBefore, after: window.promisedConsentScriptsAfter }); </script> <script> "use strict"; if (typeof ready !== 'function') { var ready=function(e){"loading"!==document.readyState?e():document.addEventListener?document.addEventListener("DOMContentLoaded",e):document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&e()})}; } /** Polyfill for NodeList.forEach */ if ('NodeList' in window && !NodeList.prototype.forEach) {NodeList.prototype.forEach = function (callback, thisArg) {thisArg = thisArg || window;for (var i = 0; i < this.length; i++) callback.call(thisArg, this[i], i, this);};} /** Polyfill for HTMLCollection.forEach */ if ('HTMLCollection' in window && !HTMLCollection.prototype.forEach) {HTMLCollection.prototype.forEach = function (callback, thisArg) {thisArg = thisArg || window;for (var i = 0; i < this.length; i++) callback.call(thisArg, this[i], i, this);};} /** Array.prototype.includes() polyfill @author Chris Ferdinandi @license MIT */ if (!Array.prototype.includes) {Array.prototype.includes = function (search, start) {'use strict';if (search instanceof RegExp) throw TypeError('first argument must not be a RegExp');if (start === undefined) start = 0;return this.indexOf(search, start) !== -1;};} /** Polyfill for Element.matches */ if (Element && !Element.prototype.matches) {Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;} </script> <meta name="theme-color" content="#02102b"/> <link rel="canonical" href="https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/"/> <link rel="alternate" hreflang="de" href="https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-installation-mit-docker/"/> <link rel="alternate" hreflang="de-AT" href="https://www.ionos.at/digitalguide/server/konfiguration/nextcloud-installation-mit-docker/"/> <link rel="alternate" hreflang="de-DE" href="https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-installation-mit-docker/"/> <link rel="alternate" hreflang="en" href="https://www.ionos.com/digitalguide/server/configuration/nextcloud-installation-with-docker/"/> <link rel="alternate" hreflang="en-CA" href="https://www.ionos.ca/digitalguide/server/configuration/nextcloud-installation-with-docker/"/> <link rel="alternate" hreflang="en-GB" href="https://www.ionos.co.uk/digitalguide/server/configuration/nextcloud-installation-with-docker/"/> <link rel="alternate" hreflang="es" href="https://www.ionos.com/es-us/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/"/> <link rel="alternate" hreflang="es-ES" href="https://www.ionos.es/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/"/> <link rel="alternate" hreflang="es-MX" href="https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/"/> <link rel="alternate" hreflang="fr" href="https://www.ionos.fr/digitalguide/serveur/configuration/installation-de-nextcloud-avec-docker/"/> <link rel="alternate" hreflang="it" href="https://www.ionos.it/digitalguide/server/configurazione/installare-nextcloud-con-docker/"/> <link rel="alternate" hreflang="x-default" href="https://www.ionos.com/digitalguide/server/configuration/nextcloud-installation-with-docker/"/> </head> <body class="position-relative page-3652"> <nav id="navigation-main" class="navbar brand-header-bg brand-header-color position-fixed fixed-top contain-style" data-bs-theme="dark"><span class="scroll-indicator d-block fixed-top w-100"><span class="d-block brand-scroll-indicator-bg"></span></span><div class="container-fluid container-sm"><a data-linkid="guides.logo.header" class="navbar-brand mx-0 d-flex align-items-center link-internal" href="https://www.ionos.mx/digitalguide/" target="_top" title="Digital Guide" data-guides-target-uid="1"><svg class="d-inline-block m-0 brand-logo brand-header-color"><use xlink:href="#ionos-logo" /></svg><span class="brand-entity d-inline-block m-0 ms-3 brand-header-color lh-1">Digital Guide</span></a><form id="search-bar" class="search-form input-group input-group-sm w-auto mx-5 d-none d-lg-flex flex-fill" role="search" action="https://www.ionos.mx/digitalguide/buscar/" method="POST" autocomplete="off"><span class="input-group-text rounded-start-5 border-0 px-0 brand-header-search-bg"><button class="btn btn-sm brand-header-search-bg brand-header-muted-color" type="submit" id="navbar-search" data-linkid="guides.module.search.btn"><svg width="16" height="16"><use xlink:href="#icon-search"></use></svg><span class="visually-hidden">Buscar</span></button></span><input class="form-control rounded-end-5 border-0 ps-1 brand-header-search-bg brand-header-muted-color" type="text" name="search" onkeyup="javascript:localStorage.setItem('searchTerm', cleanupSearchString(this.value))" placeholder="Buscar" autocomplete="off" aria-label="Buscar" aria-describedby="navbar-search" spellcheck="false" ></form><button class="btn btn-sm btn-cta px-3 ms-auto me-5 d-none d-sm-block" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbar-products" aria-controls="navbar-products" aria-labelledby="navbar-products"> Productos IONOS </button><div class="offcanvas offcanvas-top brand-header-bg brand-header-color" data-bs-hideresize="true" tabindex="-1" id="navbar-products" aria-labelledby="navbar-products"><div class="offcanvas-header"><span class="offcanvas-title h5 brand-header-color" id="offcanvas-label-navigation-products">Productos IONOS</span><button type="button" class="btn-close brand-header-color navbar-toggler" data-bs-dismiss="offcanvas" aria-label="Close"></button></div><div class="offcanvas-body pt-0 position-relative align-items-center"><ul class="nav"><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Dominios</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/dominios/registro-de-dominios" target="_top" data-linkid="guides.navigation.products.dominios.dominios" class="nav-link link-internal">Dominios</a></li><li class="nav-item"><a href="https://www.ionos.mx/dominios/domain-check" target="_top" data-linkid="guides.navigation.products.dominios.domain-check" class="nav-link link-internal">Domain Check</a></li><li class="nav-item"><a href="https://www.ionos.mx/dominios/transferencia-de-dominios" target="_top" data-linkid="guides.navigation.products.dominios.transferencia-de-dominio" class="nav-link link-internal">Transferencia de dominio</a></li><li class="nav-item"><a href="https://www.ionos.mx/dominios/gratis-dominio" target="_top" data-linkid="guides.navigation.products.dominios.dominio-gratis" class="nav-link link-internal">Dominio gratis</a></li><li class="nav-item"><a href="https://www.ionos.mx/seguridad/certificado-ssl" target="_top" data-linkid="guides.navigation.products.dominios.certificados-ssl" class="nav-link link-internal">Certificados SSL</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Páginas web &amp; Tiendas online</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/pagina-web/crear-pagina-web" target="_top" data-linkid="guides.navigation.products.paginas-web-tiendas-online.crear-una-pagina-web" class="nav-link link-internal">Crear una página web</a></li><li class="nav-item"><a href="https://www.ionos.mx/soluciones-ecommerce/tiendas-online" target="_top" data-linkid="guides.navigation.products.paginas-web-tiendas-online.crear-una-tienda-online" class="nav-link link-internal">Crear una tienda online</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Hosting &amp; WordPress</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/alojamiento/web-hosting" target="_top" data-linkid="guides.navigation.products.hosting-wordpress.hosting" class="nav-link link-internal">Hosting</a></li><li class="nav-item"><a href="https://www.ionos.mx/alojamiento/wordpress-hosting" target="_top" data-linkid="guides.navigation.products.hosting-wordpress.hosting-wordpress" class="nav-link link-internal">Hosting WordPress</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Office</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/soluciones-oficina/correo-electronico" target="_top" data-linkid="guides.navigation.products.office.correo-electronico-profesional" class="nav-link link-internal">Correo electrónico profesional</a></li><li class="nav-item"><a href="https://www.ionos.mx/soluciones-oficina/microsoft-office" target="_top" data-linkid="guides.navigation.products.office.microsoft-365-office-365" class="nav-link link-internal">Microsoft 365 / Office 365</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Servidores</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/cloud/cloud-server" target="_top" data-linkid="guides.navigation.products.servidores.servidores-cloud" class="nav-link link-internal">Servidores cloud</a></li><li class="nav-item"><a href="https://www.ionos.mx/servidores/vps" target="_top" data-linkid="guides.navigation.products.servidores.servidores-virtuales-vps" class="nav-link link-internal">Servidores virtuales (VPS)</a></li><li class="nav-item"><a href="https://www.ionos.mx/servidores/dedicated-server" target="_top" data-linkid="guides.navigation.products.servidores.servidores-dedicados" class="nav-link link-internal">Servidores dedicados</a></li><li class="nav-item"><a href="https://cloud.ionos.mx/" target="_top" data-linkid="guides.navigation.products.servidores.ionos-cloud" class="nav-link link-internal">IONOS Cloud</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><span class="nav-link disabled brand-header-muted-color">Herramientas</span><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/tools/crear-nombre-para-empresa" target="_top" data-linkid="guides.navigation.products.herramientas.generador-de-nombres-de-empresa" class="nav-link link-internal">Generador de nombres de empresa</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/crear-logo" target="_top" data-linkid="guides.navigation.products.herramientas.logo-creator" class="nav-link link-internal">Logo Creator</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/crear-favicon" target="_top" data-linkid="guides.navigation.products.herramientas.favicon-generator" class="nav-link link-internal">Favicon Generator</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/whois-domain" target="_top" data-linkid="guides.navigation.products.herramientas.whois-lookup" class="nav-link link-internal">Whois Lookup</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/analisis-web" target="_top" data-linkid="guides.navigation.products.herramientas.analisis-web" class="nav-link link-internal">Análisis Web</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/seo-check" target="_top" data-linkid="guides.navigation.products.herramientas.analisis-seo" class="nav-link link-internal">Análisis SEO</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/ssl-checker" target="_top" data-linkid="guides.navigation.products.herramientas.ssl-checker" class="nav-link link-internal">SSL Checker</a></li><li class="nav-item"><a href="https://www.ionos.mx/tools/direccion-ip" target="_top" data-linkid="guides.navigation.products.herramientas.comprobar-direccion-ip" class="nav-link link-internal">Comprobar dirección IP</a></li></ul></li></ul></div></div><button class="navbar-toggler border-0 collapsed" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbar-main" aria-controls="navbar-main" aria-labelledby="navbar-main"><span class="navbar-toggler-icon"></span></button><div class="offcanvas offcanvas-top brand-header-bg brand-header-color" data-bs-hideresize="true" tabindex="-1" id="navbar-main" aria-labelledby="navbar-main"><div class="offcanvas-header"><span class="offcanvas-title h5 brand-header-color" id="offcanvas-label-navigation-main">Menú principal</span><button type="button" class="btn-close brand-header-color navbar-toggler" data-bs-dismiss="offcanvas" aria-label="Close"></button></div><div class="offcanvas-body pt-0 position-relative align-items-center"><div class="row"><div class="col-12 col-sm-6 align-self-center order-1 px-3 py-1"><form id="search-navigation" class="search-form input-group input-group-sm w-auto" role="search" action="https://www.ionos.mx/digitalguide/buscar/" method="POST" autocomplete="off"><span class="input-group-text rounded-start-5 border-0 px-0 brand-header-search-bg"><button class="btn btn-sm brand-header-search-bg brand-header-muted-color" type="submit" id="offcanvas-search" data-linkid="guides.module.search.btn"><svg width="16" height="16"><use xlink:href="#icon-search"></use></svg><span class="visually-hidden">Buscar</span></button></span><input class="form-control rounded-end-5 border-0 ps-1 brand-header-search-bg brand-header-muted-color" type="text" name="search" onkeyup="javascript:localStorage.setItem('searchTerm', cleanupSearchString(this.value))" placeholder="Buscar" autocomplete="off" aria-label="Buscar" aria-describedby="navbar-search" spellcheck="false" ></form></div><div class="col-12 col-sm-6 align-self-center order-3 order-sm-2 px-3"><button class="btn btn-sm btn-cta px-3" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbar-products" aria-controls="navbar-products" aria-labelledby="navbar-products">Productos IONOS</button></div><div class="col-12 order-2 order-sm-3"><ul class="nav"><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/paginas-web/" target="_top" data-linkid="guides.navigation.main.paginas-web" title="Páginas web" class="nav-link link-internal">Páginas web</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/paginas-web/creacion-de-paginas-web/" target="_top" data-linkid="guides.navigation.main.paginas-web.creacion-de-paginas-web" title="Creación de páginas web" class="nav-link link-internal">Creación de páginas web</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/paginas-web/diseno-web/" target="_top" data-linkid="guides.navigation.main.paginas-web.diseno-web" title="Diseño web" class="nav-link link-internal">Diseño web</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/" target="_top" data-linkid="guides.navigation.main.paginas-web.desarrollo-web" title="Desarrollo web" class="nav-link link-internal">Desarrollo web</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/paginas-web/derecho-digital/" target="_top" data-linkid="guides.navigation.main.paginas-web.derecho-digital" title="Derecho digital" class="nav-link link-internal">Derecho digital</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/hosting/" target="_top" data-linkid="guides.navigation.main.hosting" title="Hosting" class="nav-link link-internal">Hosting</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/hosting/cms/" target="_top" data-linkid="guides.navigation.main.hosting.cms" title="CMS" class="nav-link link-internal">CMS</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/hosting/blogs/" target="_top" data-linkid="guides.navigation.main.hosting.blogs" title="Blogs" class="nav-link link-internal">Blogs</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/hosting/cuestiones-tecnicas/" target="_top" data-linkid="guides.navigation.main.hosting.cuestiones-tecnicas" title="Cuestiones técnicas" class="nav-link link-internal">Cuestiones técnicas</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/servidores/" target="_top" data-linkid="guides.navigation.main.servidores" title="Servidores" class="nav-link active link-internal">Servidores</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/servidores/know-how/" target="_top" data-linkid="guides.navigation.main.servidores.know-how" title="Know How" class="nav-link link-internal">Know How</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/servidores/configuracion/" target="_top" data-linkid="guides.navigation.main.servidores.configuracion" title="Configuración" class="nav-link active link-internal">Configuración</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/servidores/seguridad/" target="_top" data-linkid="guides.navigation.main.servidores.seguridad" title="Seguridad" class="nav-link link-internal">Seguridad</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/servidores/herramientas/" target="_top" data-linkid="guides.navigation.main.servidores.herramientas" title="Herramientas" class="nav-link link-internal">Herramientas</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/dominios/" target="_top" data-linkid="guides.navigation.main.dominios" title="Dominios" class="nav-link link-internal">Dominios</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/dominios/extensiones-de-dominio/" target="_top" data-linkid="guides.navigation.main.dominios.extensiones-de-dominio" title="Extensiones de dominio" class="nav-link link-internal">Extensiones de dominio</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/dominios/gestion-de-dominios/" target="_top" data-linkid="guides.navigation.main.dominios.gestion-de-dominios" title="Gestión de dominios" class="nav-link link-internal">Gestión de dominios</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/dominios/noticias-sobre-dominos/" target="_top" data-linkid="guides.navigation.main.dominios.noticias-sobre-dominos" title="Noticias sobre dominos" class="nav-link link-internal">Noticias sobre dominos</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/dominios/consejos-sobre-dominios/" target="_top" data-linkid="guides.navigation.main.dominios.consejos-sobre-dominios" title="Consejos sobre dominios" class="nav-link link-internal">Consejos sobre dominios</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/online-marketing/" target="_top" data-linkid="guides.navigation.main.online-marketing" title="Online Marketing" class="nav-link link-internal">Online Marketing</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/online-marketing/vender-en-internet/" target="_top" data-linkid="guides.navigation.main.online-marketing.vender-en-internet" title="Vender en Internet" class="nav-link link-internal">Vender en Internet</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/online-marketing/marketing-para-motores-de-busqueda/" target="_top" data-linkid="guides.navigation.main.online-marketing.marketing-para-motores-de-busqueda" title="Marketing para motores de búsqueda" class="nav-link link-internal">Marketing para motores de búsqueda</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/online-marketing/redes-sociales/" target="_top" data-linkid="guides.navigation.main.online-marketing.redes-sociales" title="Redes sociales" class="nav-link link-internal">Redes sociales</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/online-marketing/analisis-web/" target="_top" data-linkid="guides.navigation.main.online-marketing.analisis-web" title="Análisis web" class="nav-link link-internal">Análisis web</a></li></ul></li><li class="nav-item col-12 col-sm-6 col-lg-4 col-xxl-2 px-1 my-2"><a href="https://www.ionos.mx/digitalguide/correo-electronico/" target="_top" data-linkid="guides.navigation.main.correo-electronico" title="Correo electrónico" class="nav-link link-internal">Correo electrónico</a><ul class="nav flex-column mt-2 pt-2 border-top brand-header-border-color"><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/correo-electronico/e-mail-marketing/" target="_top" data-linkid="guides.navigation.main.correo-electronico.e-mail-marketing" title="E-mail marketing" class="nav-link link-internal">E-mail marketing</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/correo-electronico/seguridad-correo-electronico/" target="_top" data-linkid="guides.navigation.main.correo-electronico.seguridad-correo-electronico" title="Seguridad correo electrónico" class="nav-link link-internal">Seguridad correo electrónico</a></li><li class="nav-item"><a href="https://www.ionos.mx/digitalguide/correo-electronico/cuestiones-tecnicas/" target="_top" data-linkid="guides.navigation.main.correo-electronico.cuestiones-tecnicas" title="Cuestiones técnicas" class="nav-link link-internal">Cuestiones técnicas</a></li></ul></li></ul></div></div></div></div></div></nav> <article> <div class="bg-transparent bg-md-brand-gray-100"> <nav aria-label="breadcrumb" class="d-none d-md-flex pt-2 pt-lg-5 container-fluid container-sm contain-style"> <script type="application/ld+json">{"@context": "http://schema.org","@type": "BreadcrumbList","itemListElement": [{"@type":"ListItem","position":1,"name":"IONOS","item":"https:\/\/www.ionos.mx"},{"@type":"ListItem","position":2,"name":"Digital Guide","item":"https:\/\/www.ionos.mx\/digitalguide\/"},{"@type":"ListItem","position":3,"name":"Servidores","item":"https:\/\/www.ionos.mx\/digitalguide\/servidores\/"},{"@type":"ListItem","position":4,"name":"Configuración","item":"https:\/\/www.ionos.mx\/digitalguide\/servidores\/configuracion\/"},{"@type":"ListItem","position":5,"name":"Instalación de Nextcloud con Docker"}]}</script> <ol class="breadcrumb m-0"> <li class="breadcrumb-item m-0 p-0"><a class="text-decoration-none link-internal" href="https://www.ionos.mx" title="IONOS" data-linkid="guides.navigation.breadcrumb.ionos" target="_top">IONOS</a></li> <li class="breadcrumb-item m-0 p-0"><svg width="16" height="16" class="mx-1 brand-breadcrumb-icon-color"><use xlink:href="#icon-breadcrumb-divider"/></svg><a data-linkid="guides.navigation.breadcrumb.digital-guide" class="text-decoration-none link-internal" title="Digital Guide" href="https://www.ionos.mx/digitalguide/" target="_top">Digital Guide</a></li> <li class="breadcrumb-item m-0 p-0"><svg width="16" height="16" class="mx-1 brand-breadcrumb-icon-color"><use xlink:href="#icon-breadcrumb-divider"/></svg><a data-linkid="guides.navigation.breadcrumb.servidores" class="text-decoration-none link-internal" title="Servidores" href="https://www.ionos.mx/digitalguide/servidores/" target="_top">Servidores</a></li> <li class="breadcrumb-item m-0 p-0"><svg width="16" height="16" class="mx-1 brand-breadcrumb-icon-color"><use xlink:href="#icon-breadcrumb-divider"/></svg><a data-linkid="guides.navigation.breadcrumb.configuracion" class="text-decoration-none link-internal" title="Configuración" href="https://www.ionos.mx/digitalguide/servidores/configuracion/" target="_top">Configuración</a></li> <li class="breadcrumb-item active m-0 p-0" aria-current="page"><svg width="16" height="16" class="mx-1 brand-breadcrumb-icon-color"><use xlink:href="#icon-breadcrumb-divider"/></svg>Instalación de Nextcloud con Docker</li> </ol> </nav> <div class="container-fluid container-sm py-2 pb-md-5 py-lg-5 contain-style position-relative overflow-hidden"> <div class="row contain-style gap-2"> <div class="col d-flex flex-column contain-style gap-2 justify-content-around order-lg-last"> <h1 class="m-0 order-lg-2">Instalación de Nextcloud con Docker</h1> <ul class="nav flex-row justify-content-between align-items-center my-0 gap-2 order-lg-last contain-style"><li class="my-0 d-flex flex-nowrap align-items-center position-relative"><img class="img-fluid brand-btn-bg rounded-circle me-2 border border-1 brand-btn-border-color overflow-hidden d-none d-sm-block" title="Equipo editorial de IONOS" alt="Equipo editorial de IONOS" src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Icons/logo-icon-nlement-48px-and-smaller.svg" width="48" height="48" /><span class="d-block"><span class="d-block">Equipo editorial de IONOS</span><span class=" d-flex fs-sm align-items-center gap-1"><svg width="16" height="16"><use xlink:href="#icon-calendar-event"></use></svg><time datetime="2023-03-01">1.3.2023</time></span></span></li><li class="my-0"><ul class="nav flex-row"><li><a data-linkid="guides.article.share.facebook" target="_blank" title="Compartir Facebook" href="https://www.facebook.com/sharer/sharer.php?u=https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/" class="btn btn-lg btn-skeleton p-1 rounded-circle lh-1 facebook link-external" rel="noopener noreferrer"><svg width="16" height="16"><use xlink:href="#facebook-logo"/></svg><span class="visually-hidden">Compartir Facebook</span></a></li><li class="mx-1"><a data-linkid="guides.article.share.twitter" target="_blank" title="Compartir Twitter" href="https://twitter.com/intent/tweet?source=https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/&amp;text=Instalaci%C3%B3n%20de%20Nextcloud%20con%20Docker&amp;hashtags=DigitalGuide&amp;url=https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/" class="btn btn-lg btn-skeleton p-1 rounded-circle lh-1 twitter-x link-external" rel="noopener noreferrer"><svg width="16" height="16"><use xlink:href="#twitter-logo"/></svg><span class="visually-hidden">Compartir Twitter</span></a></li><li><a data-linkid="guides.article.share.linkedin" target="_blank" title="Compartir LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-de-nextcloud-con-docker/" class="btn btn-lg btn-skeleton p-1 rounded-circle lh-1 linkedin link-external" rel="noopener noreferrer"><svg width="16" height="16"><use xlink:href="#linkedin-logo"/></svg><span class="visually-hidden">Compartir LinkedIn</span></a></li></ul></li></ul> <aside class="tags d-none order-lg-first d-lg-flex flex-wrap gap-2 align-items-center contain-style"> <ul class="nav d-flex flex-wrap gap-2 z-1"><li><a data-linkid="guides.article.tags.tutoriales" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/tutoriales/" target="_top">Tutoriales</a></li><li><a data-linkid="guides.article.tags.docker" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/docker/" target="_top">Docker</a></li><li><a data-linkid="guides.article.tags.nextcloud" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/nextcloud/" target="_top">Nextcloud</a></li></ul> </aside> </div> <div class="col-12 col-lg-6 d-none d-md-block mt-2 mt-lg-0" style="display: none"> <figure class="image position-relative overflow-hidden align-center visual-img contain-style my-0 w-100 h-100"> <picture><source media="(min-width: 1680px)" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_1531be22fc.webp"/><source media="(min-width: 1400px)" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_6333d86f6c.webp"/><source media="(min-width: 1200px)" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_adff4a69c6.webp"/><source media="(min-width: 922px)" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_89d8f6110c.webp"/><source media="(min-width: 768px)" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/6/1/csm_mysql-t_668649cffc.webp"/><img src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMSAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idHJhbnNwYXJlbnQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgo8L3N2Zz4K" width="1200" height="630" title="Instalación de Nextcloud con Docker" alt="Instalación de Nextcloud con Docker" class="img-fluid d-block mx-auto img-format-landscape w-100 h-100 object-fit-cover rounded-4 border border-1 border-brand-gray-100" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/mysql-t.jpg"/></picture> </figure> </div> </div> </div> </div> <div class="container-fluid container-sm"> <div class="row py-2 py-lg-5 contain-style position-relative gap-4 flex-xl-nowrap"> <section class="content col-12 col-xl-6 col-xxxl-7 contain-style order-2 position-relative overflow-hidden mw-xl-content-area"> <div id="c449847" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p><a href="https://www.ionos.mx/digitalguide/servidores/herramientas/que-es-nextcloud/" target="_top" data-linkid="guides.content.link.int.nextcloud" class="link-internal" title="¿Qué es Nextcloud?" data-guides-target-uid="25556">Nextcloud</a> se ha establecido como una solución en la nube de código abierto. El software también incluye, además de los clientes para sistemas operativos de escritorio y móviles, un componente de servidor. A continuación, descubre cómo se puede instalar un Nextcloud Server en un entorno Docker.</p> </div> </div> </div> <div id="c334851" class="mx-auto guides_cta_images" data-ctype="guides_cta_images"> <div class="position-relative my-4 rounded-4 p-4 layout-0 overflow-hidden"><div class="row d-flex flex-wrap align-items-bottom"><div class="col-12" style="z-index: 1"><div class="d-block mt-0 mx-0 mb-3 h3 headline"><div class="d-block mx-0 mt-0 mb-1 h5 preline"> Free Cloud Server Trial </div> Prueba el servidor cloud gratis </div></div><div class="col-12 col-sm"><p>Con el saldo inicial de cada tarifa puedes usar el servidor cloud de IONOS durante 1 mes de forma gratuita (o hasta que se agote el saldo) y disfrutar de la combinación perfecta de rendimiento y seguridad.</p></div><div class="col-12 col-sm-4 d-flex align-items-center justify-content-start justify-content-sm-end"><button data-linkid="" type="submit" class="btn btn-cta stretched-link mb-sm-1 mt-3 mt-sm-0" onclick="globalSBSitecat('event121');window.open('https://www.ionos.mx/cloud/free-cloud-server','_top')">Probar ahora</button></div></div></div> </div> <div id="c449850" class="textmedia" data-ctype="textmedia"> <h2> Instalar Nextcloud en Docker </h2> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Nextcloud es una <strong>solución en la nube de código abierto</strong> que nació como una bifurcación del proyecto ownCloud. Su gama de funciones se asemeja a la de otras soluciones propietarias en la nube, como Microsoft 365 o Google Workspace. Nextcloud sincroniza datos como calendarios y contactos entre personas y dispositivos. Además de la sincronización de archivos obligatoria, tiene otras funciones orientadas a la colaboración y comunicación interna del equipo. Nextcloud también sirve de base para la “Bundescloud” de la Administración Federal Alemana, que está en funcionamiento desde 2020.</p><p>Como es habitual en las soluciones en la nube similares, Nextcloud consta tanto de una <strong>sección dedicada a servidores como de una dedicada a los clientes para sistemas operativos de ordenadores y móviles</strong>. Nextcloud Server gestiona los datos y se comunica con los clientes, aunque también proporciona una interfaz web independiente del cliente.</p> </div> </div> </div> <div id="c449851" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Descubre cómo <strong>instalar un Nextcloud Server en Ubuntu Linux</strong>. Es decir, una instalación en una estructura en la nube, para lo que se usa Docker Compose. También es posible instalar el servidor en un hardware propio e incluso instalar <a href="https://www.ionos.mx/digitalguide/servidores/configuracion/raspberry-pi-nextcloud/" target="_top" title="Raspberry Pi Nextcloud" data-linkid="guides.content.link.int.nextcloud-en-una-raspberry-pi" class="link-internal">Nextcloud en una Raspberry Pi</a>, por ejemplo.</p> </div> </div> </div> <div id="c449852" class="textmedia my-4 position-relative d-flex flex-column rounded-4 p-3 border brand-box-alt-bg brand-box-alt-border-color brand-box-alt-color" data-ctype="textmedia"> <div class="h2 has-icon"><svg width="16" height="16"><use xlink:href="#icon-lightbulb"></use></svg> Consejo </div> <div class="ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Nextcloud y ownCloud tienen muchos puntos en común. En el artículo sobre ownCloud vs. Nextcloud puedes encontrar las diferencias entre ambos.</p> </div> </div> </div> <div id="c449853" class="textmedia" data-ctype="textmedia"> <h3> Arquitectura de Nextcloud en Docker </h3> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>En primer lugar, descubre qué <strong>componentes tiene un Nextcloud Server con Docker</strong> y cómo se conectan estos entre sí. Además del software de Nextcloud propiamente dicho se utilizan otros tres servicios de contenedores. Para poder aprovisionar a la red de contenedores y poder controlarla como una sola unidad se utiliza una <a href="https://www.ionos.mx/digitalguide/servidores/know-how/docker-tools-el-ecosistema-docker-de-cerca/" target="_top" title="Docker tools: el ecosistema Docker de cerca" data-linkid="guides.content.link.int.docker-tool" class="link-internal">Docker tool</a> llamada Compose. A continuación, se presenta una lista con los distintos servicios que se utilizan:</p> </div> </div> </div> <div id="c449854" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol><li><strong>Nginx Reverse Proxy</strong>: se utiliza para poder acceder a Nextcloud mediante conexiones HTTPS encriptadas</li><li><strong>Let’s Encrypt</strong>: sirve para configurar automáticamente los certificados SSL</li><li><strong>MariaDB</strong>: se utiliza para almacenar los datos generados por el servidor mientras Nextcloud está en uso</li><li><strong>Nextcloud Server</strong>: es el que proporciona la verdadera funcionalidad de Nextcloud; se comunica con los clientes de Nextcloud y lleva a cabo el hosting de la interfaz web</li></ol> </div> </div> </div> <div id="c449855" class="textmedia" data-ctype="textmedia"> <h3> Preparar la instalación del Nextcloud Server </h3> </div> <div id="c449856" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>En un nuevo sistema operativo de Linux Ubuntu hay que <strong>instalar Docker Engine y Docker Compose </strong>primero. Docker Engine proporciona el núcleo de las funciones de contenedores, mientras que Docker Compose permite la gestión de conjuntos de contenedores relacionados. Si ya tienes instalado Docker Engine y Docker Compose, puedes saltarte esta sección.</p> </div> </div> </div> <div id="c449857" class="textmedia" data-ctype="textmedia"> <h4> Instalar Docker Engine en Ubuntu </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>En esta sección puedes aprender a <strong>instalar Docker Engine en Ubuntu Linux</strong>. Para ello se siguen las instrucciones de instalación oficiales. Para realizar la instalación en otras distribuciones de Linux se pueden encontrar <a href="https://docs.docker.com/engine/install/ubuntu/" target="_blank" title="Install Docker Engine on Ubuntu - Docker Documentation" rel="noreferrer noopener noreferrer" data-linkid="guides.content.link.ext.instrucciones-al-respecto" class="link-external">instrucciones al respecto</a> en la web de Docker. A continuación, se presentan los pasos para instalar Docker Engine:</p><ol> <li>Elimina cualquier instalación de Docker ya existente:</li> </ol> </div> </div> </div> <div id="c449858" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt-get remove docker docker-engine docker.io containerd runc</code></pre></div> </div> <div id="c449859" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Actualiza el instalador a la versión más reciente:</li> </ol> </div> </div> </div> <div id="c449860" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt-get update</code></pre></div> </div> <div id="c449861" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="3"> <li>Prepara los repositorios:</li> </ol> </div> </div> </div> <div id="c449862" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release</code></pre></div> </div> <div id="c449863" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="4"> <li>Añade la clave GPG oficial de Docker:</li> </ol> </div> </div> </div> <div id="c449864" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</code></pre></div> </div> <div id="c449865" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="5"> <li>Configura un repositorio estable de Docker:</li> </ol> </div> </div> </div> <div id="c449866" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">echo \ &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null</code></pre></div> </div> <div id="c449867" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="6"> <li>Actualiza los repositorios a la versión más reciente:</li> </ol> </div> </div> </div> <div id="c449868" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt-get update</code></pre></div> </div> <div id="c449869" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="7"> <li>Instala Docker Engine junto a sus componentes dependientes:</li> </ol> </div> </div> </div> <div id="c449870" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt-get install docker-ce docker-ce-cli containerd.io</code></pre></div> </div> <div id="c449871" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="8"> <li>Por último, pero no por ello menos importante, ejecuta el contenedor “Hello World” a modo de prueba.</li> </ol><p>Si se ha instalado Docker Engine correctamente, el contenedor se ejecutará y emitirá el mensaje correspondiente.</p> </div> </div> </div> <div id="c449872" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo docker run hello-world</code></pre></div> </div> <div id="c449873" class="textmedia" data-ctype="textmedia"> <h4> Instalar Docker Compose en Ubuntu </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>A continuación, procede a la <strong>instalación de</strong> <strong>Docker Compose</strong>. El proceso de instalación es más sencillo y menos voluminoso que el del Docker Engine. En concreto, estos son los pasos que seguir:</p><ol> <li>Activa el repositorio Universe de Ubuntu:</li> </ol> </div> </div> </div> <div id="c449874" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo add-apt-repository universe</code></pre></div> </div> <div id="c449875" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Actualiza la gestión de paquetes a la versión más reciente:</li> </ol> </div> </div> </div> <div id="c449876" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt update</code></pre></div> </div> <div id="c449877" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="3"> <li>Instala Docker Compose:</li> </ol> </div> </div> </div> <div id="c449878" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt install docker-compose</code></pre></div> </div> <div id="c449879" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="4"> <li>Compueba que Docker Compose se ha instalado correctamente:</li> </ol> </div> </div> </div> <div id="c449880" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">docker-compose --version</code></pre></div> </div> <div id="c449881" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Si te muestra el número de la versión de tu Docker Compose, sabes que se ha instalado correctamente.</p> </div> </div> </div> <div id="c449882" class="textmedia" data-ctype="textmedia"> <h3> Llevar a cabo la instalación del Nextcloud Server </h3> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Una vez instalados Docker Engine y Docker Compose, se comienza con la instalación de Nextcloud propiamente dicha. Para ello, hay que configurar individualmente cada <strong>contenedor Docker para que preste su servicio designado</strong>. Para configurar los volúmenes y redes de Docker al igual que los contenedores necesarios se utilizan dos archivos de configuración:</p> </div> </div> </div> <div id="c449883" class="table" data-ctype="table"> <div class="table-responsive"> <table class="table"> <thead> <tr> <th> Archivo </th> <th> Explicación </th> </tr> </thead> <tbody> <tr> <td> docker-compose.yaml </td> <td data-label="Explicación"> Instrucciones de Docker Compose en formato YAML para generar la estructura de la aplicación multicontenedor </td> </tr> <tr> <td> .env </td> <td data-label="Explicación"> Archivo de texto con variables del entorno; se define una variable por línea </td> </tr> </tbody> </table> </div> </div> <div id="c449884" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Docker Compose se utiliza para gestionar aplicaciones multicontenedor. <strong>Las entradas realizadas en Docker Compose</strong> se usan para definir cómo se construye la aplicación y cómo interactúan los componentes individuales entre sí. Las entradas de Docker Compose describen los diferentes servicios, elementos y configuraciones de Docker y están escritas en el lenguaje YAML (“Yet Another Markup Language”). Descubre cómo el archivo <em>docker-compose.yaml</em> paso a paso.</p><p>Además de <em>docker-compose.yaml</em>, se necesita también otro archivo. Este contiene las <strong>variables de entorno</strong> que se integran en las entradas de Docker Compose. Las variables de entorno y sus valores se almacenan por defecto en un archivo <em>.env</em> en la carpeta del proyecto. El archivo <em>.env</em> no figura en el sistema de control de versiones para proteger datos sensibles, como las contraseñas, de ser divulgados accidentalmente.</p><p>Al utilizar un archivo <em>.env</em> resulta muy fácil definir <strong>diferentes configuraciones para distintos entornos de aplicación</strong>. Por ejemplo, para utilizar diferentes configuraciones en una página web en vivo y en un sitio de staging, basta con cambiar el archivo <em>.env</em> correspondiente.</p> </div> </div> </div> <div id="c449885" class="textmedia" data-ctype="textmedia"> <h4> Crear las estructuras necesarias para Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Para <strong>empezar a instalar Nextcloud Server</strong> se necesita un cierto número de estructuras. Estas estructuras se crean con los siguientes pasos:</p><ol> <li><strong>Crea la carpeta del proyecto</strong>. Crea la carpeta <em>nextcloud-docker</em> en el directorio principal del usuario:</li> </ol> </div> </div> </div> <div id="c449886" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">mkdir ~/nextcloud-docker/</code></pre></div> </div> <div id="c449887" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li><strong>Crea archivos</strong>. Crea los archivos <em>docker-compose.yaml</em> y <em>.env</em> en la carpeta del proyecto:</li> </ol> </div> </div> </div> <div id="c449888" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">touch ~/nextcloud-docker/docker-compose.yaml touch ~/nextcloud-docker/.env</code></pre></div> </div> <div id="c449889" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="3"> <li><strong>Crea una red Docker</strong>. Utiliza el comando <em>docker</em> para crear una nueva red. Los cuatro contenedores se comunican dentro de esa misma red.</li> </ol> </div> </div> </div> <div id="c449890" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">docker network create nextcloud_network</code></pre></div> </div> <div id="c449891" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Una vez creadas estas estructuras hay que continuar con la instalación de Nextcloud Server.</p> </div> </div> </div> <div id="c449892" class="textmedia" data-ctype="textmedia"> <h4> Configurar el proxy inverso para Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Comienza con la instalación de Nextcloud Server <strong>configurando el proxy inverso</strong>. Para ello se utiliza Nginx. Dado que se está construyendo la aplicación a partir de contenedores, la mayor parte del proceso de instalación tiene lugar en el archivo <em>docker-compose.yaml</em>. Describe en detalle cómo editar este archivo. Sigue los siguientes pasos para la instalación:</p><ol> <li>Abre el archivo <em>docker-compose.yaml</em> para editarlo.</li> </ol><p>El comando que se muestra a continuación abre el archivo, que todavía está vacío, en el editor “Nano”:</p> </div> </div> </div> <div id="c449893" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449894" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Inserta el siguiente bloque de código en Nano y guarda el archivo.</li> </ol><p>Para cerrar el archivo, utiliza la combinación de teclas [Ctrl] + [X] o [Ctrl] + [X]. Responde a la pregunta de guardar el archivo con “y” que significa “yes”/“sí”. Con la tecla [Enter] confirma que quieres mantener el nombre del archivo actual.</p> <p>Como alternativa, puedes dejar el editor abierto y utilizar la combinación de teclas [Ctrl] + [O] (“Write out”, es decir, “escribir en el archivo”) para escribir el texto del editor en el archivo.</p> </div> </div> </div> <div id="c449895" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">version: &#039;3&#039; services: proxy: image: jwilder/nginx-proxy:alpine labels: - &quot;com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true&quot; container_name: nextcloud-proxy networks: - nextcloud_network ports: - 80:80 - 443:443 volumes: - ./proxy/conf.d:/etc/nginx/conf.d:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - ./proxy/certs:/etc/nginx/certs:ro - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/tmp/docker.sock:ro restart: unless-stopped</code></pre></div> </div> <div id="c449896" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>¿Qué significa cada una de las entradas individuales? Primero, dices a Docker Compose que cree un nuevo servicio llamado <em>proxy</em> usando <strong>una imagen Nginx de Alpine Linux</strong>. También hay que especificar que el proxy inverso debe comunicarse con los otros servicios a través de la red Docker llamada <em>nextcloud_network</em>.</p> <p>Asigna los puertos 80 y 443 estándares de HTTP y HTTPS respectivamente entre el sistema host y el contenedor. De esta manera, las <strong>conexiones que llegan se enrutan a través del proxy</strong>. Como último paso en la configuración, crea varios volúmenes Docker y especifica que el proxy inverso se debe reiniciar automáticamente si no ha sido detenido explícitamente.</p> </div> </div> </div> <div id="c449897" class="textmedia" data-ctype="textmedia"> <h4> Configurar el servicio Let&#039;s Encrypt para Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Continúa entonces con la instalación de Let's Encrypt. Este servicio permite la <strong>comunicación cifrada</strong> con Nextcloud Server mediante HTTPS.</p><ol> <li>Abre el archivo <em>docker-compose.yaml</em> para editarlo:</li> </ol> </div> </div> </div> <div id="c449898" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449899" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Añade otro service block.</li> </ol><p>Procede como se ha descrito en el apartado anterior y presta atención a la sangría: El inicio del bloque que comienza con <em>letsencrypt:</em> debe estar a la misma altura que <em>proxy:</em>. Esto también se debe aplicar a futuros service blocks que quieras añadir.</p> </div> </div> </div> <div id="c449900" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: nextcloud-letsencrypt depends_on: - proxy networks: - nextcloud_network volumes: - ./proxy/certs:/etc/nginx/certs:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped</code></pre></div> </div> <div id="c449901" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>De nuevo, define un nuevo servicio bajo el nombre <em>letsencrypt</em>, basado en el contenedor <em>letsencrypt-nginx-proxy-companion</em>. Especifica que el servicio <em>letsencrypt</em> <strong>depende del servicio de proxy inverso </strong>y se comunica en la misma red Docker. Además, define los volúmenes Docker necesarios para el intercambio de datos. También establece que este servicio nuevo se debe reiniciar automáticamente si no se ha detenido de forma explícita.</p> </div> </div> </div> <div id="c449902" class="textmedia my-4 position-relative d-flex flex-column rounded-4 p-3 border brand-box-alt-bg brand-box-alt-border-color brand-box-alt-color" data-ctype="textmedia"> <div class="h2 has-icon"><svg width="16" height="16"><use xlink:href="#icon-lightbulb"></use></svg> Consejo </div> <div class="ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>¿Quieres que tu web tenga un cifrado profesional? Adquiere tu propio <a href="https://www.ionos.mx/seguridad/certificado-ssl" target="_top" class="link-external-blank link-internal" title="Comprar un certificado SSL con IONOS" data-linkid="guides.content.link.int.certificado-ssl-barato">certificado SSL barato</a> con IONOS.</p> </div> </div> </div> <div id="c449903" class="textmedia" data-ctype="textmedia"> <h4> Configurar el servicio MariaDB para Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Con la configuración del proxy inverso y Let's Encrypt has completado la mitad de la instalación. Ahora hay que continuar con la base de datos MariaDB, necesaria para <strong>gestionar los datos que se acumulan durante el uso de Nextcloud</strong>. El verdadero almacenamiento se hace a través de un volumen Docker externo al contenedor.</p><ol> <li>Abre el archivo <em>docker-compose.yaml</em> para editarlo:</li> </ol> </div> </div> </div> <div id="c449904" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449905" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Inserta otro service block:</li> </ol> </div> </div> </div> <div id="c449906" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">db: image: mariadb container_name: nextcloud-mariadb networks: - nextcloud_network volumes: - db:/var/lib/mysql - /etc/localtime:/etc/localtime:ro environment: - MYSQL_ROOT_PASSWORD - MYSQL_PASSWORD - MYSQL_DATABASE - MYSQL_USER restart: unless-stopped</code></pre></div> </div> <div id="c449907" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>A estas alturas, la mayoría de los ajustes ya te deberían resultar familiares. Define un servicio <em>db</em> a partir de la imagen Docker con el nombre de <em>mariadb</em>. A continuación, define la red <em>nextcloud_network</em>­, que ya se utiliza para el resto de servicios, y un <strong>volumen Docker para almacenar los datos</strong>.</p><p>La novedad en este bloque que estás configurando es el uso de variables de entorno. En la sección del entorno especifica los <strong>nombres de las variables de entorno necesarias para MariaDB</strong>. Una vez ejecutado Docker Compose, los valores reales se pueden ver en el archivo <em>.env</em>.</p> </div> </div> </div> <div id="c449908" class="textmedia" data-ctype="textmedia"> <h4> Configurar el contenedor Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Ha llegado el momento: empieza con la instalación del software del Nextcloud Server propiamente dicho.</p><ol> <li>Abre el archivo <em>docker-compose.yaml</em> para editarlo:</li> </ol> </div> </div> </div> <div id="c449909" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449910" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Introduce otro service block:</li> </ol> </div> </div> </div> <div id="c449911" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">app: image: nextcloud:latest container_name: nextcloud-app networks: - nextcloud_network depends_on: - letsencrypt - proxy - db volumes: - nextcloud:/var/www/html - ./app/config:/var/www/html/config - ./app/custom_apps:/var/www/html/custom_apps - ./app/data:/var/www/html/data - ./app/themes:/var/www/html/themes - /etc/localtime:/etc/localtime:ro environment: - VIRTUAL_HOST - LETSENCRYPT_HOST - LETSENCRYPT_EMAIL restart: unless-stopped</code></pre></div> </div> <div id="c449912" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>A partir de la imagen Docker denominada <em>nextcloud</em> crea un servicio llamado <em>app</em>, que se comunica mediante la red, ya conocida, con el nombre de <em>nextcloud_network</em>. Para <strong>asegurar que el contenedor nextcloud sea el último en iniciarse</strong>, configura los demás servicios como dependientes de este. Además, define los volúmenes Docker y las variables de entorno necesarios.</p> </div> </div> </div> <div id="c449913" class="textmedia" data-ctype="textmedia"> <h4> Terminar la configuración de Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Para completar la configuración del Nextcloud Server son necesarias algunas entradas más en el archivo <em>docker-compose.yaml</em>. Además, crea el archivo <em>.env</em> y complétalo con los valores adecuados.</p><ol> <li>Abre el archivo <em>docker-compose.yaml</em> para editarlo:</li> </ol> </div> </div> </div> <div id="c449914" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449915" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Inserta los siguientes bloques.</li> </ol><p>En este caso no se trata de service blocks, por lo que la sangría debe estar a la misma altura que <em>services:</em>.</p> </div> </div> </div> <div id="c449916" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">volumes: nextcloud: db: networks: nextcloud_network:</code></pre></div> </div> <div id="c449917" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="3"> <li>Abre el archivo <em>.env</em> vacío para editarlo:</li> </ol> </div> </div> </div> <div id="c449918" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">nano ~/nextcloud-docker/.env</code></pre></div> </div> <div id="c449919" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="4"> <li>Escribe tanto las variables de entorno como los valores del archivo <em>.env</em>:</li> </ol><p>Copia el siguiente código a la ventana del editor y sustituye los <em>&lt;marcadores de posición&gt;</em> por los valores deseados antes de guardar.</p> </div> </div> </div> <div id="c449920" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none"># MariaDB MYSQL_ROOT_PASSWORD=toor MYSQL_PASSWORD=mysql MYSQL_DATABASE=nextcloud MYSQL_USER=nextcloud # Nextcloud VIRTUAL_HOST=&lt;tu.dominio&gt;&lt;/tu.dominio&gt; LETSENCRYPT_HOST=&lt;tu.dominio&gt;&lt;/tu.dominio&gt; LETSENCRYPT_EMAIL=&lt;tu@email&gt;&lt;/tu@email&gt;</code></pre></div> </div> <div id="c449921" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="5"> <li>Después de guardar, muestra el contenido del archivo <em>.env</em> para comprobar que los valores se han introducido correctamente:</li> </ol> </div> </div> </div> <div id="c449922" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">cat ~/nextcloud-docker/.env</code></pre></div> </div> <div id="c449923" class="textmedia" data-ctype="textmedia"> <h4> Configuración completa de Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Antes de <strong>pasar a Docker Compose</strong> <strong>la configuración recientemente redactada </strong>y utilizarla para crear e iniciar los contenedores, comprueba que todo lo necesario está en su sitio.</p><ol> <li>Accede a la configuración actual:</li> </ol> </div> </div> </div> <div id="c449924" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">cat ~/nextcloud-docker/docker-compose.yaml</code></pre></div> </div> <div id="c449925" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <ol start="2"> <li>Compara con la plantilla. La configuración que se obtiene debe coincidir con el siguiente código:</li> </ol> </div> </div> </div> <div id="c449926" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">version: &#039;3&#039; services: proxy: image: jwilder/nginx-proxy:alpine labels: - &quot;com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true&quot; container_name: nextcloud-proxy networks: - nextcloud_network ports: - 80:80 - 443:443 volumes: - ./proxy/conf.d:/etc/nginx/conf.d:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - ./proxy/certs:/etc/nginx/certs:ro - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/tmp/docker.sock:ro restart: unless-stopped letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: nextcloud-letsencrypt depends_on: - proxy networks: - nextcloud_network volumes: - ./proxy/certs:/etc/nginx/certs:rw - ./proxy/vhost.d:/etc/nginx/vhost.d:rw - ./proxy/html:/usr/share/nginx/html:rw - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped db: image: mariadb container_name: nextcloud-mariadb networks: - nextcloud_network volumes: - db:/var/lib/mysql - /etc/localtime:/etc/localtime:ro environment: - MYSQL_ROOT_PASSWORD - MYSQL_PASSWORD - MYSQL_DATABASE - MYSQL_USER restart: unless-stopped app: image: nextcloud:latest container_name: nextcloud-app networks: - nextcloud_network depends_on: - letsencrypt - proxy - db volumes: - nextcloud:/var/www/html - ./app/config:/var/www/html/config - ./app/custom_apps:/var/www/html/custom_apps - ./app/data:/var/www/html/data - ./app/themes:/var/www/html/themes - /etc/localtime:/etc/localtime:ro environment: - VIRTUAL_HOST - LETSENCRYPT_HOST - LETSENCRYPT_EMAIL restart: unless-stopped volumes: nextcloud: db: networks: nextcloud_network:</code></pre></div> </div> <div id="c449927" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Si tu versión del archivo YAML coincide con la que acabas de leer, puedes proceder al último paso.</p> </div> </div> </div> <div id="c449928" class="textmedia" data-ctype="textmedia"> <h4> Completar la instalación Nextcloud Server </h4> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Para conseguir que <strong>Nextcloud Server se convierta en una aplicación multicontenedor</strong> a partir de las entradas realizadas en Docker Compose, debes ejecutar el siguiente comando en la línea de comandos:</p> </div> </div> </div> <div id="c449929" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">sudo apt update &amp;&amp; sudo apt upgrade</code></pre></div> </div> <div id="c449930" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>A continuación, comprueba si los <strong>contenedores se han iniciado</strong>:</p> </div> </div> </div> <div id="c449931" class="guides_codesnippet" data-ctype="guides_codesnippet"> <div class="prism-container position-relative my-4"><pre class="rounded-4 m-0 p-2 pt-3 brand-box-bg border brand-box-border-color"><code class="language-none">docker ps -a</code></pre></div> </div> <div id="c449932" class="textmedia" data-ctype="textmedia"> <div class="text-row ce-textpic ce-center ce-above"> <div class="ce-bodytext"> <p>Para ello, la <strong>lista de contenedores en ejecución</strong> que se muestra debe contener los cuatro contenedores definidos en el archivo <em>docker-compose.yaml</em>.</p> </div> </div> </div> <span class="d-block h4 text-center mb-4">¿Le ha resultado útil este artículo?</span> <div id="ratingContainer3652" class="mb-4"> <div class="d-flex justify-content-center align-items-bottom gap-2 recordrating-container"><button class="btn btn-default btn-lg position-relative lh-1 m-0 p-2" data-linkid="guides.rating.5" data-url="https://www.ionos.mx/digitalguide/api/rating.json?tx_recordrating_recordrating%5Baction%5D=update&tx_recordrating_recordrating%5Bcontroller%5D=RecordRating&tx_recordrating_recordrating%5Brating%5D=5&tx_recordrating_recordrating%5BrecordUid%5D=3652&tx_recordrating_recordrating%5BsysLanguageUid%5D=6&tx_recordrating_recordrating%5Btable%5D=pages" onclick="getThisDataUrl.call(this, event, 'ratingContainer3652')"><svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M34 22.5C34 27.123 32.668 34 29 34H17.5C15.621 34 13.556 33.099 12 32.235V14.794L13.34 13.956C14.083 12.395 15 10.044 15 9V3.5C15 2.671 15.671 2 16.5 2H19.5C19.947 2 20.371 2.2 20.656 2.544C21.197 3.198 23.893 6.582 23.893 9C23.893 10.293 23.565 12.46 23.3 14H30.5C30.898 14 31.279 14.158 31.561 14.439C31.811 14.689 34 17.036 34 22.5ZM10 30.988V16C10 14.895 9.105 14 8 14H4C2.895 14 2 14.895 2 16V31C2 32.105 2.895 33 4 33H8C9.105 33 10 32.105 10 31V30.988Z" fill="currentColor"/></svg></button><button type="button" class="btn btn-default btn-lg position-relative lh-1 m-0 p-2" data-bs-toggle="modal" data-bs-target="#recordrating3652"><svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.561 21.561C31.28 21.842 30.898 22 30.5 22H23.3C23.565 23.54 23.893 25.707 23.893 27C23.893 29.417 21.197 32.802 20.656 33.456C20.371 33.801 19.947 34 19.5 34H16.5C15.671 34 15 33.329 15 32.5V27C15 25.956 14.083 23.604 13.34 22.044L12 21.206V3.765C13.556 2.9 15.621 2 17.5 2H29C32.668 2 34 8.877 34 13.5C34 18.963 31.811 21.311 31.561 21.561ZM10 5C10 3.895 9.105 3 8 3H4C2.895 3 2 3.895 2 5V20C2 21.105 2.895 22 4 22H8C9.105 22 10 21.105 10 20V5Z" fill="currentColor"/></svg></button><div class="modal fade" id="recordrating3652" tabindex="-1" aria-label="¿Le ha resultado útil este artículo?" aria-hidden="true"><div class="modal-dialog modal-dialog-centered"><div class="modal-content"><div class="modal-body"><span class="d-block h4 text-center m-0">¿Por qué no?</span><ul class="nav flex-column"><li class="nav-item"><button class="nav-link" data-linkid="guides.rating.1.1" data-url="https://www.ionos.mx/digitalguide/api/rating.json?tx_recordrating_recordrating%5Baction%5D=update&tx_recordrating_recordrating%5Bcontroller%5D=RecordRating&tx_recordrating_recordrating%5Brating%5D=1&tx_recordrating_recordrating%5Breason%5D=1&tx_recordrating_recordrating%5BrecordUid%5D=3652&tx_recordrating_recordrating%5BsysLanguageUid%5D=6&tx_recordrating_recordrating%5Btable%5D=pages" onclick="getThisDataUrl.call(this, event, 'ratingContainer3652')" data-bs-dismiss="modal" aria-label="Close"><svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.561 21.561C31.28 21.842 30.898 22 30.5 22H23.3C23.565 23.54 23.893 25.707 23.893 27C23.893 29.417 21.197 32.802 20.656 33.456C20.371 33.801 19.947 34 19.5 34H16.5C15.671 34 15 33.329 15 32.5V27C15 25.956 14.083 23.604 13.34 22.044L12 21.206V3.765C13.556 2.9 15.621 2 17.5 2H29C32.668 2 34 8.877 34 13.5C34 18.963 31.811 21.311 31.561 21.561ZM10 5C10 3.895 9.105 3 8 3H4C2.895 3 2 3.895 2 5V20C2 21.105 2.895 22 4 22H8C9.105 22 10 21.105 10 20V5Z" fill="currentColor"/></svg> Anticuado </button></li><li class="nav-item"><button class="nav-link" data-linkid="guides.rating.1.2" data-url="https://www.ionos.mx/digitalguide/api/rating.json?tx_recordrating_recordrating%5Baction%5D=update&tx_recordrating_recordrating%5Bcontroller%5D=RecordRating&tx_recordrating_recordrating%5Brating%5D=1&tx_recordrating_recordrating%5Breason%5D=2&tx_recordrating_recordrating%5BrecordUid%5D=3652&tx_recordrating_recordrating%5BsysLanguageUid%5D=6&tx_recordrating_recordrating%5Btable%5D=pages" onclick="getThisDataUrl.call(this, event, 'ratingContainer3652')" data-bs-dismiss="modal" aria-label="Close"><svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.561 21.561C31.28 21.842 30.898 22 30.5 22H23.3C23.565 23.54 23.893 25.707 23.893 27C23.893 29.417 21.197 32.802 20.656 33.456C20.371 33.801 19.947 34 19.5 34H16.5C15.671 34 15 33.329 15 32.5V27C15 25.956 14.083 23.604 13.34 22.044L12 21.206V3.765C13.556 2.9 15.621 2 17.5 2H29C32.668 2 34 8.877 34 13.5C34 18.963 31.811 21.311 31.561 21.561ZM10 5C10 3.895 9.105 3 8 3H4C2.895 3 2 3.895 2 5V20C2 21.105 2.895 22 4 22H8C9.105 22 10 21.105 10 20V5Z" fill="currentColor"/></svg> Incorrecto </button></li><li class="nav-item"><button class="nav-link" data-linkid="guides.rating.1.3" data-url="https://www.ionos.mx/digitalguide/api/rating.json?tx_recordrating_recordrating%5Baction%5D=update&tx_recordrating_recordrating%5Bcontroller%5D=RecordRating&tx_recordrating_recordrating%5Brating%5D=1&tx_recordrating_recordrating%5Breason%5D=3&tx_recordrating_recordrating%5BrecordUid%5D=3652&tx_recordrating_recordrating%5BsysLanguageUid%5D=6&tx_recordrating_recordrating%5Btable%5D=pages" onclick="getThisDataUrl.call(this, event, 'ratingContainer3652')" data-bs-dismiss="modal" aria-label="Close"><svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.561 21.561C31.28 21.842 30.898 22 30.5 22H23.3C23.565 23.54 23.893 25.707 23.893 27C23.893 29.417 21.197 32.802 20.656 33.456C20.371 33.801 19.947 34 19.5 34H16.5C15.671 34 15 33.329 15 32.5V27C15 25.956 14.083 23.604 13.34 22.044L12 21.206V3.765C13.556 2.9 15.621 2 17.5 2H29C32.668 2 34 8.877 34 13.5C34 18.963 31.811 21.311 31.561 21.561ZM10 5C10 3.895 9.105 3 8 3H4C2.895 3 2 3.895 2 5V20C2 21.105 2.895 22 4 22H8C9.105 22 10 21.105 10 20V5Z" fill="currentColor"/></svg> Incomprensible </button></li></ul></div></div></div></div></div> </div> <aside class="tags d-flex flex-wrap d-lg-none gap-2 align-items-center my-4 py-2 border-top border-bottom"> <span class="d-block">Etiquetas relacionadas</span> <ul class="nav d-flex flex-wrap gap-2 z-1"><li><a data-linkid="guides.article.tags.tutoriales" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/tutoriales/" target="_top">Tutoriales</a></li><li><a data-linkid="guides.article.tags.docker" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/docker/" target="_top">Docker</a></li><li><a data-linkid="guides.article.tags.nextcloud" class="btn btn-sm btn-default z-1 link-internal" href="https://www.ionos.mx/digitalguide/tags/nextcloud/" target="_top">Nextcloud</a></li></ul> </aside> </section> <section id="articleinfo" class="col-12 col-xl contain-style order-1 position-relative d-flex flex-column gap-4"> <div class="sticky-xl-top"><!-- TOC start --><div class="accordion"><div class="accordion-item bg-xl-transparent rounded-xl-0"><h3 class="accordion-header" id="navigationTocCollapseHeading"><button class="accordion-button collapsed d-xl-block pe-xl-none px-xl-0 bg-xl-transparent border-radius-0" type="button" data-bs-toggle="collapse" data-bs-target="#navigationTocCollapse" aria-expanded="false" aria-controls="navigationTocCollapse"><svg class="d-inline-block me-1" width="20" height="20"><use xlink:href="#icon-list-ul" /></svg> Índice </button></h3><div id="navigationTocCollapse" class="accordion-collapse collapse d-xl-block" aria-labelledby="navigationTocCollapseHeading"><div class="accordion-body px-xl-0"><nav id="navigationToc" class="max-vh-75 overflow-y-auto"><ul class="nav"><li class="nav-item w-100"><a class="nav-link toc-item-link" href="#c449850" id="toc-link-449850">Instalar Nextcloud en Docker</a></li></ul></nav></div></div></div></div><!-- TOC end --></div> </section> <aside class="sidebar col-12 col-xl contain-style order-3 position-relative mw-sm-50 mx-auto"> <div id="c188863" class="mx-auto sticky-xl-top guides_box_sidebar" data-ctype="guides_box_sidebar"> <div class="mx-auto w-auto position-relative d-flex flex-column rounded-4 brand-box-bg p-3 sidebar-sticky-box shadow"><h3 class="h4">Productos asociados</h3><div class="row d-flex flex-wrap align-items-center mb-2 sidebar-sticky-box-inhalt"><div class="col-4"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Product_Icons/cloud-server.svg" width="168" height="128" title="" alt="cloud-server.svg" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape " data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Product_Icons/cloud-server.svg"></div><div class="col"><div class="sidebar-sticky-box-text"> Servidores Cloud </div></div></div><button class="btn btn-cta btn-block stretched-link" type="button" onclick="globalSBSitecat('event114');window.open('https://www.ionos.mx/cloud/cloud-server','_top')" role="button" data-linkid="guides.guides-box-sidebar.sticky-box.btn.servidores-cloud.ver-planes"> Ver planes </button></div> </div> <div id="c566405" class="menu_pages" data-ctype="menu_pages"> <div class="row g-grid mx-auto"><div class="h3"> Artículos Favoritos </div><article class="col-12 position-relative d-flex flex-column rounded-4 brand-box-bg p-2"><div class="h6 position-static"><a data-linkid="guides.menu-pages.como-crear-un-correo-con-dominio-propio" class="stretched-link text-decoration-none brand-box-color link-internal" title="Cómo crear un correo con dominio propio" href="https://www.ionos.mx/digitalguide/correo-electronico/cuestiones-tecnicas/ventajas-del-correo-electronico-personalizado/" target="_top"> Cómo crear un correo con dominio propio </a></div><p>¿Cómo crear un correo con dominio propio? Transmite profesionalidad y favorece la&hellip;</p><div class="read-more p-0 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></article><article class="col-12 position-relative d-flex flex-column rounded-4 brand-box-bg p-2"><div class="h6 position-static"><a data-linkid="guides.menu-pages.como-comprar-un-dominio" class="stretched-link text-decoration-none brand-box-color link-internal" title="¿Cómo comprar un dominio?" href="https://www.ionos.mx/digitalguide/dominios/consejos-sobre-dominios/como-comprar-un-dominio/" target="_top"> ¿Cómo comprar un dominio? </a></div><p>¿Cómo registrar un dominio web con los dominios de primer y segundo nivel deseados? ¿Cómo&hellip;</p><div class="read-more p-0 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></article><article class="col-12 position-relative d-flex flex-column rounded-4 brand-box-bg p-2"><div class="h6 position-static"><a data-linkid="guides.menu-pages.tipos-de-dominios-los-conoces" class="stretched-link text-decoration-none brand-box-color link-internal" title="Tipos de dominios: ¿los conoces?" href="https://www.ionos.mx/digitalguide/dominios/extensiones-de-dominio/tipos-de-dominios/" target="_top"> Tipos de dominios: ¿los conoces? </a></div><p>¿Qué tipos de dominios hay en Internet? ¿Qué diferencia hay entre los dominios de primer&hellip;</p><div class="read-more p-0 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></article><article class="col-12 position-relative d-flex flex-column rounded-4 brand-box-bg p-2"><div class="h6 position-static"><a data-linkid="guides.menu-pages.prompt-engineering-definicion-ejemplos-y-buenas-practicas" class="stretched-link text-decoration-none brand-box-color link-internal" title="Prompt engineering: definición, ejemplos y buenas prácticas" href="https://www.ionos.mx/digitalguide/paginas-web/creacion-de-paginas-web/prompt-engineering/" target="_top"> Prompt engineering: definición, ejemplos y buenas prácticas </a></div><p>¿Qué es prompt engineering?, ¿cómo obtener mejores resultados de ChatGPT y otras&hellip;</p><div class="read-more p-0 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></article><article class="col-12 position-relative d-flex flex-column rounded-4 brand-box-bg p-2"><div class="h6 position-static"><a data-linkid="guides.menu-pages.7-tipos-de-paginas-web-que-sitio-web-necesitas" class="stretched-link text-decoration-none brand-box-color link-internal" title="7 tipos de páginas web: ¿qué sitio web necesitas?" href="https://www.ionos.mx/digitalguide/paginas-web/creacion-de-paginas-web/tipos-de-paginas-web/" target="_top"> 7 tipos de páginas web: ¿qué sitio web necesitas? </a></div><p>Dentro de los tipos de página web, elegir un formato adecuado es fundamental para el éxito&hellip;</p><div class="read-more p-0 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></article></div> </div> </aside> </div> <aside class="row my-2 my-lg-5 g-grid"> <h3 class="col-12"> Artículos similares </h3> <div class="col col-12 col-md-6 col-lg-4"> <article class="card brand-card-bg rounded-4 overflow-hidden contain-style h-100 w-100" id="article-3474"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/container-alternatives-t.jpg" width="1200" height="630" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_2b4d88ab72.webp 456w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_396084914e.webp 430w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_3067cc7e3d.webp 370w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_cf0f66f54b.webp 310w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_ae0eebc6bc.webp 348w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_0b23d4c47b.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_5388ad0fde.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_0384bdbb85.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/1/csm_container-alternatives-t_dda0cb8133.webp 304w" sizes="(min-width: 1680px) 456px,(min-width: 1400px) 430px,(min-width: 1200px) 370px,(min-width: 992px) 310px,(min-width: 768px) 348px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="Comandos de Docker" alt="Comandos de Docker" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape card-img-top h-auto rounded-top-4" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/container-alternatives-t.jpg"><span class="media-credits d-flex position-absolute top-0 end-0 start-unset bottom-unset w-auto h-auto fs-sm"><span class="media-artist">MAGNIFIER</span><span class="media-source">shutterstock</span></span><div class="card-body d-flex flex-column p-3"><h3 class="h4 card-title mt-0 mb-3 position-static"><a data-linkid="guides.article.teaser.comandos-de-docker" class="stretched-link brand-card-color text-decoration-none link-internal" title="Comandos de Docker" href="https://www.ionos.mx/digitalguide/servidores/know-how/comandos-de-docker/" target="_top"> Comandos de Docker </a></h3><p class="card-text brand-card-color mt-auto mb-0">Los comandos de Docker se utilizan para controlar Docker Engine en el host local. Una vez introducidos en la línea de comandos, se traducen en llamadas API para el daemon de Docker. En cuanto a su función, los comandos de Docker pueden utilizarse para gestionar imágenes,…</p><div class="mt-2 minh-5 d-flex flex-nowrap overflow-hidden"><ul class="nav d-flex flex-nowrap card-tags-fade-end w-100 gap-2"><li><span class="btn btn-sm btn-default">Tutoriales</span></li><li><span class="btn btn-sm btn-default">Docker</span></li></ul></div><div class="read-more px-0 pb-0 pt-1 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></div></article> </div> <div class="col col-12 col-md-6 col-lg-4"> <article class="card brand-card-bg rounded-4 overflow-hidden contain-style h-100 w-100" id="article-1571"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/docker-tutorial-t.jpg" width="1200" height="630" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_f3b9264e3a.webp 456w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_2776bcde31.webp 430w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_caae2ed7ea.webp 370w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_b6f66026a8.webp 310w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_8732d9ba61.webp 348w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_9271092cef.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_2a1a80380d.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_66cc6528c2.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/5/csm_docker-tutorial-t_0dec93b6e6.webp 304w" sizes="(min-width: 1680px) 456px,(min-width: 1400px) 430px,(min-width: 1200px) 370px,(min-width: 992px) 310px,(min-width: 768px) 348px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="Tutorial de Docker: introducción a la popular plataforma de contenedores" alt="Tutorial de Docker: introducción a la popular plataforma de contenedores" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape card-img-top h-auto rounded-top-4" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/docker-tutorial-t.jpg"><div class="card-body d-flex flex-column p-3"><h3 class="h4 card-title mt-0 mb-3 position-static"><a data-linkid="guides.article.teaser.tutorial-docker-instalacion-y-primeros-pasos" class="stretched-link brand-card-color text-decoration-none link-internal" title="Tutorial de Docker: introducción a la popular plataforma de contenedores" href="https://www.ionos.mx/digitalguide/servidores/configuracion/tutorial-docker-instalacion-y-primeros-pasos/" target="_top"> Tutorial de Docker: introducción a la popular plataforma de contenedores </a></h3><p class="card-text brand-card-color mt-auto mb-0">La comunidad open source está entusiasmada con la plataforma de contenedores de código abierto Docker. Como alternativa a la virtualización de hardware basada en máquinas virtuales, Docker ha dado el salto a la creación de contenedores de software también fuera del universo de…</p><div class="mt-2 minh-5 d-flex flex-nowrap overflow-hidden"><ul class="nav d-flex flex-nowrap card-tags-fade-end w-100 gap-2"><li><span class="btn btn-sm btn-default">Tutoriales</span></li><li><span class="btn btn-sm btn-default">Docker</span></li></ul></div><div class="read-more px-0 pb-0 pt-1 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></div></article> </div> <div class="col col-12 col-md-6 col-lg-4"> <article class="card brand-card-bg rounded-4 overflow-hidden contain-style h-100 w-100" id="article-25425"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/behavior-driven-development-t.jpg" width="1200" height="630" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_3b150e8af9.webp 456w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_5be9f584ba.webp 430w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_f3c658ded2.webp 370w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_28ddeb0a90.webp 310w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_fb7670a289.webp 348w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_aba6626fc9.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_2a74a15ed2.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_094b89c068.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/8/4/csm_behavior-driven-development-t_bc1da074ee.webp 304w" sizes="(min-width: 1680px) 456px,(min-width: 1400px) 430px,(min-width: 1200px) 370px,(min-width: 992px) 310px,(min-width: 768px) 348px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="Cómo instalar Docker en Ubuntu 22.04: guía paso por paso" alt="Cómo instalar Docker en Ubuntu 22.04: guía paso por paso" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape card-img-top h-auto rounded-top-4" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/behavior-driven-development-t.jpg"><div class="card-body d-flex flex-column p-3"><h3 class="h4 card-title mt-0 mb-3 position-static"><a data-linkid="guides.article.teaser.docker-ubuntu-22-04" class="stretched-link brand-card-color text-decoration-none link-internal" title="Cómo instalar Docker en Ubuntu 22.04: guía paso por paso" href="https://www.ionos.mx/digitalguide/servidores/configuracion/docker-ubuntu-2204/" target="_top"> Cómo instalar Docker en Ubuntu 22.04: guía paso por paso </a></h3><p class="card-text brand-card-color mt-auto mb-0">Para los desarrolladores que trabajan a menudo con sistemas de Linux, Docker es una herramienta fundamental, por lo que no es ninguna sorpresa que instalarlo en este sistema operativo lleve solo unos minutos. En este artículo, te enseñamos a instalar Docker en Ubuntu 22.04 e…</p><div class="mt-2 minh-5 d-flex flex-nowrap overflow-hidden"><ul class="nav d-flex flex-nowrap card-tags-fade-end w-100 gap-2"><li><span class="btn btn-sm btn-default">Linux</span></li><li><span class="btn btn-sm btn-default">Tutoriales</span></li><li><span class="btn btn-sm btn-default">Docker</span></li></ul></div><div class="read-more px-0 pb-0 pt-1 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></div></article> </div> <div class="col col-12 col-md-6 col-lg-4"> <article class="card brand-card-bg rounded-4 overflow-hidden contain-style h-100 w-100" id="article-3748"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/progressive-web-app-t.jpg" width="1200" height="630" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_2a7791953c.webp 456w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_e1b33ed414.webp 430w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_525c070371.webp 370w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_d008fb74c6.webp 310w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_b29a19c1df.webp 348w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_34ff74fa81.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_51bd8115b6.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_a4e305443c.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/b/csm_progressive-web-app-t_b583decfbe.webp 304w" sizes="(min-width: 1680px) 456px,(min-width: 1400px) 430px,(min-width: 1200px) 370px,(min-width: 992px) 310px,(min-width: 768px) 348px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="Las mejores Nextcloud apps para escritorio y dispositivos móviles" alt="Las mejores Nextcloud apps para escritorio y dispositivos móviles" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape card-img-top h-auto rounded-top-4" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/progressive-web-app-t.jpg"><div class="card-body d-flex flex-column p-3"><h3 class="h4 card-title mt-0 mb-3 position-static"><a data-linkid="guides.article.teaser.nextcloud-apps" class="stretched-link brand-card-color text-decoration-none link-internal" title="Las mejores Nextcloud apps para escritorio y dispositivos móviles" href="https://www.ionos.mx/digitalguide/servidores/herramientas/nextcloud-apps/" target="_top"> Las mejores Nextcloud apps para escritorio y dispositivos móviles </a></h3><p class="card-text brand-card-color mt-auto mb-0">Nextcloud ofrece una gran cantidad de apps para el escritorio y el smartphone, desde la herramienta de comunicación Nextcloud Talk, pasando por el bloc de notas online Nextcloud Notes, hasta el libro móvil de ingredientes y recetas. Aquí te mostramos cuáles son hoy en día las…</p><div class="mt-2 minh-5 d-flex flex-nowrap overflow-hidden"><ul class="nav d-flex flex-nowrap card-tags-fade-end w-100 gap-2"><li><span class="btn btn-sm btn-default">Nube</span></li><li><span class="btn btn-sm btn-default">Nextcloud</span></li></ul></div><div class="read-more px-0 pb-0 pt-1 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></div></article> </div> <div class="col col-12 col-md-6 col-lg-4"> <article class="card brand-card-bg rounded-4 overflow-hidden contain-style h-100 w-100" id="article-26787"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/nextcloud-ubuntu-t.jpg" width="1200" height="630" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_a22c0f8ada.webp 456w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_4b49d8d485.webp 430w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_d23ec32a99.webp 370w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_e5ddecde9c.webp 310w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_f4a4113b92.webp 348w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_c50f87a369.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_7a106a6ea1.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_d57547baff.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/8/csm_nextcloud-ubuntu-t_516c2f996f.webp 304w" sizes="(min-width: 1680px) 456px,(min-width: 1400px) 430px,(min-width: 1200px) 370px,(min-width: 992px) 310px,(min-width: 768px) 348px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="Como utilizar el Nextcloud client" alt="Como utilizar el Nextcloud client" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape card-img-top h-auto rounded-top-4" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Teaser/nextcloud-ubuntu-t.jpg"><div class="card-body d-flex flex-column p-3"><h3 class="h4 card-title mt-0 mb-3 position-static"><a data-linkid="guides.article.teaser.nextcloud-client" class="stretched-link brand-card-color text-decoration-none link-internal" title="Como utilizar el Nextcloud client" href="https://www.ionos.mx/digitalguide/servidores/herramientas/nextcloud-client/" target="_top"> Como utilizar el Nextcloud client </a></h3><p class="card-text brand-card-color mt-auto mb-0">El cliente de escritorio y el cliente móvil de Nextcloud te permiten acceder a los archivos y directorios de un servidor Nextcloud, independientemente del dispositivo y la ubicación. La instalación del Nextcloud client solo lleva unos minutos y te proporciona una mayor…</p><div class="mt-2 minh-5 d-flex flex-nowrap overflow-hidden"><ul class="nav d-flex flex-nowrap card-tags-fade-end w-100 gap-2"><li><span class="btn btn-sm btn-default">Glosario</span></li></ul></div><div class="read-more px-0 pb-0 pt-1 m-0 position-relative end-0 text-end lh-1 d-flex align-items-center justify-content-end"><span class="d-inline-block me-1">Leer más</span><svg width="16" height="16" class="icon-arrow-right"><use xlink:href="#icon-arrow-right"></use></svg></div></div></article> </div> </aside> </div> </article> <footer class="d-flex flex-wrap justify-content-center align-items-center brand-footer-bg brand-footer-color mt-2 mt-lg-5 py-6 py-lg-12 contain-style" data-bs-theme="dark"><div class="container-fluid container-sm"><div class="row pb-4 pb-lg-8"><div class="col-12 col-md-4 col-lg-3 d-flex flex-column order-last order-md-first pt-4 pt-md-0"><a href="https://www.ionos.mx" title="IONOS Inc." class="m-0 d-block link-internal" data-linkid="guides.logo.footer" target="_top"><svg class="d-inline-block m-0 brand-logo brand-footer-color"><use xlink:href="#ionos-logo" /></svg></a><span class="brand-footer-muted-color pt-2">Tu solución digital</span></div><div class="col-12 col-md-8 col-lg-9"><ul class="nav justify-content-start justify-content-md-end flex-column flex-md-row ms-n2 ms-md-0"><li class="nav-item"><a href="https://www.ionos.mx/empresa" target="_top" data-linkid="guides.navigation.footer.sobre-ionos" title="Sobre IONOS" class="nav-link link-internal"> Sobre IONOS </a></li><li class="nav-item"><a href="https://www.ionos.mx/newsroom/" target="_top" data-linkid="guides.navigation.footer.sala-de-prensa" title="Sala de prensa" class="nav-link link-internal"> Sala de prensa </a></li><li class="nav-item"><a href="https://www.ionos.mx/startupguide/" target="_top" data-linkid="guides.navigation.footer.startup-guide" title="Startup Guide" class="nav-link link-internal"> Startup Guide </a></li><li class="nav-item"><a href="https://www.ionos.mx/ayuda/" target="_top" data-linkid="guides.navigation.footer.centro-de-ayuda" title="Centro de ayuda" class="nav-link link-internal"> Centro de ayuda </a></li><li class="nav-item"><a href="https://www.ionos.mx/terms-gtc/terms-gtc/" target="_top" data-linkid="guides.navigation.footer.condiciones-generales" title="Condiciones Generales" class="nav-link link-internal"> Condiciones Generales </a></li><li class="nav-item"><a href="https://www.ionos.mx/terms-gtc/terms-privacy/" target="_top" data-linkid="guides.navigation.footer.politica-de-privacidad" title="Política de privacidad" class="nav-link link-internal"> Política de privacidad </a></li></ul></div></div><div class="row pt-4 pt-lg-8 border-top brand-footer-border-color align-items-center"><div class="copyright brand-footer-muted-color col-12 col-md-4 order-last order-md-first">© 2024 <a href="https://www.ionos.mx" title="IONOS Inc." data-linkid="guides.logo.footer" target="_top" class="link-internal">IONOS Inc.</a></div><div class="col-12 col-md-8"><ul class="nav justify-content-start justify-content-md-end flex-nowrap ms-n2 ms-md-0"><li class="nav-item"><a data-linkid="guides.module.channels-and-rss.rss" class="nav-link link-internal" title="RSS" target="_top" href="https://www.ionos.mx/digitalguide/servidores/configuracion/feed.rss"><svg class="d-inline-block" width="20" height="20"><use xlink:href="#icon-rss" /></svg></a></li><li class="nav-item"><a href="https://ionos.ly/IONOS_FB_MX" title="facebook" class="nav-link link-external" target="_blank" data-linkid="guides.module.channels-and-rss.facebook" rel="noopener noreferrer"><svg class="d-inline-block" width="24" height="24"><use xlink:href="#facebook-logo" /></svg></a></li><li class="nav-item"><a href="https://ionos.ly/IONOS_YT_MX" title="YouTube" class="nav-link link-external" target="_blank" data-linkid="guides.module.channels-and-rss.youtube" rel="noopener noreferrer"><svg class="d-inline-block" width="24" height="24"><use xlink:href="#youtube-logo" /></svg></a></li></ul></div></div></div></footer><div id="cookieinfo-container" class="show"><div class="cookieinfo container p-relative"><div class="row align-items-center"><div class="col"><div class="cookieinfo-text"> Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. <a href="https://www.ionos.mx/cookies" target="_top" class="link-internal"> Política de Cookies. </a></div></div><div class="col-auto"><button id="cookieinfo-close" class="chars px-20 py-12 c-pointer">OK</button></div></div></div></div><div class="modal fade exit-intent-ionos" id="exitIntent" data-bs-backdrop="static" tabindex="-1" aria-label="exit-intent-header" aria-modal="true" role="dialog"><div class="modal-dialog modal-dialog-centered modal-xl w-md-100 mw-md-90 mw-xl-75" style="max-width: 1000px !important"><div class="modal-content rounded-4 overflow-hidden"><div class="modal-body position-relative p-0"><div id="c514957" class="mx-auto guides_exit_intent_content" data-ctype="guides_exit_intent_content"><div class="row exit-intent-container has-image" id="exit-intent-2045-514957"><div class="exit-intent-area-content col-12 col-md"><div class="exit-intent-content p-4"><svg class="d-inline-block m-0 exit-intent-brand-logo exit-intent-ionos-logo mb-5"><use xlink:href="#ionos-logo" /></svg><div class="exit-intent-headline d-block mt-0 mx-0 mb-3 h3">Ofertas especiales<span class="exit-intent-subline d-block mt-3 mx-0 mb-0 h5">Ahorra y prepárate para impulsar tu negocio</span></div><div class="exit-intent-text"><p>Crea una página web, hazte con un servidor o realiza copias de seguridad para tus dispositivos con nuestros mejores productos.</p><button type="submit" class="btn btn-cta mt-2 stretched-link" onclick="globalSBSitecat('event121');window.open('https://www.ionos.mx/ofertas-especiales','_top')">Ver las ofertas</button></div></div></div><div class="exit-intent-area-stage col-12 col-md-5 d-none d-md-flex pt-4 ps-4"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/exit_intent_visuals/exit-intent-bg-male-offer-sign_desktop.png" width="725" height="700" srcset="https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_b97a6aa21c.webp 725w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_2b474a2d43.webp 554w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_b406e76138.webp 704w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_2cbf428a16.webp 524w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_b6fdc6d5ba.webp 396w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_11e39cea85.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/d/csm_exit-intent-bg-male-offer-sign_desktop_11e39cea85.webp 304w" sizes="(min-width: 1400px) 725px,(min-width: 1200px) 554px,(min-width: 768px) 704px,(min-width: 576px) 524px,(min-width: 412px) 396px,(min-width: 320px) 304px,(max-width:319px) 304px" title="" alt="exit-intent-bg-male-offer-sign_desktop.png" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape mw-100 ms-auto mt-auto me-0 mb-0" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/exit_intent_visuals/exit-intent-bg-male-offer-sign_desktop.png"></div><div class="exit-intent-area-stage col-8 mx-auto d-flex d-md-none pt-4"><img src="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/exit_intent_visuals/exit-intent-bg-male-offer-sign_mobile.png" width="400" height="325" srcset="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/exit_intent_visuals/exit-intent-bg-male-offer-sign_mobile.png 400w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/1/csm_exit-intent-bg-male-offer-sign_mobile_ce0c94982c.webp 304w,https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/1/csm_exit-intent-bg-male-offer-sign_mobile_ce0c94982c.webp 304w" sizes="(min-width: 412px) 400px,(min-width: 320px) 304px,(max-width:319px) 304px" title="" alt="exit-intent-bg-male-offer-sign_mobile.png" loading="lazy" class="img-fluid d-block mx-auto img-format-landscape mw-100 ms-auto mt-auto me-0 mb-0" data-originalfile="https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/exit_intent_visuals/exit-intent-bg-male-offer-sign_mobile.png"></div></div></div><button type="button" class="btn-close position-absolute top-0 end-0 me-2 mt-2" data-bs-dismiss="modal" aria-label="Close"></button></div></div></div></div><span id="top" class="d-block visually-hidden position-absolute top-0 end-0 start-0">Page top</span> <script src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/prism.1732271161.js"></script> <script src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/autoloader/prism-autoloader.1732271161.js"></script> <script src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/toolbar/prism-toolbar.1732271161.js"></script> <script src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/line-numbers/prism-line-numbers.1732271161.js"></script> <script src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.1732271161.js"></script> <script async="async" src="https://www.ionos.mx/digitalguide/_assets/7e35ab74f2a05357de057794d49a7804/JavaScript/LoadAndReplaceContent.1732271161.js"></script> <script async="async" src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/bootstrap/dist/js/bootstrap.bundle.min.1732271160.js"></script> <script async="async" src="https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/JavaScript/scrollProgressRelated.min.1732271160.js"></script> <script type="module"> function cleanupSearchString(string) { if (string) { return string.replaceAll(/[^_.\w\s\-\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]+/gu, ''); } return string; } function filterResults(searchTerm) { const results = document.querySelectorAll('#article-result-list .article-result'); if (!searchTerm || searchTerm.trim() === '') { results.forEach(result => { result.style.display = 'none'; }); return; } const searchWords = searchTerm.trim().toLowerCase().split(/\s+/).filter(word => word.length > 0); results.forEach(result => { const text = result.textContent.toLowerCase(); const foundAllWords = searchWords.every(word => text.includes(word)); result.style.display = foundAllWords ? 'block' : 'none'; }); // Update all search term inputs with the current search term document.querySelectorAll('.search-form input').forEach(input => { input.value = searchTerm; }); } function handleFormSubmit(event) { event.preventDefault(); const searchTerm = cleanupSearchString(event.target.querySelector('.search-form input').value); localStorage.setItem('searchTerm', searchTerm.trim()); filterResults(searchTerm); if (event.target.action !== window.location.href) { window.location.href = event.target.action; } } function setupSearchForms() { const searchForms = document.querySelectorAll('.search-form'); searchForms.forEach(form => { form.addEventListener('submit', handleFormSubmit); form.querySelectorAll('.search-form input').forEach(input => { const searchTerm = localStorage.getItem('searchTerm'); input.value = searchTerm ? searchTerm : ''; input.addEventListener('input', function() { filterResults(this.value.toLowerCase()); }); }); const searchTerm = localStorage.getItem('searchTerm'); if (searchTerm) { filterResults(searchTerm.toLowerCase()); } }); } window.cleanupSearchString = cleanupSearchString; window.filterResults = filterResults; window.handleFormSubmit = handleFormSubmit; window.setupSearchForms = setupSearchForms; setupSearchForms(); localStorage.setItem('searchTerm', ''); </script> <script> const contentElements = document.querySelectorAll('.content h2[id], .content h2[id] ~ *:not(h2[id])'); const sections = []; let currentSection = null; // Construct sections array contentElements.forEach((element) => { if (element.tagName === 'H2') { if (currentSection) { sections.push(currentSection); } currentSection = { id: element.id, title: element.textContent, content: [] }; } else if (currentSection) { currentSection.content.push(element); } }); if (currentSection) { sections.push(currentSection); } // Set the initial active index to 0 let activeIndex = 0; // Get the navigation links const tocLinks = document.querySelectorAll('#navigationToc a'); // Function to update the active link function updateActiveLink() { // Remove active class from all links tocLinks.forEach(link => { link.classList.remove('active'); }); // Add active class to the link corresponding to activeIndex const activeLink = document.querySelector(`#navigationToc a[href="#${sections[activeIndex].id}"]`); if (activeLink) { activeLink.classList.add('active'); } } // Call to set the initial active link updateActiveLink(); // Create an Intersection Observer const observer = new IntersectionObserver((entries) => { let maxArea = 0; // The maximum area of elements intersecting in the viewport let newActiveIndex = -1; entries.forEach(entry => { if (entry.isIntersecting) { const rect = entry.boundingClientRect; const area = rect.height * rect.width; // Calculate the area in the viewport // Determine the section with the largest area if (area > maxArea) { maxArea = area; newActiveIndex = sections.findIndex(section => section.id === entry.target.id); } } }); // If we found a new active index, update it if (newActiveIndex !== -1) { activeIndex = newActiveIndex; // Set the new active index updateActiveLink(); // Update the active link } }, { root: null, // Use the viewport as the container threshold: 0.25 // Trigger callback when 10% of the section is in view }); // Observe each section by creating an h2 element for each section in the navigation sections.forEach(section => { const sectionElement = document.getElementById(section.id); if (sectionElement) { observer.observe(sectionElement); } }); </script> <script> Prism.plugins.autoloader.languages_path = "https://www.ionos.mx/digitalguide/_assets/b76f27cb02ebc538ac6fbabcf1a88e7f/Vendor/prismjs/components/"; </script> <script> var cookieinfoContainer = document.querySelector('#cookieinfo-container'); var cookieinfoContainerButton = document.querySelector('#cookieinfo-close'); function getCookieByName(name) { function escape(s) { return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, '\\$1'); } var match = document.cookie.match(RegExp('(?:^|;\\s*)' + escape(name) + '=([^;]*)')); return match ? match[1] : null; } function setCookieByName(cookieName, cookieValue, cookieDurationInDays, cookieDomain, cookieDomainPath) { var now = new Date(); now.setTime(now.getTime() + +cookieDurationInDays * 24 * 60 * 60 * 1000); var expires = now.toUTCString(); var cookie = cookieName + '=' + cookieValue + ';expires=' + expires + ';domain=' + cookieDomain + ';path=' + cookieDomainPath + ';SameSite=lax'; document.cookie = cookie; } function checkCookieInfoContainer() { var cookieinfoContainerAccepted = getCookieByName('banner-cookieinfo'); if (cookieinfoContainerAccepted) { cookieinfoContainer.classList.remove('show'); } } function getCookieDomainAndPath() { var currentHostArray = window.location.host.split('.'); var domain = currentHostArray[currentHostArray.length - 2]; var tld = currentHostArray[currentHostArray.length - 1]; if (window.location.host.indexOf('.co.uk') !== -1) { domain = currentHostArray[currentHostArray.length - 3]; tld = currentHostArray[currentHostArray.length - 2] + '.' + currentHostArray[currentHostArray.length - 1]; } var cookieDomainPath = '/'; if (tld === 'com') { var href = window.location.href; if (href.indexOf('/pt-br/') !== -1) { cookieDomainPath = '/pt-br/'; } } var cookieDomain = '.' + domain + '.' + tld; return [cookieDomain, cookieDomainPath]; } var dismissAndSetCookie = function () { var cookieDomain = getCookieDomainAndPath()[0]; var cookieDomainPath = getCookieDomainAndPath()[1]; setCookieByName('banner-cookieinfo', '1', 30, cookieDomain, cookieDomainPath); checkCookieInfoContainer(); }; checkCookieInfoContainer(); cookieinfoContainerButton.addEventListener("click", dismissAndSetCookie); </script> <script type="module"> var exitIntentLocalStorageKey = 'guidesExitIntentShown'; var exitIntentIdentifier = 'exitIntent'; var privacyConsentSelector = '.privacy-consent--modal'; var isUserActive = false; var hasFiredExitIntent = false; // Detect user activity inside the viewport document.addEventListener('mousemove', function(event) { isUserActive = true; }); // Check for exit intent only after the first 5 seconds of page visit setTimeout(function() { // Monitor user interaction to trigger exit intent document.addEventListener('mouseleave', handleExitIntent); window.addEventListener('blur', handleExitIntent); }, 5000); // 5 seconds delay function handleExitIntent() { if (isUserActive && !hasFiredExitIntent && !isPrivacyConsentOpen() && !isOffcanvasOpen() && shouldDisplayExitIntent()) { showModal(); hasFiredExitIntent = true; } } function isOffcanvasOpen() { return document.querySelector('.offcanvas.show') !== null; } function isPrivacyConsentOpen() { return document.querySelector(privacyConsentSelector) !== null; } function shouldDisplayExitIntent() { var exitIntentShownTimestamp = localStorage.getItem(exitIntentLocalStorageKey); if (!exitIntentShownTimestamp) { return true; // Show the exit intent if it has not been shown before } else { var currentTime = new Date().getTime(); var thirtyDaysInMillis = 30 * 24 * 60 * 60 * 1000; return currentTime - parseInt(exitIntentShownTimestamp, 10) >= thirtyDaysInMillis; } } function updateExitIntentLocalStorage() { localStorage.setItem(exitIntentLocalStorageKey, new Date().getTime().toString()); } function showModal() { // Show the modal var myModal = new bootstrap.Modal(document.getElementById(exitIntentIdentifier)); myModal.show(); // Update the exit intent shown timestamp in Local Storage updateExitIntentLocalStorage(); } window.handleExitIntent = handleExitIntent; window.isOffcanvasOpen = isOffcanvasOpen; window.isPrivacyConsentOpen = isPrivacyConsentOpen; window.shouldDisplayExitIntent = shouldDisplayExitIntent; window.updateExitIntentLocalStorage = updateExitIntentLocalStorage; window.showModal = showModal; </script> <script>window.addEventListener('load', (event) => { window.addEventListener('resize', function() { if (window.innerWidth < 992) { const modals = Array.from(document.querySelectorAll('.modal.lightbox')); const modalInstances = modals.map(modal => bootstrap.Modal.getInstance(modal)); modalInstances.filter(Boolean).forEach(modalInstance => modalInstance.hide()); } }); let tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]'); let tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)); }); </script> <script> var globalSBSitecat = function (eventName){ if (typeof window.s === "object" && typeof window.s.t === 'function') { if (eventName) { if (s.events2) { if (s.events2.indexOf(eventName) === -1) { s.events2 + ',' + eventName; } } else { s.events2 = eventName; } s.t(s); console.info('globalSBSitecat: ' + eventName + ' sent'); } else { console.info('globalSBSitecat: eventName is missing'); } } }; var globalSBSitecatNPV = function (eventName){ if (typeof window.s === "object" && typeof window.s.t === 'function') { if (eventName) { if (s.events2) { if (s.events2.indexOf(eventName) === -1) { s.events2 + ',' + eventName; } } else { s.events2 = eventName; } s.tl(s); console.info('globalSBSitecatNPV: ' + eventName + ' sent'); } else { console.info('globalSBSitecat: eventName is missing'); } } }; var websiteSBSitecat = function () {globalSBSitecat('event114')}; </script> <script> var boxLinks = document.querySelectorAll('.content [class*="-box"] a, #content [class*="-box"] a, .content [class*="box-"] a, #content [class*="box-"] a') || {}; for (var i = 0, len = boxLinks.length; i < len; i++) { boxLinks[i].addEventListener('click', globalSBSitecatNPV('event115'), boxLinks[i].href, false); } var nonBoxLinks = document.querySelectorAll('*:not([class*="-box"]):not([class*="box-"]) a') || {}; for (var i = 0, len = boxLinks.length; i < len; i++) { nonBoxLinks[i].addEventListener('click', globalSBSitecatNPV('event116'), nonBoxLinks[i].href, false); } </script> <script type="module">document.addEventListener("DOMContentLoaded", function() { const tableResponsiveElements = document.querySelectorAll('.table-responsive'); function addListenerMulti(el, s, fn) { s.split(',').forEach(e => el.addEventListener(e, fn, false)); } function setupScrollButtons(table, scrollLeftButton, scrollRightButton) { const averageTdWidth = () => Array.from(table.querySelectorAll('td')).reduce((acc, td) => acc + td.offsetWidth, 0) / table.querySelectorAll('td').length; scrollLeftButton.addEventListener('click', function() { table.scrollLeft -= averageTdWidth(); // Scroll the average td width }); scrollRightButton.addEventListener('click', function() { table.scrollLeft += averageTdWidth(); // Scroll the average td width }); if (table.scrollLeft === 0) { scrollLeftButton.setAttribute('disabled', 'disabled'); } else { scrollLeftButton.removeAttribute('disabled'); } if (table.scrollLeft + table.clientWidth >= table.scrollWidth) { scrollRightButton.setAttribute('disabled', 'disabled'); } else { scrollRightButton.removeAttribute('disabled'); } addListenerMulti(table, "scroll", function() { if (table.scrollLeft === 0) { scrollLeftButton.setAttribute('disabled', 'disabled'); } else { scrollLeftButton.removeAttribute('disabled'); } if (table.scrollLeft + table.clientWidth >= table.scrollWidth) { scrollRightButton.setAttribute('disabled', 'disabled'); } else { scrollRightButton.removeAttribute('disabled'); } }) } tableResponsiveElements.forEach(function(tableResponsive) { if (tableResponsive.scrollWidth > tableResponsive.clientWidth) { const container = document.createElement('div'); container.classList.add('table-responsive-scroll-container'); const scrollButtonClass = 'table-responsive-scroll-button'; const scrollLeftButton = document.createElement('button'); scrollLeftButton.setAttribute('aria-label', 'Scroll Left'); scrollLeftButton.classList.add(scrollButtonClass, 'scroll-left'); const scrollRightButton = document.createElement('button'); scrollRightButton.setAttribute('aria-label', 'Scroll Right'); scrollRightButton.classList.add(scrollButtonClass, 'scroll-right'); setupScrollButtons(tableResponsive, scrollLeftButton, scrollRightButton); container.appendChild(scrollLeftButton); container.appendChild(scrollRightButton); const clonedTable = tableResponsive.cloneNode(true); container.appendChild(clonedTable); tableResponsive.parentNode.replaceChild(container, tableResponsive); // Replace original with container const clonedTableResponsive = container.querySelector('.table-responsive'); setupScrollButtons(clonedTableResponsive, scrollLeftButton, scrollRightButton); } }); }); </script> <svg style="display:none" id="guides-svgs"> <symbol id="ionos-logo" shape-rendering="geometricPrecision" viewBox="0 0 254.25 74.13"> <title>IONOS</title> <g fill="currentColor" transform="translate(-7.52 -5.46)"><path d="m242.51 79.58a18.12 18.12 0 0 1 -3.74-.38 19.37 19.37 0 0 1 -12.77-9.14l-.07-.13a5.75 5.75 0 0 1 2.07-7.58 5.52 5.52 0 0 1 2.85-.79 5.64 5.64 0 0 1 4.91 2.88l.19.32.6.81.8.81a7.84 7.84 0 0 0 3.65 1.77 8 8 0 0 0 6.3-1.44 7.63 7.63 0 0 0 3.19-5.71 7.86 7.86 0 0 0 -2.19-6.12s-18.44-19-18.84-19.53l-.91-1.35a18 18 0 0 1 -2.77-11.34 18.41 18.41 0 0 1 2.39-7.84l.8-1.4a17 17 0 0 1 5.57-5.06l.91-.65a18.54 18.54 0 0 1 25 7 5.51 5.51 0 0 1 .58 4.26 5.63 5.63 0 0 1 -2.67 3.46 5.36 5.36 0 0 1 -2.75.75 5.61 5.61 0 0 1 -4.88-2.87 7.35 7.35 0 0 0 -4.93-3.49 7.65 7.65 0 0 0 -6 1.35 7.3 7.3 0 0 0 -2.8 5.33 7.44 7.44 0 0 0 2 5.72l17.33 17.87a19.18 19.18 0 0 1 -13.85 32.49z"/><path d="m187.69 79.57a18.65 18.65 0 0 1 -18.63-18.63v-36.85a18.63 18.63 0 1 1 37.26 0v36.85a18.65 18.65 0 0 1 -18.63 18.63zm0-62.86a7.39 7.39 0 0 0 -7.38 7.38v36.85a7.3 7.3 0 0 0 7.38 7.38 7.39 7.39 0 0 0 7.38-7.38v-36.85a7.48 7.48 0 0 0 -7.38-7.38z"/><path d="m115.33 43.47v30.53a5.62 5.62 0 0 1 -11.24 0v-53.87zm30.35 21.46v-53.85a5.63 5.63 0 0 0 -11.25 0v30.5zm-30.88-56.28v-.11a5.86 5.86 0 0 0 -5.09-3 5.15 5.15 0 0 0 -1.13.12 5.49 5.49 0 0 0 -4.44 5.47v1.29l30.86 64.07a5.8 5.8 0 0 0 5 3.08 5.18 5.18 0 0 0 1.29-.16 5.52 5.52 0 0 0 4.39-5.41v-1.27s-30.05-62.37-30.88-64.08z"/><path d="m61.92 79.57a18.64 18.64 0 0 1 -18.63-18.63v-36.85a18.63 18.63 0 0 1 37.26 0v36.85a18.64 18.64 0 0 1 -18.63 18.63zm0-62.86a7.37 7.37 0 0 0 -7.38 7.38v36.85a7.38 7.38 0 1 0 14.76 0v-36.85a7.48 7.48 0 0 0 -7.38-7.38z"/><path d="m13.63 79.54a6.08 6.08 0 0 1 -6.11-6.18v-61.87a6.11 6.11 0 0 1 6.15-6 6 6 0 0 1 5.9 4.51 4 4 0 0 1 .1.43v.27a5.47 5.47 0 0 1 .08 1s0 61 0 61.7a6.1 6.1 0 0 1 -6.12 6.14z"/></g> </symbol> <symbol id="arsys-logo" shape-rendering="geometricPrecision" viewBox="0 0 1277 356"> <title>arsys</title> <path fill="currentColor" d="M365,139V289H299V149c0-29,5-53,14-72s23-34,39-45,35-19,57-24a308.4,308.4,0,0,1,68-8V55H461c-31,0-54,7-70,21C374,88,365,110,365,139ZM877,345q18-13.5,30-45L1013,0H972c-15,0-24,6-27,19L886,212,822,0H755l97,262c8,22,0,34-7,40-10,8-19,7-39,7h-5v47h16C845,356,865,355,877,345Zm185-81c19,16,49,24,89,24,42,0,74-8,94-23,21-16,32-38,32-68,0-20-6-35-18-47-14-12-39-22-75-31l-21-4c-44-9-64-21-64-38,0-12,5-21,14-27,9-5,21-8,38-8s31,4,42,12l1,1,3,3a43.49,43.49,0,0,1,6,7c10,12,16,16,25,16h38q-4.5-34.5-30-57c-21-16-50-24-86-24q-49.5,0-81,24c-19,17-29,37-29,63,0,20,6,35,19,47,12,12,37,23,74,32h1c6,2,16,4,29,6,14,3,54,11,54,38,0,8-3,20-17,28q-16.5,9-39,9c-20,0-37-4-49-12-11-8-17-18-19-32h-59C1034,229,1044,250,1062,264Zm-534,1c19,16,49,24,89,24,42,0,74-8,95-23,22-16,32-39,32-69,0-20-6-35-18-47-14-12-39-22-75-31l-21-4c-45-9-64-21-64-38,0-12,5-21,14-27s21-8,38-8,31,4,42,12l1,1,3,3,7,7c10,12,16,16,26,16h38q-4.5-34.5-30-57Q673.5,0,618,0c-33,0-61,8-81,24-20,17-29,38-29,63,0,20,6,35,19,47,12,12,37,23,75,32h1c6,2,16,4,29,6,14,3,54,11,54,38,0,8-3,20-18,28q-16.5,9-39,9c-20,0-37-4-49-13-11-8-17-18-20-32H501c-1,28,9,48,27,63ZM254,75V176c0,28-5,49-16,65-11,15-24,26-38,33-16,8-33,12-51,14l-49,3c-27,0-51-7-71-20C10,258,0,237,0,206c0-28,8-48,26-60,18-13,43-21,72-25l34-4c15-2,61-8,61-37,0-14-8-25-25-30a126.09,126.09,0,0,0-37-5,114.18,114.18,0,0,0-33,5c-10,2-18,7-23,15H22c-10,0-10-7-8-10A67.87,67.87,0,0,1,39,24Q69,0,126,0c43,0,76,7,97,20S254,51,254,75Zm-61,56-12,6c-11,5-26,10-45,14l-28,6c-16,4-27,9-35,16-10,9-11,21-11,31,0,14,5,25,14,33,9,7,21,11,37,11,25,0,44-7,59-20s22-32,22-55V131Z"></path> </symbol> <symbol id="strato-logo" shape-rendering="geometricPrecision" viewBox="0 0 663 142"> <title>STRATO</title> <g transform="matrix(1.25,0,0,-1.25,0,142.175)" id="g3012"> <g transform="scale(0.1,0.1)" id="g3014"> <path d="m 555.586,978.672 c -87.676,0 -158.738,71.098 -158.738,158.748 l 555.593,0 c 87.669,0 158.729,-71.06 158.729,-158.748 l -0.01,-555.602 c -87.67,0 -158.738,71.075 -158.738,158.735 l 0.019,317.5 c 0,43.828 -35.546,79.367 -79.375,79.367 l -317.48,0" id="path3016" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 793.691,740.547 c 0,43.836 -35.539,79.383 -79.367,79.383 l -634.9607,0 C 35.5273,819.93 0,784.383 0,740.547 L 0,105.578 C 0,61.7383 35.5273,26.1992 79.3633,26.1992 l 634.9607,0 c 43.828,0 79.367,35.5391 79.367,79.3788 l 0,634.969" id="path3018" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 1902.31,103.531 c -44.02,-83.3005 -158.27,-89.2615 -246.33,-89.2615 -67.84,0 -135.67,4.7696 -174.94,8.3321 -48.78,4.7695 -61.88,16.6601 -61.88,41.6484 l 0,40.469 c 0,42.851 7.15,57.129 45.22,57.129 70.22,0 105.91,-9.52 209.45,-9.52 79.73,0 95.2,5.945 95.2,77.352 0,80.918 -1.18,86.867 -41.65,103.527 -51.17,21.426 -99.96,41.66 -149.94,63.074 -123.77,53.555 -148.75,77.356 -148.75,218.961 0,90.457 16.66,160.672 117.81,193.992 44.03,14.282 95.2,19.036 165.41,19.036 54.75,0 83.3,-2.372 134.48,-5.95 48.79,-3.574 63.07,-15.465 63.07,-41.648 l 0,-39.277 c 0,-42.832 -8.34,-57.122 -46.41,-57.122 -41.65,0 -45.23,7.141 -214.2,7.141 -66.65,0 -64.27,-28.555 -64.27,-86.875 0,-42.844 1.19,-52.367 41.65,-70.211 32.13,-14.285 65.45,-27.371 97.58,-41.648 165.42,-70.215 201.12,-86.875 201.12,-222.539 0,-45.227 -1.19,-124.953 -22.62,-166.61" id="path3020" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 2553.92,683.082 c -67.84,0 -123.75,1.191 -174.93,2.387 l 0,-608.1174 c 0,-35.711 -16.66,-52.3711 -51.17,-52.3711 l -51.17,0 c -39.28,0 -57.13,10.7187 -57.13,52.3711 l 0,608.1174 c -51.17,-1.196 -108.29,-2.387 -176.12,-2.387 -48.79,0 -49.98,30.941 -49.98,55.93 l 0,32.148 c 0,40.457 22.61,48.781 49.98,48.781 l 510.52,0 c 27.38,0 51.17,-8.324 51.17,-48.781 l 0,-32.148 c 0,-24.989 -2.38,-55.93 -51.17,-55.93" id="path3022" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 3042.47,674.754 c -19.02,9.519 -70.19,9.519 -91.62,9.519 -38.09,0 -69.02,-1.191 -102.34,-2.371 l 0,-232.066 134.47,0 c 42.83,0 64.26,7.141 77.34,23.801 10.72,14.285 14.28,33.32 14.28,77.351 0,48.793 -4.75,109.489 -32.13,123.766 z m 189.22,-649.7735 -71.41,0 c -29.74,0 -49.98,3.5781 -72.57,32.1289 l -202.31,257.0626 -36.89,0 0,-236.8204 c 0,-35.711 -15.47,-52.3711 -49.98,-52.3711 l -51.18,0 c -39.27,0 -58.32,10.7187 -58.32,52.3711 l 0,693.8084 c 0,46.406 32.13,48.781 58.32,48.781 l 220.16,0 c 124.94,0 157.09,-8.324 203.5,-55.929 44.02,-44.032 61.87,-120.203 61.87,-222.543 0,-97.578 -28.55,-158.281 -78.53,-192.785 -21.43,-14.286 -46.41,-23.797 -79.75,-28.563 L 3256.69,98.7617 c 23.79,-28.5508 28.55,-73.7812 -25,-73.7812" id="path3024" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 3690.75,618.816 -95.19,-280.843 c 27.36,0 59.51,1.191 94.02,1.191 36.88,0 61.88,-1.191 96.39,-1.191 l -95.22,280.843 z m 314.18,-593.8355 -65.45,0 c -36.89,0 -47.6,17.8593 -55.92,41.6484 L 3831.2,215.402 c -51.17,-1.191 -89.28,-1.191 -141.62,-1.191 -50,0 -94.02,0 -136.86,1.191 L 3505.11,74.9609 C 3494.4,42.8398 3484.89,24.9805 3444.42,24.9805 l -54.74,0 c -40.45,0 -46.41,10.7187 -46.41,28.5703 0,7.1406 3.58,21.4101 9.51,36.8789 L 3596.75,771.16 c 13.08,36.887 26.17,53.543 70.21,53.543 l 48.79,0 c 44.04,0 57.13,-16.656 70.22,-52.359 L 4043.02,78.5391 c 2.38,-5.961 4.76,-11.9102 4.76,-17.8477 0,-29.7617 -23.81,-35.7109 -42.85,-35.7109" id="path3026" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 4542.78,683.082 c -67.83,0 -123.77,1.191 -174.94,2.387 l 0,-608.1174 c 0,-35.711 -16.66,-52.3711 -51.17,-52.3711 l -51.17,0 c -39.28,0 -57.13,10.7187 -57.13,52.3711 l 0,608.1174 c -51.17,-1.196 -108.28,-2.387 -176.11,-2.387 -48.79,0 -49.98,30.941 -49.98,55.93 l 0,32.148 c 0,40.457 22.59,48.781 49.98,48.781 l 510.52,0 c 27.37,0 51.18,-8.324 51.18,-48.781 l 0,-32.148 c 0,-24.989 -2.39,-55.93 -51.18,-55.93" id="path3028" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> <path d="m 5113.25,627.148 c -26.17,55.926 -80.92,76.161 -147.56,76.161 -66.64,0 -121.38,-20.235 -147.56,-76.161 -22.61,-49.984 -26.19,-145.183 -26.19,-205.875 0,-60.683 3.58,-154.707 26.19,-204.687 26.18,-55.93 80.92,-77.356 147.56,-77.356 66.64,0 121.39,21.426 147.56,77.356 22.62,49.98 26.19,144.004 26.19,204.687 0,60.692 -3.57,155.891 -26.19,205.875 z M 5215.6,99.9609 C 5158.47,32.1289 5078.74,0 4965.69,0 4852.63,0 4770.52,32.1289 4714.6,99.9609 c -70.22,83.3051 -88.07,198.7341 -88.07,321.3121 0,122.567 17.85,238 88.07,321.313 58.3,69.023 140.41,99.973 251.09,99.973 110.67,0 191.59,-30.95 249.91,-99.973 70.21,-83.313 89.25,-198.746 89.25,-321.313 0,-122.578 -19.04,-238.007 -89.25,-321.3121" id="path3030" style="fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none" /> </g> </g> </symbol> <symbol id="we22-logo" shape-rendering="geometricPrecision" viewBox="0 0 160 89"> <title>we22</title> <g id="logo" transform="translate(30 28)"> <path fill="currentColor" d="M0.235452 6.47916C0.164427 6.29001 0.0943755 5.67551 0.0943755 5.20214C0.0943755 2.45896 2.13658 0 5.7968 0C9.29356 0 11.4525 2.29333 11.4525 5.03652C11.4525 7.02309 10.3969 8.65489 8.44904 9.81429L5.56232 11.5412C5.11671 11.8244 4.74115 12.1321 4.53003 12.581L11.5702 12.581L11.5702 15.7025L0 15.7025C0 12.8887 0.798787 10.5709 3.59113 8.9391L6.07798 7.47294C7.2747 6.76338 7.74463 6.12536 7.74463 5.10806C7.74463 4.1378 7.06454 3.28711 5.70339 3.28711C4.27122 3.28711 3.56778 4.27991 3.56778 5.55791C3.56778 5.85682 3.61254 6.17828 3.70205 6.47916L0.235452 6.47916Z" transform="translate(73.55372 0)" stroke="none"></path> <path fill="currentColor" d="M0.234499 6.47916C0.164441 6.29001 0.0934105 5.67551 0.0934105 5.20214C0.0934105 2.45896 2.13579 0 5.79729 0C9.29337 0 11.4525 2.29333 11.4525 5.03652C11.4525 7.02309 10.3958 8.65489 8.44878 9.81429L5.56182 11.5412C5.11617 11.8244 4.74058 12.1321 4.52944 12.581L11.5703 12.581L11.5703 15.7025L0 15.7025C0 12.8887 0.797881 10.5709 3.59047 8.9391L6.07849 7.47294C7.27532 6.76338 7.74431 6.12536 7.74431 5.10806C7.74431 4.1378 7.06417 3.28711 5.70291 3.28711C4.27158 3.28711 3.56711 4.27991 3.56711 5.55791C3.56711 5.85682 3.61187 6.17828 3.70139 6.47916L0.234499 6.47916Z" transform="translate(88.42975 0)" stroke="none"></path> <path fill="currentColor" d="M26.0643 19.702C24.7008 24.2775 20.4479 28.0992 13.85 28.0992C6.48912 28.0992 0 22.8783 0 13.9422C0 5.49135 6.32486 0 13.1959 0C21.4839 0 26.4463 5.22186 26.4463 13.7274C26.4463 14.7497 26.3364 15.8267 26.3364 15.9341L7.14318 15.9341C7.30644 19.4325 10.3056 21.9634 13.9044 21.9634C17.2855 21.9634 19.1388 20.2947 20.0116 17.926L26.0643 19.702ZM19.3031 11.0364C19.1943 8.39813 17.4488 5.81455 13.3048 5.81455C9.5417 5.81455 7.47071 8.61293 7.30644 11.0364L19.3031 11.0364Z" transform="translate(42.97521 0)" stroke="none"></path> <path fill="currentColor" d="M36.6368 0L31.6972 17.0398L25.9438 0L18.345 0L12.5374 16.9861L7.5978 0L0 0L8.52103 26.4463L15.8486 26.4463L21.9817 8.38516L28.2233 26.4463L35.4434 26.4463L43.8017 0L36.6368 0Z" transform="translate(0 0.8264463)" stroke="none"></path> </g> </symbol> <symbol id="linkedin-logo" viewBox="0 0 24 24"> <title>LinkedIn</title> <path fill="currentColor" d="M19.591 2.9998H4.345C4.1717 2.99379 3.99896 3.02251 3.83693 3.08427C3.6749 3.14603 3.52686 3.23957 3.40153 3.35941C3.2762 3.47924 3.17611 3.62293 3.10715 3.78203C3.0382 3.94113 3.00176 4.11241 3 4.2858V19.7138C3.00176 19.8872 3.0382 20.0585 3.10715 20.2176C3.17611 20.3767 3.2762 20.5204 3.40153 20.6402C3.52686 20.76 3.6749 20.8536 3.83693 20.9153C3.99896 20.9771 4.1717 21.0058 4.345 20.9998H19.655C20.0018 21.0004 20.3354 20.8669 20.5861 20.6272C20.8367 20.3876 20.985 20.0603 21 19.7138V4.2858C20.9712 3.93304 20.8099 3.60428 20.5484 3.36568C20.287 3.12708 19.9449 2.99636 19.591 2.9998ZM8.317 18.3638H5.69V9.7498H8.381V18.3638H8.317ZM6.972 8.59281C6.66657 8.59399 6.36766 8.50451 6.11313 8.33568C5.85859 8.16686 5.65989 7.92629 5.54218 7.64445C5.42448 7.36262 5.39306 7.05218 5.45192 6.75248C5.51078 6.45277 5.65726 6.17727 5.87281 5.96088C6.08836 5.74449 6.36329 5.59693 6.66276 5.53691C6.96224 5.47688 7.27279 5.50709 7.55509 5.62369C7.83738 5.7403 8.07872 5.93807 8.24854 6.19194C8.41835 6.44581 8.509 6.74437 8.509 7.04981C8.51208 7.25278 8.47448 7.45432 8.39841 7.64252C8.32233 7.83073 8.20933 8.00179 8.06607 8.14561C7.92281 8.28943 7.75219 8.4031 7.56428 8.4799C7.37637 8.55671 7.17499 8.5951 6.972 8.59281ZM18.31 18.3638H15.683V14.1858C15.683 13.2208 15.683 11.9358 14.274 11.9358C12.865 11.9358 12.674 13.0288 12.674 14.1208V18.3638H10.046V9.7498H12.609V10.9068H12.673C12.9311 10.4743 13.2973 10.1165 13.7357 9.86857C14.174 9.62063 14.6694 9.49113 15.173 9.49281C17.863 9.49281 18.373 11.2928 18.373 13.6068V18.3638H18.31Z"/> </symbol> <symbol id="facebook-logo" viewBox="0 0 24 24"> <title>facebook</title> <path fill="currentColor" d="M11.9999 2C9.48243 1.99856 7.05705 2.94668 5.20799 4.65507C3.35894 6.36346 2.22227 8.70641 2.02493 11.2161C1.82759 13.7258 2.58411 16.2176 4.14343 18.194C5.70275 20.1704 7.95014 21.486 10.4369 21.878V14.891H7.89989V12H10.4389V9.8C10.3845 9.28542 10.4439 8.76517 10.6129 8.27608C10.7818 7.787 11.0563 7.34105 11.4167 6.96981C11.7772 6.59856 12.2149 6.3111 12.6988 6.12779C13.1827 5.94447 13.7009 5.86978 14.2169 5.909C14.9668 5.92078 15.7148 5.98763 16.4549 6.109V8.569H15.1919C14.977 8.54056 14.7585 8.5608 14.5524 8.62821C14.3464 8.69563 14.1582 8.8085 14.0017 8.95848C13.8452 9.10846 13.7244 9.2917 13.6483 9.49466C13.5722 9.69762 13.5426 9.91509 13.5619 10.131V12H16.3359L15.8929 14.891H13.5619V21.878C16.0486 21.486 18.2959 20.1705 19.8552 18.1942C21.4145 16.2179 22.1711 13.7263 21.9739 11.2166C21.7767 8.70699 20.6402 6.36405 18.7913 4.65558C16.9425 2.94711 14.5173 1.99881 11.9999 2Z"/> </symbol> <symbol id="twitter-logo" viewBox="0 0 1200 1227"> <title>twitter x</title> <path fill="currentColor" d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z"></path> </symbol> <symbol id="youtube-logo" viewBox="0 0 24 24"> <title>YouTube</title> <path fill="currentColor" d="M21.5816 7.15508C21.4684 6.72959 21.2456 6.34125 20.9353 6.02888C20.6251 5.71652 20.2383 5.49107 19.8135 5.37508C18.2535 4.95508 11.9995 4.95508 11.9995 4.95508C11.9995 4.95508 5.74555 4.95508 4.18555 5.37508C3.76084 5.49107 3.37401 5.71652 3.06375 6.02888C2.75349 6.34125 2.53066 6.72959 2.41755 7.15508C2.12921 8.75375 1.98928 10.3756 1.99955 12.0001C1.98928 13.6245 2.12921 15.2464 2.41755 16.8451C2.53066 17.2706 2.75349 17.6589 3.06375 17.9713C3.37401 18.2836 3.76084 18.5091 4.18555 18.6251C5.74555 19.0451 11.9995 19.0451 11.9995 19.0451C11.9995 19.0451 18.2535 19.0451 19.8135 18.6251C20.2383 18.5091 20.6251 18.2836 20.9353 17.9713C21.2456 17.6589 21.4684 17.2706 21.5816 16.8451C21.8699 15.2464 22.0098 13.6245 21.9995 12.0001C22.0098 10.3756 21.8699 8.75375 21.5816 7.15508ZM9.95455 14.9741V9.02608L15.1816 12.0001L9.95455 14.9741Z"/> </symbol> <symbol id="icon-lightbulb" viewBox="0 0 36 36"> <title>Lightbulb</title> <path fill="currentColor" d="M16.774 6V3C16.774 2.448 17.221 2 17.774 2C18.327 2 18.774 2.448 18.774 3V6C18.774 6.552 18.327 7 17.774 7C17.221 7 16.774 6.552 16.774 6ZM31.274 24.639L28.668 23.134C28.189 22.858 27.579 23.021 27.302 23.5C27.026 23.978 27.19 24.59 27.668 24.866L30.274 26.371C30.431 26.462 30.603 26.505 30.773 26.505C31.119 26.505 31.455 26.326 31.64 26.005C31.916 25.527 31.752 24.915 31.274 24.639ZM25.486 9.808C25.772 9.808 26.055 9.686 26.253 9.451L28.182 7.153C28.537 6.73 28.482 6.099 28.059 5.744C27.635 5.389 27.004 5.446 26.651 5.867L24.722 8.165C24.367 8.588 24.422 9.219 24.845 9.574C25.033 9.731 25.259 9.808 25.486 9.808ZM32.374 14.41L29.42 14.931C28.876 15.027 28.513 15.546 28.609 16.09C28.694 16.575 29.116 16.916 29.592 16.916C29.65 16.916 29.708 16.911 29.767 16.901L32.721 16.38C33.265 16.284 33.628 15.765 33.532 15.221C33.436 14.677 32.914 14.312 32.374 14.41ZM5.95604 16.916C6.43304 16.916 6.85404 16.575 6.93904 16.09C7.03604 15.546 6.67204 15.027 6.12804 14.931L3.17304 14.41C2.62904 14.313 2.11104 14.677 2.01504 15.221C1.91804 15.765 2.28204 16.284 2.82604 16.38L5.78104 16.901C5.84004 16.911 5.89804 16.916 5.95604 16.916ZM9.29604 9.451C9.49304 9.686 9.77604 9.808 10.063 9.808C10.29 9.808 10.517 9.731 10.705 9.574C11.129 9.219 11.184 8.588 10.828 8.165L8.89904 5.867C8.54604 5.446 7.91604 5.388 7.49104 5.744C7.06704 6.099 7.01204 6.73 7.36804 7.153L9.29604 9.451ZM6.88204 23.134L4.23704 24.661C3.75804 24.937 3.59404 25.549 3.87104 26.027C4.05704 26.348 4.39204 26.527 4.73804 26.527C4.90804 26.527 5.08004 26.484 5.23704 26.393L7.88204 24.866C8.36104 24.59 8.52504 23.978 8.24804 23.5C7.97104 23.021 7.35804 22.857 6.88204 23.134ZM23.84 25.619C23.369 26.114 22.938 26.571 22.64 27H22.774C23.327 27 23.774 27.448 23.774 28V31.499C23.774 32.878 22.652 34 21.273 34H14.275C12.896 34 11.774 32.878 11.774 31.499V28C11.774 27.448 12.221 27 12.774 27H12.908C12.611 26.572 12.18 26.114 11.708 25.619C10.259 24.097 8.27304 22.012 8.27304 18.5C8.27304 13.262 12.535 9 17.773 9C23.011 9 27.273 13.262 27.273 18.5C27.273 22.012 25.288 24.097 23.838 25.619H23.84ZM21.774 29H13.774V31.499C13.774 31.775 13.999 32 14.275 32H21.273C21.549 32 21.774 31.775 21.774 31.499V29ZM20.401 27C20.736 25.979 21.546 25.128 22.391 24.24C23.743 22.821 25.274 21.212 25.274 18.5C25.274 14.364 21.91 11 17.774 11C13.638 11 10.274 14.364 10.274 18.5C10.274 21.212 11.805 22.821 13.157 24.24C14.003 25.128 14.812 25.979 15.147 27H20.401Z"/> </symbol> <symbol id="icon-hand-thumbs-up" viewBox="0 0 36 36"> <title>Hand thumbs up</title> <path fill="currentColor" d="M30.872 14.071C30.754 14.024 30.628 14 30.5 14H22.229C22.5 12.622 22.893 10.393 22.893 9C22.893 6.742 20.126 2.85 19.81 2.414C19.622 2.154 19.321 2 19 2H16C15.448 2 15 2.448 15 3V9C15 10.343 13.817 13.079 13.228 14.303L10.566 15.967C10.041 15.092 9.093 14.5 8.001 14.5H3C2.448 14.5 2 14.948 2 15.5V32C2 32.552 2.448 33 3 33H8C9.056 33 9.982 32.448 10.517 31.621C11.96 32.582 14.581 34 17.5 34H29C32.088 34 34 27.771 34 22C34 15.51 31.191 14.2 30.872 14.071ZM9 30C9 30.551 8.551 31 8 31H4V16.5H8C8.551 16.5 9 16.949 9 17.5V30ZM29 32H17.5C14.612 32 11.935 30.211 11 29.514V18.055L14.53 15.849C14.686 15.751 14.812 15.613 14.895 15.448C15.11 15.017 17 11.174 17 9.001V4H18.481C19.516 5.509 20.893 7.89 20.893 9C20.893 10.866 20.033 14.743 20.024 14.782C19.958 15.078 20.03 15.388 20.22 15.625C20.41 15.862 20.697 16 21 16H30.224C30.652 16.327 32 17.699 32 22C32 28.222 29.917 32 29 32Z"/> </symbol> <symbol id="icon-balance-scale" viewBox="0 0 2176 1792"> <title>FA Balance Scale</title> <path fill="currentColor" d="m1728 448l-384 704h768zm-1280 0L64 1152h768zm821-192q-14 40-45.5 71.5T1152 373v1291h608q14 0 23 9t9 23v64q0 14-9 23t-23 9H416q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h608V373q-40-14-71.5-45.5T907 256H416q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h491q21-57 70-92.5T1088 0t111 35.5t70 92.5h491q14 0 23 9t9 23v64q0 14-9 23t-23 9zm-181 16q33 0 56.5-23.5T1168 192t-23.5-56.5T1088 112t-56.5 23.5T1008 192t23.5 56.5T1088 272m1088 880q0 73-46.5 131t-117.5 91t-144.5 49.5T1728 1440t-139.5-16.5T1444 1374t-117.5-91t-46.5-131q0-11 35-81t92-174.5T1514 701t102-184t56-100q18-33 56-33t56 33q4 7 56 100t102 184t107 195.5t92 174.5t35 81m-1280 0q0 73-46.5 131T732 1374t-144.5 49.5T448 1440t-139.5-16.5T164 1374t-117.5-91T0 1152q0-11 35-81t92-174.5T234 701t102-184t56-100q18-33 56-33t56 33q4 7 56 100t102 184t107 195.5t92 174.5t35 81" /> </symbol> <symbol id="icon-exclamation-circle" viewBox="0 0 36 36"> <title>Exclamation circle</title> <path fill="currentColor" d="M18 1C8.611 1 1 8.611 1 18C1 27.389 8.611 35 18 35C27.389 35 35 27.389 35 18C35 8.611 27.389 1 18 1ZM18 33C9.729 33 3 26.271 3 18C3 9.729 9.729 3 18 3C26.271 3 33 9.729 33 18C33 26.271 26.271 33 18 33ZM19.5 26.5C19.5 27.328 18.828 28 18 28C17.172 28 16.5 27.328 16.5 26.5C16.5 25.672 17.172 25 18 25C18.828 25 19.5 25.672 19.5 26.5ZM17 21V9C17 8.448 17.448 8 18 8C18.552 8 19 8.448 19 9V21C19 21.552 18.552 22 18 22C17.448 22 17 21.552 17 21Z"/> </symbol> <symbol id="icon-list" viewBox="0 0 36 36"> <title>List</title> <path fill="currentColor" d="M33 7.978H12C11.447 7.978 11 7.53 11 6.978C11 6.426 11.447 5.978 12 5.978H33C33.553 5.978 34 6.426 34 6.978C34 7.53 33.553 7.978 33 7.978ZM34 18C34 17.448 33.553 17 33 17H12C11.447 17 11 17.448 11 18C11 18.552 11.447 19 12 19H33C33.553 19 34 18.552 34 18ZM34 29C34 28.448 33.553 28 33 28H12C11.447 28 11 28.448 11 29C11 29.552 11.447 30 12 30H33C33.553 30 34 29.552 34 29ZM8 30.5V27.5C8 26.673 7.327 26 6.5 26H3.5C2.673 26 2 26.673 2 27.5V30.5C2 31.327 2.673 32 3.5 32H6.5C7.327 32 8 31.327 8 30.5ZM4 28H6V30H4V28ZM8 19.5V16.5C8 15.673 7.327 15 6.5 15H3.5C2.673 15 2 15.673 2 16.5V19.5C2 20.327 2.673 21 3.5 21H6.5C7.327 21 8 20.327 8 19.5ZM4 17H6V19H4V17ZM8 8.5V5.5C8 4.673 7.327 4 6.5 4H3.5C2.673 4 2 4.673 2 5.5V8.5C2 9.327 2.673 10 3.5 10H6.5C7.327 10 8 9.327 8 8.5ZM4 6H6V8H4V6Z"/> </symbol> <symbol id="icon-list-ul" viewBox="0 0 16 16"> <title>List ul</title> <path fill="currentColor" fill-rule="evenodd" d="M5 11.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m-3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2m0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2m0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2"/> </symbol> <symbol id="icon-book" viewBox="0 0 16 16"> <title>Book</title> <path fill="currentColor" d="M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783"/> </symbol> <symbol id="icon-chat-left-quote" viewBox="0 0 16 16"> <title>Chat left quote</title> <path fill="currentColor" d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"/> <path fill="currentColor" d="M7.066 4.76A1.665 1.665 0 0 0 4 5.668a1.667 1.667 0 0 0 2.561 1.406c-.131.389-.375.804-.777 1.22a.417.417 0 1 0 .6.58c1.486-1.54 1.293-3.214.682-4.112zm4 0A1.665 1.665 0 0 0 8 5.668a1.667 1.667 0 0 0 2.561 1.406c-.131.389-.375.804-.777 1.22a.417.417 0 1 0 .6.58c1.486-1.54 1.293-3.214.682-4.112z"/> </symbol> <symbol id="icon-breadcrumb-divider" viewBox="0 0 16 16"> <title>Breadcrumb divider</title> <path fill="currentColor" fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/> </symbol> <symbol id="icon-toc" viewBox="0 0 16 16"> <title>Table of contents</title> <path fill="currentColor" fill-rule="evenodd" d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5"/> </symbol> <symbol id="icon-toc2" viewBox="0 0 16 16"> <title>Table of contents</title> <path fill="currentColor" fill-rule="evenodd" d="M5 11.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5m-3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2m0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2m0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2"/> </symbol> <symbol id="icon-download" viewBox="0 0 16 16"> <title>Download</title> <path fill="currentColor" d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/> <path fill="currentColor" d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/> </symbol> <symbol id="icon-send" viewBox="0 0 16 16"> <title>Send</title> <path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z"/> </symbol> <symbol id="icon-qr-code-scan" viewBox="0 0 16 16"> <title>QR Code Scan</title> <path fill="currentColor" d="M0 .5A.5.5 0 0 1 .5 0h3a.5.5 0 0 1 0 1H1v2.5a.5.5 0 0 1-1 0zm12 0a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-1 0V1h-2.5a.5.5 0 0 1-.5-.5M.5 12a.5.5 0 0 1 .5.5V15h2.5a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5m15 0a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1 0-1H15v-2.5a.5.5 0 0 1 .5-.5M4 4h1v1H4z"/> <path fill="currentColor" d="M7 2H2v5h5zM3 3h3v3H3zm2 8H4v1h1z"/> <path fill="currentColor" d="M7 9H2v5h5zm-4 1h3v3H3zm8-6h1v1h-1z"/> <path fill="currentColor" d="M9 2h5v5H9zm1 1v3h3V3zM8 8v2h1v1H8v1h2v-2h1v2h1v-1h2v-1h-3V8zm2 2H9V9h1zm4 2h-1v1h-2v1h3zm-4 2v-1H8v1z"/> <path fill="currentColor" d="M12 9h2V8h-2z"/> </symbol> <symbol id="icon-camera-reels" viewBox="0 0 16 16"> <title>Camera reels</title> <path fill="currentColor" d="M6 3a3 3 0 1 1-6 0 3 3 0 0 1 6 0M1 3a2 2 0 1 0 4 0 2 2 0 0 0-4 0"/> <path fill="currentColor" d="M9 6h.5a2 2 0 0 1 1.983 1.738l3.11-1.382A1 1 0 0 1 16 7.269v7.462a1 1 0 0 1-1.406.913l-3.111-1.382A2 2 0 0 1 9.5 16H2a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2zm6 8.73V7.27l-3.5 1.555v4.35l3.5 1.556zM1 8v6a1 1 0 0 0 1 1h7.5a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1"/> <path fill="currentColor" d="M9 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6M7 3a2 2 0 1 1 4 0 2 2 0 0 1-4 0"/> </symbol> <symbol id="icon-search" viewBox="0 0 16 16"> <title>Search</title> <path fill="currentColor" d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0"/> </symbol> <symbol id="icon-rss" viewBox="0 0 16 16"> <title>RSS</title> <path fill="currentColor" d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm1.5 2.5c5.523 0 10 4.477 10 10a1 1 0 1 1-2 0 8 8 0 0 0-8-8 1 1 0 0 1 0-2m0 4a6 6 0 0 1 6 6 1 1 0 1 1-2 0 4 4 0 0 0-4-4 1 1 0 0 1 0-2m.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/> </symbol> <symbol id="icon-check" viewBox="0 0 16 16"> <title>Check</title> <path fill="currentColor" d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425z"/> </symbol> <symbol id="icon-check-lg" viewBox="0 0 16 16"> <title>Check lg</title> <path fill="currentColor" d="M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022"/> </symbol> <symbol id="icon-check-circle" viewBox="0 0 16 16"> <title>Check circle</title> <path fill="currentColor" d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/> <path fill="currentColor" d="m10.97 4.97-.02.022-3.473 4.425-2.093-2.094a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05"/> </symbol> <symbol id="icon-x" viewBox="0 0 16 16"> <title>X</title> <path fill="currentColor" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/> </symbol> <symbol id="icon-x-lg" viewBox="0 0 16 16"> <title>X lg</title> <path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/> </symbol> <symbol id="icon-x-circle" viewBox="0 0 16 16"> <title>X circle</title> <path fill="currentColor" d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/> <path fill="currentColor" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/> </symbol> <symbol id="icon-file-earmark-excel" viewBox="0 0 16 16"> <title>File earmark excel</title> <path fill="currentColor" d="M5.884 6.68a.5.5 0 1 0-.768.64L7.349 10l-2.233 2.68a.5.5 0 0 0 .768.64L8 10.781l2.116 2.54a.5.5 0 0 0 .768-.641L8.651 10l2.233-2.68a.5.5 0 0 0-.768-.64L8 9.219l-2.116-2.54z"/> <path fill="currentColor" d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/> </symbol> <symbol id="icon-file-earmark-word" viewBox="0 0 16 16"> <title>File earmark Word</title> <path fill="currentColor" d="M5.485 6.879a.5.5 0 1 0-.97.242l1.5 6a.5.5 0 0 0 .967.01L8 9.402l1.018 3.73a.5.5 0 0 0 .967-.01l1.5-6a.5.5 0 0 0-.97-.242l-1.036 4.144-.997-3.655a.5.5 0 0 0-.964 0l-.997 3.655L5.485 6.88z"/> <path fill="currentColor" d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/> </symbol> <symbol id="icon-file-earmark-pdf" viewBox="0 0 16 16"> <title>File earmark pdf</title> <path fill="currentColor" d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/> <path fill="currentColor" d="M4.603 14.087a.81.81 0 0 1-.438-.42c-.195-.388-.13-.776.08-1.102.198-.307.526-.568.897-.787a7.68 7.68 0 0 1 1.482-.645 19.697 19.697 0 0 0 1.062-2.227 7.269 7.269 0 0 1-.43-1.295c-.086-.4-.119-.796-.046-1.136.075-.354.274-.672.65-.823.192-.077.4-.12.602-.077a.7.7 0 0 1 .477.365c.088.164.12.356.127.538.007.188-.012.396-.047.614-.084.51-.27 1.134-.52 1.794a10.954 10.954 0 0 0 .98 1.686 5.753 5.753 0 0 1 1.334.05c.364.066.734.195.96.465.12.144.193.32.2.518.007.192-.047.382-.138.563a1.04 1.04 0 0 1-.354.416.856.856 0 0 1-.51.138c-.331-.014-.654-.196-.933-.417a5.712 5.712 0 0 1-.911-.95 11.651 11.651 0 0 0-1.997.406 11.307 11.307 0 0 1-1.02 1.51c-.292.35-.609.656-.927.787a.793.793 0 0 1-.58.029zm1.379-1.901c-.166.076-.32.156-.459.238-.328.194-.541.383-.647.547-.094.145-.096.25-.04.361.01.022.02.036.026.044a.266.266 0 0 0 .035-.012c.137-.056.355-.235.635-.572a8.18 8.18 0 0 0 .45-.606zm1.64-1.33a12.71 12.71 0 0 1 1.01-.193 11.744 11.744 0 0 1-.51-.858 20.801 20.801 0 0 1-.5 1.05zm2.446.45c.15.163.296.3.435.41.24.19.407.253.498.256a.107.107 0 0 0 .07-.015.307.307 0 0 0 .094-.125.436.436 0 0 0 .059-.2.095.095 0 0 0-.026-.063c-.052-.062-.2-.152-.518-.209a3.876 3.876 0 0 0-.612-.053zM8.078 7.8a6.7 6.7 0 0 0 .2-.828c.031-.188.043-.343.038-.465a.613.613 0 0 0-.032-.198.517.517 0 0 0-.145.04c-.087.035-.158.106-.196.283-.04.192-.03.469.046.822.024.111.054.227.09.346z"/> </symbol> <symbol id="icon-file-earmark-arrow-down" viewBox="0 0 16 16"> <title>File earmark arrow down</title> <path fill="currentColor" d="M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293z"/> <path fill="currentColor" d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2M9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/> </symbol> <symbol id="icon-link" viewBox="0 0 36 36"> <title>Icon link</title> <path d="M19.813 22.778C18.077 22.778 16.445 22.102 15.217 20.874C14.792 20.45 14.428 19.97 14.136 19.448C13.866 18.966 14.038 18.357 14.521 18.087C15.004 17.817 15.613 17.99 15.882 18.471C16.083 18.832 16.336 19.164 16.631 19.459C17.481 20.31 18.61 20.777 19.813 20.777C21.016 20.777 22.145 20.309 22.996 19.459L30.773 11.681C31.624 10.831 32.091 9.70102 32.091 8.49902C32.091 7.29702 31.623 6.16702 30.773 5.31702C29.923 4.46702 28.794 3.99902 27.591 3.99902C26.388 3.99902 25.259 4.46702 24.409 5.31702L18.569 11.157C18.178 11.548 17.546 11.548 17.155 11.157C16.764 10.766 16.764 10.134 17.155 9.74302L22.995 3.90302C24.223 2.67502 25.854 1.99902 27.591 1.99902C29.328 1.99902 30.959 2.67502 32.187 3.90302C33.415 5.13102 34.091 6.76302 34.091 8.49902C34.091 10.235 33.414 11.868 32.187 13.095L24.41 20.873C23.182 22.101 21.55 22.778 19.813 22.778ZM13.096 32.188L18.936 26.348C19.327 25.957 19.327 25.325 18.936 24.934C18.545 24.543 17.913 24.543 17.522 24.934L11.682 30.774C10.832 31.624 9.703 32.092 8.5 32.092C7.297 32.092 6.168 31.624 5.318 30.774C4.467 29.924 4 28.794 4 27.592C4 26.39 4.468 25.26 5.318 24.41L13.095 16.632C13.946 15.782 15.075 15.314 16.278 15.314C17.481 15.314 18.61 15.782 19.46 16.632C19.755 16.927 20.008 17.259 20.209 17.62C20.48 18.102 21.088 18.274 21.57 18.004C22.052 17.734 22.224 17.125 21.955 16.643C21.663 16.121 21.299 15.642 20.874 15.217C19.646 13.989 18.015 13.313 16.278 13.313C14.541 13.313 12.909 13.989 11.681 15.217L3.904 22.995C2.676 24.223 2 25.855 2 27.591C2 29.327 2.677 30.96 3.904 32.187C5.131 33.414 6.763 34.091 8.5 34.091C10.237 34.091 11.868 33.416 13.096 32.188Z" fill="currentColor"/> </symbol> <symbol id="icon-calendar" viewBox="0 0 16 16"> <title>Calendar3</title> <path fill="currentColor" d="M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2M1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857z"/> <path fill="currentColor" d="M6.5 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m-9 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m-9 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2"/> </symbol> <symbol id="icon-calendar-event" viewBox="0 0 16 16"> <title>Calendar event</title> <path fill="currentColor" d="M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z"/> <path fill="currentColor" d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z"/> </symbol> <symbol id="icon-arrow-top" viewBox="0 0 36 36"> <title>Arrow top</title> <path fill="currentColor" d="M30.041 13.96L18.374 2.29301C17.983 1.90201 17.351 1.90201 16.96 2.29301L5.29301 13.96C4.90201 14.35 4.90201 14.984 5.29301 15.374C5.68401 15.765 6.31601 15.765 6.70701 15.374L16.667 5.41401V33C16.667 33.552 17.114 34 17.667 34C18.22 34 18.667 33.552 18.667 33V5.41401L28.627 15.374C28.822 15.569 29.078 15.667 29.334 15.667C29.59 15.667 29.846 15.569 30.041 15.374C30.432 14.984 30.432 14.35 30.041 13.96Z"/> </symbol> <symbol id="icon-arrow-right" viewBox="0 0 36 36"> <title>Arrow right</title> <path fill="currentColor" d="M33.414 16.7517L23.247 6.58575C22.466 5.80475 21.2 5.80475 20.419 6.58575C19.638 7.36675 19.638 8.63375 20.419 9.41475L27.172 16.1667H4C2.896 16.1667 2 17.0627 2 18.1667C2 19.2708 2.896 20.1667 4 20.1667H27.172L20.419 26.9188C19.638 27.6998 19.638 28.9657 20.419 29.7477C20.81 30.1377 21.321 30.3337 21.833 30.3337C22.345 30.3337 22.856 30.1388 23.247 29.7477L33.414 19.5808C33.789 19.2058 34 18.6967 34 18.1667C34 17.6368 33.789 17.1278 33.414 16.7528V16.7517Z"/> </symbol> <symbol id="icon-arrow-bottom" viewBox="0 0 36 36"> <title>Arrow bottom</title> <path fill="currentColor" d="M30.041 20.626C29.65 20.235 29.018 20.235 28.627 20.626L18.667 30.586V3C18.667 2.448 18.22 2 17.667 2C17.114 2 16.667 2.448 16.667 3V30.586L6.70701 20.626C6.31601 20.235 5.68401 20.235 5.29301 20.626C4.90201 21.016 4.90201 21.65 5.29301 22.04L16.96 33.707C17.155 33.902 17.411 34 17.667 34C17.923 34 18.179 33.902 18.374 33.707L30.041 22.04C30.432 21.65 30.432 21.016 30.041 20.626Z"/> </symbol> <symbol id="icon-arrow-left" viewBox="0 0 36 36"> <title>Arrow left</title> <path fill="currentColor" d="M33 16.667H5.414L15.374 6.70701C15.765 6.31701 15.765 5.68301 15.374 5.29301C14.983 4.90201 14.351 4.90201 13.96 5.29301L2.293 16.96C2.105 17.148 2 17.402 2 17.667C2 17.932 2.105 18.187 2.293 18.374L13.96 30.041C14.155 30.236 14.411 30.334 14.667 30.334C14.923 30.334 15.179 30.236 15.374 30.041C15.765 29.651 15.765 29.017 15.374 28.627L5.414 18.667H33C33.553 18.667 34 18.219 34 17.667C34 17.115 33.553 16.667 33 16.667Z"/> </symbol> <symbol id="icon-stopwatch" viewBox="0 0 16 16"> <title>Stopwatch</title> <path fill="currentColor" d="M8.5 5.6a.5.5 0 1 0-1 0v2.9h-3a.5.5 0 0 0 0 1H8a.5.5 0 0 0 .5-.5z"/> <path fill="currentColor" d="M6.5 1A.5.5 0 0 1 7 .5h2a.5.5 0 0 1 0 1v.57c1.36.196 2.594.78 3.584 1.64l.012-.013.354-.354-.354-.353a.5.5 0 0 1 .707-.708l1.414 1.415a.5.5 0 1 1-.707.707l-.353-.354-.354.354-.013.012A7 7 0 1 1 7 2.071V1.5a.5.5 0 0 1-.5-.5M8 3a6 6 0 1 0 .001 12A6 6 0 0 0 8 3"/> </symbol> <symbol id="icon-info" viewBox="0 0 16 16"> <title>Info</title> <path fill="currentColor" d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/> <path fill="currentColor" d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/> </symbol> </svg> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10