1 line
No EOL
24 KiB
JSON
1 line
No EOL
24 KiB
JSON
{"/docs/":{"data":{"":"Este espacio es para la documentación general del servidor, en cada sección subirñe documentación pertinente a cada servicio.\nIré avanzando lentamente porque me da un poco de pereza y tengo tambien muchas otras cosas que hacer, lo que ves es lo que hay aunque puede que aveces suceda que no actualize la página.\nYa que mis servidores usan Debian y OpenBSD todo lo escrito en la documentación y guías sera en los entornos de alguno de estos sistemas.\nComparto el repositorio el cual esta aquí↗ por transparencia y por si dejo de subir actualizaciones al servidor."},"title":"Documentación de Novoa"},"/docs/fediverso/":{"data":{"":"Por cierto en esta sección pondré muchas “páginas” que tenía en misskey.\nSon varías las bifurcaciones del fediverso, por un lado, esta pleroma y el otro mastodon, mientras en el medio quizás un tanto aislado se encuentra misskey, pues su funcionalidad u orientación del software y proyecto es distinta a la de los otros dos equivalencias de twitter.\nSé que nada de lo que digo ahora tiene sentido para ti si vienes de fuera, pero lo tendrá al final de este texto.\nEl fediverso es una red interconectada de distintos servidores (o instancias) que operan y se comunican mediante un protocolo llamado Activity Pub (sin embargo, también hay otros protocolos) lo que esto permite es que diferentes sitios compartan información de sus usuarios unos con otros, en otras palabras los servidores se comunican y de esta manera también sus usuarios.\nHay varias orientaciones en el fediverso, distintos tipos de software o servidores que se orientan a distintas tareas, por ejemplo peertube que busca ser una alternativa federada a youtube. Donde estamos ahora es en el lado social, interactivo y variado del fediverso; Mastodon que se creó para ser tan cercano a twitter como le sea posible, Pleroma creado para ser compatible con mastodon, pero al mismo tiempo con sus propias peculiaridades y finalmente Misskey, donde estás ahora leyendo esto si eres usuario de esta instancia, que como te darás cuenta es más bien un software que plantea ser sí mismo con la ocurrencia de que también es federado y se comunica con los otros dos tipos de instancia.\nPuedes identificar cada una de estas por sus iconos en algunas ocasiones, mástodon es azul con un elefante, pleroma por defecto tiene una P naranja con un fondo oscuro y algunos de sus administradores le ponen también una pl a su subdominio, por otro lado, algunos administradores de misskey le ponen una mk a su dirección web (mk.dirección.tld).\nHay otros recursos que explican en mucho más detalle lo que es el fediverso como los que enlazaré a continuación (aunque están en inglés). Personalmente, pienso que es el futuro y de lo que nunca nos deberíamos haber desviado con las web centralizada de FAGMAN (Facebook, Amazon. Google, Microsoft, Apple, Netflix), somos entonces la alternativa y los pocos que nos hemos salido de ahí por una razón u otra.\nEs así también un oasis o un relicario de la era olvidada del internet de los principios de los 2000s y quizás un poco antes de, de la cultura que también sobrevivió de una manera u otra en 4chan y otros foros aislados, si eres de fuera, tienes que comprender algo crucial, y eso es el anonimato, este internet se rige por avatares, no por tu persona ‘real’, de esta manera “culturalmente” no es esperado que des información personal, pues es más bien confidencial pues es completamente abierto al público, la idea, de que todo lo que se sube al internet permanece ahí para siempre es completamente verdadera aquí en el fediverso, así que anda con cuidado y más allá de eso, diviértete con tus experiencias aquí, con cualquier icono que hayas seleccionado, quizás y hasta es más verdadero e interesante de lo que imaginas ;)","historia-del-fediverso#Historia del Fediverso":"Gente con mucho mejor prosa que la mía actual ya ha escrito sobre los temas de esta página (sin embargo en inglés) recomiendo mucho su lectura si es de interés:\nGNU Social y el inicio de Mastodon - https://robek.world/featured/what-is-gnu-social-and-is-mastodon-social-a-twitter-clone/\nOtra reflexión antigua sobre el Fediverso por Lain(o lambdalambda, creador de Pleroma) - https://robek.world/futurology/an-admin-what-if-there-was-twitter-without-nazis/","más-información-sobre-el-fediverso#Más información sobre el fediverso:":"https://fediverse.party/\nhttps://jointhefedi.com/\nFediverse Observer | Misskey\nGitHub - emilebosch/awesome-fediverse: A curated, collaborative list of awesome Fediverse resources"},"title":"Fediverso"},"/docs/fediverso/disclaimer/":{"data":{"":"Robado sin descaro de misskey-hub, pero sigue siendo bastante válido para esta instancia.","consideraciones-importantes#Consideraciones importantes":"Hay algunos puntos que deben tenerse en cuenta al utilizar servicios que utilizan Misskey.\nDebido a su naturaleza descentralizada, una vez subidos, los datos no están garantizados para ser eliminados de todos los demás servidores, incluso si se borran.(Sin embargo, esto también es cierto para Internet en general). Incluso si un mensaje se crea como privado, no hay garantía de que los otros servidores lo traten también como privado, así que por favor, ten cuidado cuando publiques información personal o confidencial (aunque esto también ocurre en Internet en general).\nPor favor, comprenda estos puntos y disfrute utilizando nuestros servicios."},"title":"Disclaimer"},"/docs/misskey/":{"data":{"":"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.\nEstoy 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 japonés ⬅️ Esa es la guía base y más actualizada sobre como instalar misskey.","agradecimientos-y-recursos-de-referencia#Agradecimientos y recursos de referencia:":"Pleroma Documentation\nMisskeyを手動で構築する | Misskey Hub\nUbuntu Misskey Installation Instructions Description of the instance settings and other settings to be set up first on a Misskey instance Set up squid proxies to protect Misskey Let’s back up Misskey’s database [OCI Object Storage] Use Oracle Cloud Infrastructure Always Free to set up Misskey instances for free If your Always Free OCI Arm instance is stopped…","compilación#Compilación":"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.\npnpm run build pnpm run init Finalmente vamos a iniciar el servidor con:\nNODE_ENV=production pnpm run start ","configuración#Configuración":"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 nunca cambiar el nombre de dominio de un servidor una vez que haya empezado a utilizarlo.\ncp .config/example.yml .config/default.yml: Copia .config/example.yml y lo renombra a default.yml.\nY 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 nano vi vim nvim etc. dependiendo de que tengas instalado.\nConsideraciones de configuración 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 files/ 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.","errores-de-instalación#Errores de instalación":"Limpiar todo el caché manualmente y reinstalar por completo.\npnpm run clean y pnpm run clean-all pnpm rebuild ","preparaciones-para-instalar-misskey#Preparaciones para instalar Misskey":"Crear el usuario Primero crear la carpeta donde estará alojado todo lo pertinente a nuestra instancia\nsudo mkdir /sys-users/ o cualquier ruta de archivo que se desee.\nPosteriormente los usuarios deberían ser creados con privilegios mínimos:\nadduser --system --disabled-password --disabled-login --shell=/bin/false --home /sys-users/mk misskey misskey al final puede ser cambiado por cualquier otro nombre de usuario.\nEl comando anterior va a crear una carpeta donde todos los permisos los tiene el usuario recientemente creado en /sys-users/mk.\nQuizá algunas de esas opciones sean redundantes como --disabled-login --shell=/bin/false 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.\nLo que cada una de estas opciones (flags en inglés) marca o configura es que:\n--system: Crea un usuario del sistema con un uid \u003c 1000. Usuarios normales tienen un uid \u003e 1000.\n--disabled-password: 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.\n--disabled-login: Bloquea el intento de inicio de sesión.\n--shell=/bin/false: 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.\n--no-create-home: el usuario misskey no tenga un directorio dentro de /home.\n--base-dir/DIRECTORIO_BASE: Es donde todos los usuarios serán creados por defecto, y se concatena con el nombre del usuario. Por defecto es /home entonces en este caso si no se cambia nada el directorio y variable $HOME del usuario sería /home/misskey. Si solo se cambia esta opción y no la que sigue el directorio terminaría siendo algo como /directorio-distinto/misskey.\n--home /DIRECTORIO_HOME: 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 /directorio-distinto/un-nombre-distinto 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 mkdir.\nDependencias del sistema :package: 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.\nAntes 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.\nHe 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:\nNode.js \u003e= 20.4.x ➡️ se usa como la base del servidor, misskey esta construido sobre node.\nPostgreSQL \u003e= 15.x ➡️ Base de datos donde se almacenarán todos los posts y las relaciones entre usuarios. instancias. etc. de manera permanente.\nRedis \u003e= 7.0 ➡️ Base de datos transaccional usada como caché, para listas y relaciones no permanentes.\nFFmpeg ➡️ Usado para pasar un formato de multimedia a otro.\nEn la guía original se menciona instalar build-essential para distribuciones basadas en Debian.\nVarias utilidades usadas para el manejo del sistema como git y neo/vim.\nAsumiendo 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:\nsudo apt install build-essential nodejs postgresql redis ffmpeg Hacer una base de datos en PostgreSQL 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.\nPrimero cambiar al usuario postgres\nsu - postgres\nDentro de ese usuario se creará un usuario exclusivo de misskey para acceder a la base de datos desde el software.\ncreateuser -P example-misskey-user\nEste comando pedirá una contraseña que debe ser introducida 2 veces.\nFinalmente vamos a hacer una base de datos para misskey con el usuario que acabamos de crear.\ncreatedb -O example-misskey-user misskey-database\nSin 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.\nPreparar el entorno de compilación 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 pnpm y para la compilación y tener las caracteristicas de un servidor en producción se debe que declarar variable de entorno:\nsudo corepack enable export NODE_ENV=production Instalar dependencias de JavaScript Usuarios de compilación Hay bastantes maneras de hacer esto:\nEs 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.\nAquí harías todos los pasos siguentes mediante tu usuario y despues dentro de la carpeta donde instalaste misskey ejecutar sudo chown -R misskey:misskey . - 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 pwd o en vez del punto puedes usar la ruta completa para seleccionar en que carpeta quieres efectuar el comando. Hacerlo todo desde el usuario misskey iniciando sesión, desde otro usuario para esto usaríamos el comando su que cambia de usuario, conscisamente sudo su - misskey.\nHacerlo de esta manera es casi lo mismo que la anterior solo que ya no hay que cambiar la poseción de ningun arhivo.\nSin 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.\nLa 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 sudo -Hu misskey ...\nUn truco para realizar los comandos de una manera más sencilla es hacer un alias temporal dentro de la terminal simplemente ejecutando algo como alias smk=\"sudo -Hu misskey\" y ahora cada que ejecutes smk dentro de esa sesión el programa correra bajo el usuario misskey. En todos los casos debemos que ir a la carpeta $HOME de nuestro usuario, en este caso con el comando cd /sys-users/mk\nPara todas las opciones deberas ejecutar los siguientes comandos:\ngit clone --recursive https://github.com/misskey-dev/misskey.git -b master cd misskey git submodule update --init pnpm install --frozen-lockfile Los cuales clonan el repositiorio y los archivos base para compilar misskey y pnpm instala dependencias de javascript de este."},"title":"Misskey en Novoa"},"/docs/misskey/actualizar/":{"data":{"":"Para actualizar a la versión de misskey más reciente, cualquier versión posterior a la instalación o migrarse a algún fork los comandos generales son:\nPara actualizar a la versión más reciente dentro de la rama master, que es la principal y supuestamente estable:\ngit checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate Para actualizar a un lanzamiento o versión específica de misskey:\ngit checkout (git tag -l | grep -v 'rc[0-9]*' | sort -V | tail -n 1)\no\ngit checkout $TAG por ejemplo git checkout 2023.12.2\ny despues:\ngit pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate Ambas métodos de actualización son un poco automatizados en especial en la parte del comando git.\nEn detalle y la forma correcta y más tardada de hacerlo sería checar primero las notas o cambios (en japonés).\nObtener los cambios en el repositorio en nuestra copia local y situarnos en la rama que queramos usar, ya sea master, develop o alguna versión particular.\ngit fetch git checkout $TAG Posteriormente comparar las diferencias o cambios que se han hecho dentro del código.\ngit status Habiendo comparado y estando seguros de que no habrá conflictos vamos a actualizar la rama sobre la que estamos trabajando (la que seleccionamos despues del checkout).\ngit merge Y finalmente actualizar misskey, el primer comando para actualizar las dependencias de JavaScript, el segundo para compilar el programa y el tercero para efectuar todos los cambios en la base de datos necesaria para acomodar a la nueva versión.\nNODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate "},"title":"Actualizar Misskey"},"/docs/misskey/http-server/":{"data":{"":"Usa e instala caddy\nModifica /etc/caddy/Caddyfile\nAñade\ntu.dominio.tld { reverse_proxy localhost:$PUERTO_DE_MISSKEY } Inicia caddy."},"title":"Servidor HTTP"},"/docs/misskey/sys-units/":{"data":{"":"Esta parte es un poco complicada porque habla de linux como sistema de nuevo.\nNo voy a ahondar en detalle porque el archivo ya explica (aunque en inglés) y estoy cansado.\nEsta es la unidad del sistema que uso en Novoa, como es algo que escribí de manera personalizada lo he situado dentro de /etc/systemd/system/misskey.service para que no se confundiera con otros archivos.\nArchivo directo para descarga [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/pnpm start WorkingDirectory=/other-dir/misskey Environment=\"NODE_ENV=production\" TimeoutSec=60 SyslogIdentifier=misskey Restart=always ; Some security directives. ; Use private /tmp and /var/tmp folders inside a new file system namespace, which are discarded after the process stops. PrivateTmp=true ; The /home, /root, and /run/user folders can not be accessed by this service anymore. If your misskey user has its home folder in one of the restricted places, or use one of these folders as its working directory, you have to set this to false. ProtectHome=true ; Sets up a new /dev mount for the process and only adds API pseudo devices like /dev/null, /dev/zero or /dev/random but not physical devices. Disabled by default because it may not work on devices like the Raspberry Pi. PrivateDevices=true ; Drops the sysadmin capability from the daemon. CapabilityBoundingSet=~CAP_SYS_ADMIN # Make the system tree read-only. ProtectSystem=strict # Make some paths aviable and readable by the process ReadWritePaths=/other-dir/misskey # Allocate a separate /tmp. PrivateTmp=yes # Ensure the service can never gain new privileges. NoNewPrivileges=yes # Prohibit access to any kind of namespacing. RestrictNamespaces=yes # Make cgroup file system hierarchy inaccessible. ProtectControlGroups=yes # Deny kernel module loading. ProtectKernelModules=yes # Make kernel variables (e.g. /proc/sys) read-only. ProtectKernelTunables=yes # Deny hostname changing. ProtectHostname=yes # Deny realtime scheduling. RestrictRealtime=yes # Deny access to the kernel log ring buffer. ProtectKernelLogs=yes # Deny setting the hardware or system clock. ProtectClock=yes # Filter dangerous system calls. The following is listed as safe basic # choice in systemd.exec(5). SystemCallArchitectures=native # Deny kernel execution domain changing. LockPersonality=yes # Deny memory mappings that are writable and executable. # Node fucking dies if this is enabled. #MemoryDenyWriteExecute=yes [Install] WantedBy=multi-user.target Después de copiar y pegar esto y hacer respectivas modificaciones como en WorkingDirectory con systemd puedes iniciar el servicio/programa y notarás que utiliza el usuario misskey para ello.\nsudo systemctl daemon-reload sudo systemctl start misskey Puedes utilizar este comando para habilitar que se inicie automáticamente al encender el servidor.\nsudo systemctl enable misskey "},"title":"Integración al sistema"},"/docs/sysadmin/":{"data":{"":"","recomendaciones-generales#Recomendaciones generales":"Creo que en primer lugar debes saber y conocer el entorno y/o sistema con el que estas trabajando, en mis servidores he optado por Debian por su versatilidad (en términos de servidores), disponibilidad y estabilidad.\nSobre Debian debes de saber que hay muchos paquetes o software de servidor que puedes instalar directamente desde su administrador de paquetes, no teniendo que compilar el software ni variables de entorno ni nada, lo único que quedaría en manos del administrador sería justamente administrar los servicios, sin necesidad de complicaciones en absoluto.","usuarios-en-linuxunix#Usuarios en linux/UNIX":"Estos sistemas fueron diseñados desde un inicio para ser utilizados por varios usuarios de manera simultanea, cada uno con un entorno más o menos aisaldo unos con otros, es decir los programas y datos usados por un usuario no pueden ser usados por otro y viceversa.\nSin embargo también hay un usuario principal llamado super usuario, este usuario también es conocido como root, que es el usuario que puede cambiar todas las configuraciones del sistema e instalar y ejecutar programas a su antojo y sobre otros usuarios, es el usuario que tiene control sobre todo y con el que también se terminan realizando multiples tareas de mantenimiento y administración (como la actualización de software).\nSiendo este usuario tan imporante es una buena idea usarlo en la menor medida si no sabes exactamente lo que el comando que estas usando esta realmente realizando, de esta manera, como es un poco imposible verificar y checar todo el código existente en tu sistema lo que se realiza de manera general es hacer un usuario por cada servicio o programa que estes ejecutando (que es también lo que hacen varias distribuciones como Debian).\nHe de mencionar que hay programas más complejos que quizá requieran el uso de grupos como tareas de respaldo pero eso lo detallaré en otra entrada.\nPrivilegios de usuarios Lo mejor aquí es que ya que son usuarios de alguna u otra manera virtual, creados solo para ejecutar un programa los queremos de una manera aislada y con los privilegios mínimos que se les puedan otorgar, así si el servicio que operamos tiene una falla causará el menor daño en el sistema, el propósito de esto es mitigar las superficie de ataque y este es un patrón es algo usado en todos los programas, como en sus usuarios, sus entornos de ejecución y sus unidades de servicio."},"title":"Administración de servidores"},"/docs/sysadmin/util/":{"data":{"programas-y-utilidades#Programas y utilidades":"Programas y utilidadescurl neovim git"},"title":"Servidores"},"/novoa/":{"data":{"centeresta-huevada-sigue-en-construccióncenter#\u003ccenter\u003eESTA HUEVADA SIGUE EN CONSTRUCCIÓN\u003c/center\u003e":"This is the about page.\nAquí no hay nada aún pero haré un copy paste supongo.\nESTA HUEVADA SIGUE EN CONSTRUCCIÓN"},"title":"Acerca de Novoa"}} |