Novoa/public/docs/misskey/index.html
2024-01-13 22:59:32 -06:00

718 lines
65 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="es"><head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="index, follow" />
<link rel="icon shortcut" href="/favicon.ico" sizes="32x32" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="icon" href="/favicon-dark.svg" type="image/svg+xml" media="(prefers-color-scheme: dark)" />
<link rel="icon" href="/favicon-16x16.png" type="image/png" sizes="16x16" />
<link rel="icon" href="/favicon-32x32.png" type="image/png" sizes="32x32" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
<link fetchpriority="low" href="/site.webmanifest" rel="manifest" />
<title>Misskey en Novoa Novoa en español</title>
<meta name="description" content="Esta guía/documentación esta planteada para una instalación completamente manual sobre algún servidor gnu/linux como Debian de manera directa, es decir no hará uso de kubernetes, docker o cualquier otro software de virtu" />
<meta property="og:title" content="Misskey en Novoa" />
<meta property="og:description" content="Portal de toda la documentación y servicios de Novoa." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://portal.novoa.nagoya/docs/misskey/" /><meta property="og:site_name" content="Novoa en español" />
<meta itemprop="name" content="Misskey en Novoa">
<meta itemprop="description" content="Portal de toda la documentación y servicios de Novoa."><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Misskey en Novoa"/>
<meta name="twitter:description" content="Portal de toda la documentación y servicios de Novoa."/>
<link rel="preload" href="/css/compiled/main.min.2fd8982815d4baf33b6acf949e788eafe9a3ff0490ac38a7a749fe9d8f292278.css" as="style" integrity="sha256-L9iYKBXUuvM7as&#43;UnniOr&#43;mj/wSQrDinp0n&#43;nY8pIng=" />
<link href="/css/compiled/main.min.2fd8982815d4baf33b6acf949e788eafe9a3ff0490ac38a7a749fe9d8f292278.css" rel="stylesheet" integrity="sha256-L9iYKBXUuvM7as&#43;UnniOr&#43;mj/wSQrDinp0n&#43;nY8pIng=" />
<link href="/css/custom.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css" rel="stylesheet" integrity="sha256-47DEQpj8HBSa&#43;/TImW&#43;5JCeuQeRkm5NMpJWZG3hSuFU=" />
<script>
const defaultTheme = 'system';
const setDarkTheme = () => {
document.documentElement.classList.add("dark");
document.documentElement.style.colorScheme = "dark";
}
const setLightTheme = () => {
document.documentElement.classList.remove("dark");
document.documentElement.style.colorScheme = "light";
}
if ("color-theme" in localStorage) {
localStorage.getItem("color-theme") === "dark" ? setDarkTheme() : setLightTheme();
} else {
defaultTheme === "dark" ? setDarkTheme() : setLightTheme();
if (defaultTheme === "system") {
window.matchMedia("(prefers-color-scheme: dark)").matches ? setDarkTheme() : setLightTheme();
}
}
</script>
</head>
<body dir="ltr"><div class="nav-container sticky top-0 z-20 w-full bg-transparent print:hidden">
<div class="nav-container-blur pointer-events-none absolute z-[-1] h-full w-full bg-white dark:bg-dark shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)] contrast-more:shadow-[0_0_0_1px_#000] dark:shadow-[0_-1px_0_rgba(255,255,255,.1)_inset] contrast-more:dark:shadow-[0_0_0_1px_#fff]"></div>
<nav class="mx-auto flex items-center justify-end gap-2 h-16 px-6 max-w-[90rem]">
<a class="flex items-center hover:opacity-75 ltr:mr-auto rtl:ml-auto" href="/">
<img class="block dark:hidden" src="/images/logo.svg" alt="Novoa en español" height="20" width="20" />
<img class="hidden dark:block" src="/images/logo-dark.svg" alt="Novoa en español" height="20" width="20" />
<span class="mx-2 font-extrabold inline select-none" title="Novoa en español">Novoa en español</span>
</a><a
title="Documentación"
href="/docs"
class="text-sm contrast-more:text-gray-700 contrast-more:dark:text-gray-100 relative -ml-2 hidden whitespace-nowrap p-2 md:inline-block font-medium"
>
<span class="text-center">Documentación</span>
</a><a
title="Acerca de"
href="/novoa"
class="text-sm contrast-more:text-gray-700 contrast-more:dark:text-gray-100 relative -ml-2 hidden whitespace-nowrap p-2 md:inline-block text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200"
>
<span class="text-center">Acerca de</span>
</a><a
title="Servicios ↗"
href="/servicios"
class="text-sm contrast-more:text-gray-700 contrast-more:dark:text-gray-100 relative -ml-2 hidden whitespace-nowrap p-2 md:inline-block text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200"
>
<span class="text-center">Servicios ↗</span>
</a><div class="search-wrapper relative md:w-64">
<div class="relative flex items-center text-gray-900 contrast-more:text-gray-800 dark:text-gray-300 contrast-more:dark:text-gray-300">
<input
placeholder="Buscar..."
class="search-input block w-full appearance-none rounded-lg px-3 py-2 transition-colors text-base leading-tight md:text-sm bg-black/[.05] dark:bg-gray-50/10 focus:bg-white dark:focus:bg-dark placeholder:text-gray-500 dark:placeholder:text-gray-400 contrast-more:border contrast-more:border-current"
type="search"
value=""
spellcheck="false"
/>
<kbd
class="absolute my-1.5 select-none ltr:right-1.5 rtl:left-1.5 h-5 rounded bg-white px-1.5 font-mono text-[10px] font-medium text-gray-500 border dark:border-gray-100/20 dark:bg-dark/50 contrast-more:border-current contrast-more:text-current contrast-more:dark:border-current items-center gap-1 transition-opacity pointer-events-none hidden sm:flex"
>
CTRL K
</kbd>
</div>
<div>
<ul
class="search-results hextra-scrollbar hidden border border-gray-200 bg-white text-gray-100 dark:border-neutral-800 dark:bg-neutral-900 absolute top-full z-20 mt-2 overflow-auto overscroll-contain rounded-xl py-2.5 shadow-xl max-h-[min(calc(50vh-11rem-env(safe-area-inset-bottom)),400px)] md:max-h-[min(calc(100vh-5rem-env(safe-area-inset-bottom)),400px)] inset-x-0 ltr:md:left-auto rtl:md:right-auto contrast-more:border contrast-more:border-gray-900 contrast-more:dark:border-gray-50 w-screen min-h-[100px] max-w-[min(calc(100vw-2rem),calc(100%+20rem))]"
style="transition: max-height 0.2s ease 0s;"
></ul>
</div>
</div>
<a class="p-2 text-current" target="_blank" rel="noreferer" href="https://git.froth.zone/ren/Novoa" title="SourceCode"><svg height=24 fill="currentColor" viewBox="3 3 18 18">
<path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path>
</svg>
<span class="sr-only">SourceCode</span>
</a><a class="p-2 text-current" target="_blank" rel="noreferer" href="https://novoa.nagoya/" title="Fediverso"><svg height=24 xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"></path></svg><span class="sr-only">Fediverso</span>
</a><button type="button" aria-label="Menu" class="hamburger-menu -mr-2 rounded p-2 active:bg-gray-400/20 md:hidden"><svg height=24 fill="none" viewBox="0 0 24 24" stroke="currentColor"><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8H20"></path></g><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16H20"></path></g></svg></button>
</nav>
</div>
<div class='mx-auto flex max-w-screen-xl'>
<div class="mobile-menu-overlay [transition:background-color_1.5s_ease] fixed inset-0 z-10 bg-black/80 dark:bg-black/60 hidden"></div>
<aside class="sidebar-container flex flex-col print:hidden md:top-16 md:shrink-0 md:w-64 md:self-start max-md:[transform:translate3d(0,-100%,0)] md:sticky">
<div class="px-4 pt-4 md:hidden">
<div class="search-wrapper relative md:w-64">
<div class="relative flex items-center text-gray-900 contrast-more:text-gray-800 dark:text-gray-300 contrast-more:dark:text-gray-300">
<input
placeholder="Buscar..."
class="search-input block w-full appearance-none rounded-lg px-3 py-2 transition-colors text-base leading-tight md:text-sm bg-black/[.05] dark:bg-gray-50/10 focus:bg-white dark:focus:bg-dark placeholder:text-gray-500 dark:placeholder:text-gray-400 contrast-more:border contrast-more:border-current"
type="search"
value=""
spellcheck="false"
/>
<kbd
class="absolute my-1.5 select-none ltr:right-1.5 rtl:left-1.5 h-5 rounded bg-white px-1.5 font-mono text-[10px] font-medium text-gray-500 border dark:border-gray-100/20 dark:bg-dark/50 contrast-more:border-current contrast-more:text-current contrast-more:dark:border-current items-center gap-1 transition-opacity pointer-events-none hidden sm:flex"
>
CTRL K
</kbd>
</div>
<div>
<ul
class="search-results hextra-scrollbar hidden border border-gray-200 bg-white text-gray-100 dark:border-neutral-800 dark:bg-neutral-900 absolute top-full z-20 mt-2 overflow-auto overscroll-contain rounded-xl py-2.5 shadow-xl max-h-[min(calc(50vh-11rem-env(safe-area-inset-bottom)),400px)] md:max-h-[min(calc(100vh-5rem-env(safe-area-inset-bottom)),400px)] inset-x-0 ltr:md:left-auto rtl:md:right-auto contrast-more:border contrast-more:border-gray-900 contrast-more:dark:border-gray-50 w-screen min-h-[100px] max-w-[min(calc(100vw-2rem),calc(100%+20rem))]"
style="transition: max-height 0.2s ease 0s;"
></ul>
</div>
</div>
</div>
<div class="hextra-scrollbar overflow-y-auto overflow-x-hidden p-4 grow md:h-[calc(100vh-var(--navbar-height)-var(--menu-height))]">
<ul class="flex flex-col gap-1 md:hidden">
<li class="open"><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/"
>Documentación de Novoa
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a><div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/fediverso/"
>Fediverso
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a>
<div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/fediverso/disclaimer/"
>Disclaimer
</a>
</li></ul>
</div>
</li><li class="flex flex-col open"><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/sysadmin/"
>Administración de servidores
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a>
<div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/sysadmin/util/"
>Servidores
</a>
</li></ul>
</div>
</li><li class="flex flex-col open"><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
sidebar-active-item bg-primary-100 font-semibold text-primary-800 contrast-more:border contrast-more:border-primary-500 dark:bg-primary-400/10 dark:text-primary-600 contrast-more:dark:border-primary-500"
href="/docs/misskey/"
>Misskey en Novoa
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a>
<ul class='flex flex-col gap-1 relative before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] dark:before:bg-neutral-800 ltr:pl-3 ltr:before:left-0 rtl:pr-3 rtl:before:right-0 ltr:ml-3 rtl:mr-3'><li>
<a
href="#preparaciones-para-instalar-misskey"
class="flex rounded px-2 py-1.5 text-sm transition-colors [word-break:break-word] cursor-pointer [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] contrast-more:border gap-2 before:opacity-25 before:content-['#'] text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:text-gray-900 contrast-more:dark:text-gray-50 contrast-more:border-transparent contrast-more:hover:border-gray-900 contrast-more:dark:hover:border-gray-50"
>Preparaciones para instalar Misskey</a>
</li>
<li>
<a
href="#configuraci%c3%b3n"
class="flex rounded px-2 py-1.5 text-sm transition-colors [word-break:break-word] cursor-pointer [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] contrast-more:border gap-2 before:opacity-25 before:content-['#'] text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:text-gray-900 contrast-more:dark:text-gray-50 contrast-more:border-transparent contrast-more:hover:border-gray-900 contrast-more:dark:hover:border-gray-50"
>Configuración</a>
</li>
<li>
<a
href="#compilaci%c3%b3n"
class="flex rounded px-2 py-1.5 text-sm transition-colors [word-break:break-word] cursor-pointer [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] contrast-more:border gap-2 before:opacity-25 before:content-['#'] text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:text-gray-900 contrast-more:dark:text-gray-50 contrast-more:border-transparent contrast-more:hover:border-gray-900 contrast-more:dark:hover:border-gray-50"
>Compilación</a>
</li>
</ul>
<div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/actualizar/"
>Actualizar Misskey
</a>
</li><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/sys-units/"
>Integración al sistema
</a>
</li><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/http-server/"
>Servidor HTTP
</a>
</li></ul>
</div>
</li></ul>
</div></li>
<li class=""><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/novoa/"
>Acerca de Novoa
</a></li>
<li class="[word-break:break-word] mt-5 mb-2 px-2 py-1.5 text-sm font-semibold text-gray-900 first:mt-0 dark:text-gray-100">
<span class="cursor-default">Más información</span>
</li>
<li><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/novoa/"
>Acerca de</a></li>
<li><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="https://gohugo.io/documentation/"
target="_blank" rel="noreferer"
>Hugo Docs ↗</a></li>
</ul>
<ul class="flex flex-col gap-1 max-md:hidden">
<li class=""><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/fediverso/"
>Fediverso
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a><div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/fediverso/disclaimer/"
>Disclaimer
</a>
</li></ul>
</div></li>
<li class="open"><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/sysadmin/"
>Administración de servidores
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a><div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/sysadmin/util/"
>Servidores
</a>
</li></ul>
</div></li>
<li class="open"><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
sidebar-active-item bg-primary-100 font-semibold text-primary-800 contrast-more:border contrast-more:border-primary-500 dark:bg-primary-400/10 dark:text-primary-600 contrast-more:dark:border-primary-500"
href="/docs/misskey/"
>Misskey en Novoa
<span class="hextra-sidebar-collapsible-button"><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"></path></svg></span>
</a><div class="ltr:pr-0 overflow-hidden">
<ul class='relative flex flex-col gap-1 before:absolute before:inset-y-1 before:w-px before:bg-gray-200 before:content-[""] ltr:ml-3 ltr:pl-3 ltr:before:left-0 rtl:mr-3 rtl:pr-3 rtl:before:right-0 dark:before:bg-neutral-800'><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/actualizar/"
>Actualizar Misskey
</a>
</li><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/sys-units/"
>Integración al sistema
</a>
</li><li class="flex flex-col "><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/docs/misskey/http-server/"
>Servidor HTTP
</a>
</li></ul>
</div></li>
<li class="[word-break:break-word] mt-5 mb-2 px-2 py-1.5 text-sm font-semibold text-gray-900 first:mt-0 dark:text-gray-100">
<span class="cursor-default">Más información</span>
</li>
<li><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="/novoa/"
>Acerca de</a></li>
<li><a
class="flex items-center justify-between gap-2 cursor-pointer rounded px-2 py-1.5 text-sm transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] [word-break:break-word]
text-gray-500 hover:bg-gray-100 hover:text-gray-900 contrast-more:border contrast-more:border-transparent contrast-more:text-gray-900 contrast-more:hover:border-gray-900 dark:text-neutral-400 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 contrast-more:dark:text-gray-50 contrast-more:dark:hover:border-gray-50"
href="https://gohugo.io/documentation/"
target="_blank" rel="noreferer"
>Hugo Docs ↗</a></li>
</ul>
</div>
<div class=" justify-end sticky bottom-0 bg-white dark:bg-dark mx-4 py-4 shadow-[0_-12px_16px_#fff] flex items-center gap-2 dark:border-neutral-800 dark:shadow-[0_-12px_16px_#111] contrast-more:border-neutral-400 contrast-more:shadow-none contrast-more:dark:shadow-none border-t" data-toggle-animation="show"><div class="flex justify-items-start grow">
<button
title="Cambiar idioma"
data-state="closed"
class="language-switcher h-7 rounded-md px-2 text-left text-xs font-medium text-gray-600 transition-colors dark:text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 grow"
type="button"
aria-label="Cambiar idioma"
>
<div class="flex items-center gap-2 capitalize"><svg height=12 xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"/></svg><span>Español</span></div>
</button>
<ul
class="language-options hidden z-20 max-h-64 overflow-auto rounded-md ring-1 ring-black/5 bg-white py-1 text-sm shadow-lg dark:ring-white/20 dark:bg-neutral-800"
style="position: fixed; inset: auto auto 0px 0px; margin: 0px; min-width: 100px;"
>
<li class="flex flex-col">
<a
href="/docs/misskey/"
class="text-gray-800 dark:text-gray-100 hover:bg-primary-50 hover:text-primary-600 hover:dark:bg-primary-500/10 hover:dark:text-primary-600 relative cursor-pointer whitespace-nowrap py-1.5 transition-colors ltr:pl-3 ltr:pr-9 rtl:pr-3 rtl:pl-9"
>Español<span class="absolute inset-y-0 flex items-center ltr:right-3 rtl:left-3"><svg height=1em width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></span></a>
</li>
<li class="flex flex-col">
<a
href="/en/"
class="text-gray-800 dark:text-gray-100 hover:bg-primary-50 hover:text-primary-600 hover:dark:bg-primary-500/10 hover:dark:text-primary-600 relative cursor-pointer whitespace-nowrap py-1.5 transition-colors ltr:pl-3 ltr:pr-9 rtl:pr-3 rtl:pl-9"
>English</a>
</li>
</ul>
</div><button
title="Cambiar tema"
data-theme="light"
class="theme-toggle group h-7 rounded-md px-2 text-left text-xs font-medium text-gray-600 transition-colors dark:text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-primary-100/5 dark:hover:text-gray-50"
type="button"
aria-label="Cambiar tema"
>
<div class="flex items-center gap-2 capitalize"><svg height=12 class="group-data-[theme=light]:hidden" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg><svg height=12 class="group-data-[theme=dark]:hidden" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"/></svg></div>
</button>
</div></aside>
<nav class="hextra-toc order-last hidden w-64 shrink-0 xl:block print:hidden px-4" aria-label="table of contents">
<div class="hextra-scrollbar sticky top-16 overflow-y-auto pr-4 pt-6 text-sm [hyphens:auto] max-h-[calc(100vh-var(--navbar-height)-env(safe-area-inset-bottom))] ltr:-mr-4 rtl:-ml-4"><p class="mb-4 font-semibold tracking-tight">En esta página</p><ul>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="font-semibold inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#preparaciones-para-instalar-misskey">Preparaciones para instalar Misskey
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#crear-el-usuario">Crear el usuario
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#dependencias-del-sistema-">Dependencias del sistema 📦
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#hacer-una-base-de-datos-en-postgresql">Hacer una base de datos en PostgreSQL
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#preparar-el-entorno-de-compilaci%c3%b3n">Preparar el entorno de compilación
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#instalar-dependencias-de-javascript">Instalar dependencias de JavaScript
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#usuarios-de-compilaci%c3%b3n">Usuarios de compilación
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="font-semibold inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#configuraci%c3%b3n">Configuración
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="ltr:pl-4 rtl:pr-4 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#consideraciones-de-configuraci%c3%b3n">Consideraciones de configuración
</a>
</li>
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="font-semibold inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 contrast-more:text-gray-900 contrast-more:underline contrast-more:dark:text-gray-50 w-full break-words" href="#compilaci%c3%b3n">Compilación
</a>
</li></ul><ul></ul><ul></ul>
<div class="mt-8 border-t bg-white pt-8 shadow-[0_-12px_16px_white] dark:bg-dark dark:shadow-[0_-12px_16px_#111] sticky bottom-0 flex flex-col items-start gap-2 pb-8 dark:border-neutral-800 contrast-more:border-t contrast-more:border-neutral-400 contrast-more:shadow-none contrast-more:dark:border-neutral-400">
<button aria-hidden="true" id="backToTop" onClick="scrollUp();" class="transition-all transition duration-75 opacity-0 text-xs font-medium text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100 contrast-more:text-gray-800 contrast-more:dark:text-gray-50">
<span>Subir al inicio</span>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="inline ml-1 h-3.5 w-3.5 border rounded-full border-gray-500 hover:border-gray-900 dark:border-gray-400 dark:hover:border-gray-100 contrast-more:border-gray-800 contrast-more:dark:border-gray-50">
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5" />
</svg>
</button>
</div>
</div>
</nav>
<article class="w-full break-words flex min-h-[calc(100vh-var(--navbar-height))] min-w-0 justify-center pb-8 pr-[calc(env(safe-area-inset-right)-1.5rem)]">
<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12">
<div class="mt-1.5 flex items-center gap-1 overflow-hidden text-sm text-gray-500 dark:text-gray-400 contrast-more:text-current">
<div class="whitespace-nowrap transition-colors min-w-[24px] overflow-hidden text-ellipsis hover:text-gray-900 dark:hover:text-gray-100">
<a href="https://portal.novoa.nagoya/docs/">Documentación de Novoa</a>
</div><svg class="w-3.5 shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg><div class="whitespace-nowrap transition-colors font-medium text-gray-700 contrast-more:font-bold contrast-more:text-current dark:text-gray-100 contrast-more:dark:text-current">Misskey en Novoa</div>
</div>
<div class="content">
<h1>Misskey en Novoa</h1>
<p>Esta guía/documentación esta planteada para una instalación completamente manual sobre algún servidor gnu/linux como Debian de manera directa, es decir no hará uso de kubernetes, docker o cualquier otro software de virtualización, también asume que tienes un acceso a root mediante shell a tu sistema ya sea este un servidor virtual o uno montado en el hardware directamente.</p>
<p>Estoy adaptando un poco la guía que esta ahí fuera sobre misskey porque también fue lo que hice. Cuando inicié esta instancia recuerdo que la única documentación que existía estaba literalmente en chino y en <a href="https://misskey-hub.net/ja/docs/for-admin/install/guides/manual/" target="_blank" rel="noopener">japonés</a> ⬅️ Esa es la guía base y más actualizada sobre como instalar misskey.</p>
<h2>Preparaciones para instalar Misskey<span class="absolute -mt-20" id="preparaciones-para-instalar-misskey"></span>
<a href="#preparaciones-para-instalar-misskey" class="subheading-anchor" aria-label="Permalink for this section"></a></h2><h3>Crear el usuario<span class="absolute -mt-20" id="crear-el-usuario"></span>
<a href="#crear-el-usuario" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Primero crear la carpeta donde estará alojado todo lo pertinente a nuestra instancia</p>
<p><code>sudo mkdir /sys-users/</code> o cualquier ruta de archivo que se desee.</p>
<p>Posteriormente los <a href="/docs/sysadmin/#usuarios-en-linuxunix" >usuarios</a> deberían ser creados con privilegios mínimos:</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">adduser --system --disabled-password --disabled-login --shell<span class="o">=</span>/bin/false --home /sys-users/mk misskey</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<p><strong>misskey</strong> al final puede ser cambiado por cualquier otro nombre de usuario.</p>
<p>El comando anterior va a crear una carpeta donde todos los permisos los tiene el usuario recientemente creado en <code>/sys-users/mk</code>.</p>
<p>Quizá algunas de esas opciones sean redundantes como <code>--disabled-login --shell=/bin/false</code> pues no se puede iniciar sesión sin acceso a shell pero prefiero redundancia y explicidad, además de que no causa ningún problema.</p>
<p>Lo que cada una de estas opciones (<em>flags</em> en inglés) marca o configura es que:</p>
<ul>
<li>
<p><code>--system</code>: Crea un usuario del sistema con un uid &lt; 1000. Usuarios normales tienen un uid &gt; 1000.</p>
</li>
<li>
<p><code>--disabled-password</code>: El usuario no puede iniciar sesión usando una contraseña, solo se puede iniciar sesión desde o siendo super usuario o con un usuario con privilegios de super usuario.</p>
</li>
<li>
<p><code>--disabled-login</code>: Bloquea el intento de inicio de sesión.</p>
</li>
<li>
<p><code>--shell=/bin/false</code>: La opción shell configura la shell por defecto que usara el usuario, al marcar esta opción como falsa el usuario no podrá acceder a ningun entorno de la línea de comandos, es decir no podrá ejecutar ningun comando desde alguna terminal de manera directa.</p>
</li>
<li>
<p><code>--no-create-home</code>: el usuario misskey no tenga un directorio dentro de <code>/home</code>.</p>
</li>
<li>
<p><code>--base-dir</code><em>/DIRECTORIO_BASE</em>: Es donde todos los usuarios serán creados por defecto, y se concatena con el nombre del usuario. Por defecto es <code>/home</code> entonces en este caso si no se cambia nada el directorio y variable $HOME del usuario sería <code>/home/misskey</code>. Si solo se cambia esta opción y no la que sigue el directorio terminaría siendo algo como <code>/directorio-distinto/misskey</code>.</p>
</li>
<li>
<p><code>--home</code> <em>/DIRECTORIO_HOME</em>: En este caso es para más control sobre donde se colocará al usuario. Simplemente hay que poner la ruta completa de la carpeta como <code>/directorio-distinto/un-nombre-distinto</code> y ahí es donde se le asiganara el valor de $HOME al usuario, sin embargo hay que tomar en cuenta que el programa no creará ninguna carpeta así que hay que hacerlas directamente con <code>mkdir</code>.</p>
</li>
</ul>
<h3>Dependencias del sistema 📦<span class="absolute -mt-20" id="dependencias-del-sistema-"></span>
<a href="#dependencias-del-sistema-" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Dependiendo de que sistema operativo uses los comandos que tengas que utilizar para instalar programas serán distintos, si quieres ayuda con alguno me puedes contactar directamente en XMPP, pues estoy familiarizado con varias versiones de linux.</p>
<p>Antes de instalar las dependencias debes que saber que dependiendo de la versión de misskey (o sus forks) cada una de estos componentes variaran en las versiones mínimas necesarias, por ejemplo cuando yo instalé misskey por primera vez estaba usando postgres 13 y de hecho lo seguía usando incluso cuando ya no era soportado supuestamente y no resultó en ningún problema. Misskey tampoco hace una revisión de las versiones de los programas fuera de node, dicho esto, puede que sea una mejor opción optar por las versiones otorgadas en el repositorio base de tu sistema.</p>
<p>He adjuntado un link a cada uno de los programas necesarios para instalar y ejecturar misskey, quizá en algún futuro haga una documentación sobre como los instale yo en mi sistema ya que cada uno de estos links tiene instrucciones específicas:</p>
<ul>
<li>
<p><a href="https://github.com/nodesource/distributions" target="_blank" rel="noopener">Node.js</a> &gt;= 20.4.x ➡️ se usa como la base del servidor, misskey esta construido sobre node.</p>
</li>
<li>
<p><a href="https://www.postgresql.org/download/" target="_blank" rel="noopener">PostgreSQL</a> &gt;= 15.x ➡️ Base de datos donde se almacenarán todos los posts y las relaciones entre usuarios. instancias. etc. de manera permanente.</p>
</li>
<li>
<p><a href="https://redis.io/docs/install/install-redis/install-redis-on-linux/" target="_blank" rel="noopener">Redis</a> &gt;= 7.0 ➡️ Base de datos transaccional usada como caché, para listas y relaciones no permanentes.</p>
</li>
<li>
<p><a href="https://www.ffmpeg.org/download.html#build-linux" target="_blank" rel="noopener">FFmpeg</a> ➡️ Usado para pasar un formato de multimedia a otro.</p>
</li>
<li>
<p>En la guía original se menciona instalar <code>build-essential</code> para distribuciones basadas en Debian.</p>
</li>
<li>
<p>Varias utilidades usadas para el manejo del sistema como git y neo/vim.</p>
</li>
</ul>
<p>Asumiendo que esta usando Debian y agregaste todos esos repositorios al administrador de paquetes (o vas a usar solo los paquetes que provee Debian) tu comando final para instalarlos debería quedar algo como:</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo apt install build-essential nodejs postgresql redis ffmpeg</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<h3>Hacer una base de datos en PostgreSQL<span class="absolute -mt-20" id="hacer-una-base-de-datos-en-postgresql"></span>
<a href="#hacer-una-base-de-datos-en-postgresql" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Actualmente misskey no tiene una manera de crear usuarios en postgres automáticamente así que tendremos que hacer uno y establecer su contraseña y métodos de acceso de manera manual.</p>
<p>Primero cambiar al usuario postgres</p>
<p><code>su - postgres</code></p>
<p>Dentro de ese usuario se creará un usuario exclusivo de misskey para acceder a la base de datos desde el software.</p>
<p><code>createuser -P example-misskey-user</code></p>
<p>Este comando pedirá una contraseña que debe ser introducida 2 veces.</p>
<p>Finalmente vamos a hacer una base de datos para misskey con el usuario que acabamos de crear.</p>
<p><code>createdb -O example-misskey-user misskey-database</code></p>
<p>Sin haber nada más que hacer en postgres la manera de salir de la sesión es escribiendo exit, lo cual nos llevara a la sesión anterior.</p>
<h3>Preparar el entorno de compilación<span class="absolute -mt-20" id="preparar-el-entorno-de-compilación"></span>
<a href="#preparar-el-entorno-de-compilaci%c3%b3n" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Misskey al ser un progama escrito en JavaScript todas las librerías que usa son en este mismo lenguaje que tiene su propio administrador de paquetes fuera de apt/debian, para esto debemos habilitar <code>pnpm</code> y para la compilación y tener las caracteristicas de un servidor en producción se debe que declarar variable de entorno:</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo corepack <span class="nb">enable</span>
</span></span><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">NODE_ENV</span><span class="o">=</span>production</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<h3>Instalar dependencias de JavaScript<span class="absolute -mt-20" id="instalar-dependencias-de-javascript"></span>
<a href="#instalar-dependencias-de-javascript" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><h4>Usuarios de compilación<span class="absolute -mt-20" id="usuarios-de-compilación"></span>
<a href="#usuarios-de-compilaci%c3%b3n" class="subheading-anchor" aria-label="Permalink for this section"></a></h4><p>Hay bastantes maneras de hacer esto:</p>
<ol>
<li>
<p>Es mediante tu mismo usuario y despues cambiando la propiedad de la carpeta en la que instalaste misskey recursivamente. Esta manera es un poco sucia a falta de una mejor palabra en este momento, pero sirve y es la más sencilla.</p>
<ol>
<li>Aquí harías todos los pasos siguentes mediante tu usuario y despues dentro de la carpeta donde instalaste misskey ejecutar <code>sudo chown -R misskey:misskey .</code> - El punto dentro de cualquier shell toma el valor de la carpeta en la que estas actualmente, puedes revisar en que carpeta estas con otro comando <code>pwd</code> o en vez del punto puedes usar la <strong>ruta</strong> completa para seleccionar en que carpeta quieres efectuar el comando.</li>
</ol>
</li>
<li>
<p>Hacerlo todo desde el usuario misskey iniciando sesión, desde otro usuario para esto usaríamos el comando <code>su</code> que cambia de usuario, conscisamente <code>sudo su - misskey</code>.</p>
<ol>
<li>
<p>Hacerlo de esta manera es casi lo mismo que la anterior solo que ya no hay que cambiar la poseción de ningun arhivo.</p>
</li>
<li>
<p>Sin embargo tambien si habilitaste que misskey no pueda acceder a ninguna shell este paso será imposible de realizar a menos que cambies la configuración, así que tenlo en cuenta.</p>
</li>
</ol>
</li>
<li>
<p>La tercera forma que esta en medio de ambas es algo sencilla tambien y da los beneficios de ambas sin comprometer seguridad de alguna manera. No podemos acceder a una interfaz de linea de comandos como shell, pero sí es posible ejecutar comandos como ese otro usuario, para esto a todos los comandos que vayamos a ejecutar antes hay que añadirles <code>sudo -Hu misskey ...</code></p>
<ol>
<li>Un truco para realizar los comandos de una manera más sencilla es hacer un alias temporal dentro de la terminal simplemente ejecutando algo como <code>alias smk=&quot;sudo -Hu misskey&quot;</code> y ahora cada que ejecutes smk dentro de esa sesión el programa correra bajo el usuario misskey.</li>
</ol>
</li>
</ol>
<p>En todos los casos debemos que ir a la carpeta $HOME de nuestro usuario, en este caso con el comando <code>cd /sys-users/mk</code></p>
<hr>
<p>Para todas las opciones deberas ejecutar los siguientes comandos:</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone --recursive https://github.com/misskey-dev/misskey.git -b master
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> misskey
</span></span><span class="line"><span class="cl">git submodule update --init
</span></span><span class="line"><span class="cl">pnpm install --frozen-lockfile</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<hr>
<p>Los cuales clonan el repositiorio y los archivos base para compilar misskey y pnpm instala dependencias de javascript de este.</p>
<h2>Configuración<span class="absolute -mt-20" id="configuración"></span>
<a href="#configuraci%c3%b3n" class="subheading-anchor" aria-label="Permalink for this section"></a></h2><p>Hay un archivo plantilla para la configuración de misskey, como en muchos paquetes de Debian. Este paso es relativamente sencillo pues no hay que configurar mucho y el archivo se explica a sí mismo. Hay algunas notas importantes como <mark>nunca cambiar el nombre de dominio de un servidor una vez que haya empezado a utilizarlo.</mark></p>
<p><code>cp .config/example.yml .config/default.yml</code>: Copia <code>.config/example.yml</code> y lo renombra a <code>default.yml</code>.</p>
<p>Y este último archivo editalo con tu editor de textos favoritos y ya que probablemente estas haciendo esto desde una terminal los comandos que podrias usar son <code>nano</code> <code>vi</code> <code>vim</code> <code>nvim</code> etc. dependiendo de que tengas instalado.</p>
<h3>Consideraciones de configuración<span class="absolute -mt-20" id="consideraciones-de-configuración"></span>
<a href="#consideraciones-de-configuraci%c3%b3n" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>En la configuración por defecto todos los archivos que se suban al servidor (drive), sean imágenes, vídeos, pdf, lo que sea, todo se almacenará dentro de la carpeta raíz donde se descargó el repositorio mediante git en una carpeta llamada <code>files/</code> y es un poco díficil de administrar sin usar misskey (y no se debería hacer pues también hay una relación existente en la base de datos) pues se guardan con nombres generados por el programa.</p>
<h2>Compilación<span class="absolute -mt-20" id="compilación"></span>
<a href="#compilaci%c3%b3n" class="subheading-anchor" aria-label="Permalink for this section"></a></h2><p>Son solo dos comandos, uno va a compilar el software y el segundo va a dejar todo listo para el uso del programa haciendo modificaciones necesarias en la base de datos.</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pnpm run build
</span></span><span class="line"><span class="cl">pnpm run init</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<p>Finalmente vamos a iniciar el servidor con:</p>
<div class="code-block relative mt-6 first:mt-0 group/code"><div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">NODE_ENV</span><span class="o">=</span>production pnpm run start</span></span></code></pre></div></div><div class="opacity-0 transition group-hover/code:opacity-100 flex gap-1 absolute m-[11px] right-0 top-0">
<button
class="code-copy-btn group/copybtn transition-all active:opacity-50 bg-primary-700/5 border border-black/5 text-gray-600 hover:text-gray-900 rounded-md p-1.5 dark:bg-primary-300/10 dark:border-white/10 dark:text-gray-400 dark:hover:text-gray-50"
title="Copy code"
>
<div class="group-[.copied]/copybtn:hidden copy-icon pointer-events-none h-4 w-4"></div>
<div class="hidden group-[.copied]/copybtn:block success-icon pointer-events-none h-4 w-4"></div>
</button>
</div>
</div>
<h1>Errores de instalación</h1><p>Limpiar todo el caché manualmente y reinstalar por completo.</p>
<ul>
<li><code>pnpm run clean</code> y <code>pnpm run clean-all</code></li>
<li><code>pnpm rebuild</code></li>
</ul>
<h1>Agradecimientos y recursos de referencia:</h1><p><a href="https://docs-develop.pleroma.social/" target="_blank" rel="noopener">Pleroma Documentation</a></p>
<p><a href="https://misskey-hub.net/ja/docs/for-admin/install/guides/manual/" target="_blank" rel="noopener">Misskeyを手動で構築する | Misskey Hub</a></p>
<p><a href="https://hide.ac/articles/iFwm5HDvH" target="_blank" rel="noopener">Ubuntu Misskey Installation Instructions</a>
<a href="https://hide.ac/articles/Y504SIabp" target="_blank" rel="noopener">Description of the instance settings and other settings to be set up first on a Misskey instance</a>
<a href="https://hide.ac/articles/MC7WsPDqw" target="_blank" rel="noopener">Set up squid proxies to protect Misskey</a>
<a href="https://hide.ac/articles/E2Ea3cauk" target="_blank" rel="noopener">Let&rsquo;s back up Misskey&rsquo;s database [OCI Object Storage]</a>
<a href="https://hide.ac/articles/csERs-7SU" target="_blank" rel="noopener">Use Oracle Cloud Infrastructure Always Free to set up Misskey instances for free</a>
<a href="https://hide.ac/articles/qdajqdvj1" target="_blank" rel="noopener">If your Always Free OCI Arm instance is stopped&hellip;</a></p>
</div>
<div class="mt-12 mb-8 block text-xs text-gray-500 ltr:text-right rtl:text-left dark:text-gray-400">Última actualización <time datetime="2024-01-13T22:32:44.000Z">13 de enero de 2024</time></div>
<div class="mb-8 flex items-center border-t pt-8 dark:border-neutral-800 contrast-more:border-neutral-400 dark:contrast-more:border-neutral-400 print:hidden"><a
href="/docs/sysadmin/"
title="Administración de servidores"
class="flex max-w-[50%] items-center gap-1 py-4 text-base font-medium text-gray-600 transition-colors [word-break:break-word] hover:text-primary-600 dark:text-gray-300 md:text-lg ltr:pr-4 rtl:pl-4"
><svg class="inline h-5 shrink-0 ltr:rotate-180" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg>Administración de servidores</a><a
href="/docs/misskey/http-server/"
title="Servidor HTTP"
class="flex max-w-[50%] items-center gap-1 py-4 text-base font-medium text-gray-600 transition-colors [word-break:break-word] hover:text-primary-600 dark:text-gray-300 md:text-lg ltr:ml-auto ltr:pl-4 ltr:text-right rtl:mr-auto rtl:pr-4 rtl:text-left"
>Servidor HTTP<svg class="inline h-5 shrink-0" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg></a></div>
</main>
</article>
</div>
<footer class="hextra-footer bg-gray-100 pb-[env(safe-area-inset-bottom)] dark:bg-neutral-900 print:bg-transparent"><div
class="max-w-screen-xl mx-auto flex justify-center py-12 pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)] text-gray-600 dark:text-gray-400 md:justify-start"
>
<div class="flex w-full flex-col items-center sm:items-start">
</div>
</div>
</footer>
</body>
<script defer src="/js/main.min.a0311b78f3a0a229e5789d65bad5f0d6127911b5a7643b3f83714b8de2f52e03.js" integrity="sha256-oDEbePOgoinleJ1lutXw1hJ5EbWnZDs/g3FLjeL1LgM="></script>
<script defer src="/lib/flexsearch/flexsearch.bundle.min.0425860527cc9968f9f049421c7a56b39327d475e2e3a8f550416be3a9134327.js" integrity="sha256-BCWGBSfMmWj58ElCHHpWs5Mn1HXi46j1UEFr46kTQyc="></script>
<script defer src="/es.search.min.ced554fa9fb00d08f43737c0ce27b4adf5cdf36086f3d69dd33fb94c3d8be0bd.js" integrity="sha256-ztVU&#43;p&#43;wDQj0NzfAzie0rfXN82CG89ad0z&#43;5TD2L4L0="></script>
</html>