Misskey Docs

This commit is contained in:
ren 2024-01-13 22:32:44 -06:00
parent 648a51a1f7
commit e7a4df538a
22 changed files with 632 additions and 136 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View file

@ -1,91 +0,0 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="description" content="Los servicios del sitio.">
<meta name="author" content="Sarvo">
<meta property="og:title" content="Servicios en Novoa">
<meta property="og:type" content="website">
<meta property="og:url" content="https://novoa.nagoya">
<meta property="og:description" content="NovoaS">
<meta property="og:image" content="image.png">
<title>Novoa</title>
<link rel="stylesheet" href="./style.css">
<link rel="icon" href="./favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<style>
h1 {text-align: center;
color: green;
}
p {text-align: center;}
div {text-align: center;}
body {background-color: black;}
ul {
text-align: center;
border-left: 25px solid blue;
background-color: black;
list-style-type: cjk-ideographic;
list-style-image: url('abstract-shape-mini.png');
padding: 10px 3px;
color: white;
}
a:link {
color: green;
background-color: transparent;
text-decoration: none;
}
a:visited {
color: red;
background-color: transparent;
text-decoration: none;
}
a:hover {
color: white;
background-color: transparent;
text-decoration: underline;
}
a:active {
color: yellow;
background-color: transparent;
text-decoration: underline;
}
#handles {
color: white;
}
</style>
</head>
<body>
<main>
<h1>Lista de servicios</h1>
<ul>
<a href="https://novoa.nagoya/"><li>Misskey: Ventana al Fediverso</li></a>
<a href="https://xmpp.novoa.nagoya/"><li>Movim: Cliente XMPP</li></a>
<a href="https://novoa.nagoya:34371/register_web/"><li>Registro en el servidor XMPP</li></a>
<li>Mumble ↣ https://novoa.nagoya:64738</li>
<a href="https://arroyo.novoa.nagoya/"><li>Owncast - Contactame en XMPP</li></a>
<a href="https://kinema.novoa.nagoya/"><li>Kinoplex - Contactame en XMPP</li></a>
<li>Wireguard (VPN) - Contactame en XMPP</li>
<li>Unbound - Resolvedor DNS pero esta medio roto</li>
<a href="https://arca.novoa.nagoya/"><li>Servicio de almacenamiento persistente</li></a>
<a href="https://flux.novoa.nagoya/"><li>Servidor Miniflux para RSS</li></a>
<a href="https://gemini.novoa.nagoya/"><li>Blog en geminispace ahora aquí</a> - En construcción</li>
<li>Y dos más</li>
</ul>
<p id="handles">XMPP: <a href="xmpp:sarvo@novoa.nagoya">sarvo@novoa.nagoya</a></p>
<p id="handles">Fediverso: <a href="https://novoa.nagoya/@sarvo">@sarvo@novoa.nagoya</a></p>
</main>
<script src="index.js"></script>
</body>
</html>

View file

@ -0,0 +1,72 @@
[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

View file

@ -82,7 +82,7 @@ menu:
weight: 1
- identifier: about
name: "Acerca de"
pageRef: "/about"
pageRef: "/novoa"
weight: 2
- identifier: hugoDocs
name: "Hugo Docs ↗"

View file

@ -11,7 +11,7 @@ Y esta completamente en construcción pero la publicaré de todas formas.
{{< cards >}}
{{< card link="docs" title="Documentación" icon="book-open" >}}
{{< card link="about" title="Acerca de" icon="user" >}}
{{< card link="novoa" title="Acerca de esta servidor" icon="user" >}}
{{< /cards >}}
## Documentación del tema

View file

@ -1,20 +1,13 @@
---
title: Documentation
next: first-page
title: Documentación de Novoa
date: 2024-01-13T13:59:34-06:00
next: docs/sysadmin
---
This is a demo of the theme's documentation layout.
Este espacio es para la documentación general del servidor, en cada sección subirñe documentación pertinente a cada servicio.
Y aquí iré avanzando muy lentamente sobre la documentación de mi instancia y sobre la administración de fedi en general.
Iré 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.
## Hello, World!
Ya 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.
```go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
```
Comparto el repositorio el cual esta [aquí↗](https://git.froth.zone/ren/Novoa) por transparencia y por si dejo de subir actualizaciones al servidor.

View file

@ -0,0 +1,39 @@
---
title: "Fediverso"
date: 2024-01-13T21:39:10-06:00
draft: false
---
<u>Por cierto en esta sección pondré muchas "páginas" que tenía en [misskey](https://novoa.nagoya/@sarvo/pages/Misskey).</u>
Son 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.
Sé que nada de lo que digo ahora tiene sentido para ti si vienes de fuera, pero lo tendrá al final de este texto.
El 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.
Hay 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.
Puedes 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).
Hay 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.
Es 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 ;)
## Más información sobre el fediverso:
[https://fediverse.party/](https://fediverse.party/)
https://jointhefedi.com/
[Fediverse Observer | Misskey](https://misskey.fediverse.observer/map)
[GitHub - emilebosch/awesome-fediverse: A curated, collaborative list of awesome Fediverse resources](https://github.com/emilebosch/awesome-fediverse)
## 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:
GNU Social y el inicio de Mastodon - https://robek.world/featured/what-is-gnu-social-and-is-mastodon-social-a-twitter-clone/
Otra 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/

View file

@ -0,0 +1,16 @@
---
title: "Disclaimer"
date: 2024-01-13T22:01:28-06:00
draft: false
---
Robado sin descaro de misskey-hub, pero sigue siendo bastante válido para esta instancia.
## Consideraciones importantes
Hay algunos puntos que deben tenerse en cuenta al utilizar servicios que utilizan Misskey.
Debido 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).
Por favor, comprenda estos puntos y disfrute utilizando nuestros servicios.

View file

@ -1,9 +0,0 @@
---
title: Demo Page
type: docs
prev: /
next: docs/folder/
---
A simple demo page.

View file

@ -1,12 +0,0 @@
---
title: Folder
type: docs
prev: docs/first-page
next: docs/folder/leaf
sidebar:
open: true
---
Pages can be organized into folders.
lol

View file

@ -1,7 +0,0 @@
---
title: Leaf Page
type: docs
prev: docs/folder/
---
This page is under a folder.

View file

@ -0,0 +1,185 @@
---
title: Misskey en Novoa
prev: docs/sysadmin
next: http-server
date: 2024-01-13T13:29:17-06:00
---
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.
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 [japonés](https://misskey-hub.net/ja/docs/for-admin/install/guides/manual/) ⬅️ Esa es la guía base y más actualizada sobre como instalar misskey.
## Preparaciones para instalar Misskey
### Crear el usuario
Primero crear la carpeta donde estará alojado todo lo pertinente a nuestra instancia
`sudo mkdir /sys-users/` o cualquier ruta de archivo que se desee.
Posteriormente los [usuarios](/docs/sysadmin/#usuarios-en-linuxunix) deberían ser creados con privilegios mínimos:
```bash
adduser --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.
El comando anterior va a crear una carpeta donde todos los permisos los tiene el usuario recientemente creado en `/sys-users/mk`.
Quizá 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.
Lo que cada una de estas opciones (*flags* en inglés) marca o configura es que:
- `--system`: Crea un usuario del sistema con un uid < 1000. Usuarios normales tienen un uid > 1000.
- `--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.
- `--disabled-login`: Bloquea el intento de inicio de sesió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.
- `--no-create-home`: el usuario misskey no tenga un directorio dentro de `/home`.
- `--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`.
- `--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`.
### Dependencias 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.
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.
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:
- [Node.js](https://github.com/nodesource/distributions) >= 20.4.x ➡️ se usa como la base del servidor, misskey esta construido sobre node.
- [PostgreSQL](https://www.postgresql.org/download/) >= 15.x ➡️ Base de datos donde se almacenarán todos los posts y las relaciones entre usuarios. instancias. etc. de manera permanente.
- [Redis](https://redis.io/docs/install/install-redis/install-redis-on-linux/) >= 7.0 ➡️ Base de datos transaccional usada como caché, para listas y relaciones no permanentes.
- [FFmpeg](https://www.ffmpeg.org/download.html#build-linux) ➡️ Usado para pasar un formato de multimedia a otro.
- En la guía original se menciona instalar `build-essential` para distribuciones basadas en Debian.
- Varias utilidades usadas para el manejo del sistema como git y neo/vim.
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:
```bash
sudo 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.
Primero cambiar al usuario postgres
`su - postgres`
Dentro de ese usuario se creará un usuario exclusivo de misskey para acceder a la base de datos desde el software.
`createuser -P example-misskey-user`
Este comando pedirá una contraseña que debe ser introducida 2 veces.
Finalmente vamos a hacer una base de datos para misskey con el usuario que acabamos de crear.
`createdb -O example-misskey-user misskey-database`
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.
### Preparar 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:
```bash
sudo corepack enable
export NODE_ENV=production
```
### Instalar dependencias de JavaScript
#### Usuarios de compilación
Hay bastantes maneras de hacer esto:
1. 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.
1. Aquí 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.
2. 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`.
1. Hacerlo de esta manera es casi lo mismo que la anterior solo que ya no hay que cambiar la poseción de ningun arhivo.
2. 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.
3. 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 `sudo -Hu misskey ...`
1. 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 `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`
----------------------------------------------------------------
Para todas las opciones deberas ejecutar los siguientes comandos:
```bash
git 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.
## 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 <mark>nunca cambiar el nombre de dominio de un servidor una vez que haya empezado a utilizarlo.</mark>
`cp .config/example.yml .config/default.yml`: Copia `.config/example.yml` y lo renombra a `default.yml`.
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 `nano` `vi` `vim` `nvim` etc. dependiendo de que tengas instalado.
### Consideraciones 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.
## 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.
```bash
pnpm run build
pnpm run init
```
Finalmente vamos a iniciar el servidor con:
```bash
NODE_ENV=production pnpm run start
```
# Errores de instalación
Limpiar todo el caché manualmente y reinstalar por completo.
- `pnpm run clean` y `pnpm run clean-all`
- `pnpm rebuild`
# Agradecimientos y recursos de referencia:
[Pleroma Documentation](https://docs-develop.pleroma.social/)
[Misskeyを手動で構築する | Misskey Hub](https://misskey-hub.net/ja/docs/for-admin/install/guides/manual/)
[Ubuntu Misskey Installation Instructions](https://hide.ac/articles/iFwm5HDvH)
[Description of the instance settings and other settings to be set up first on a Misskey instance](https://hide.ac/articles/Y504SIabp)
[Set up squid proxies to protect Misskey](https://hide.ac/articles/MC7WsPDqw)
[Let's back up Misskey's database [OCI Object Storage]](https://hide.ac/articles/E2Ea3cauk)
[Use Oracle Cloud Infrastructure Always Free to set up Misskey instances for free](https://hide.ac/articles/csERs-7SU)
[If your Always Free OCI Arm instance is stopped...](https://hide.ac/articles/qdajqdvj1)

View file

@ -0,0 +1,69 @@
---
title: Actualizar Misskey
type: docs
prev: docs/misskey
next: http-server
---
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:
Para actualizar a la versión más reciente dentro de la rama master, que es la principal y supuestamente estable:
```bash
git 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:
`git checkout (git tag -l | grep -v 'rc[0-9]*' | sort -V | tail -n 1)`
o
`git checkout $TAG` por ejemplo `git checkout 2023.12.2`
y despues:
```bash
git 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.
En detalle y la forma correcta y más tardada de hacerlo sería checar primero las notas o cambios (en japonés).
Obtener 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.
```bash
git fetch
git checkout $TAG
```
Posteriormente comparar las diferencias o cambios que se han hecho dentro del código.
```bash
git 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).
```bash
git 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.
```bash
NODE_ENV=production pnpm install --frozen-lockfile
NODE_ENV=production pnpm run build
pnpm run migrate
```

View file

@ -0,0 +1,20 @@
---
title: Servidor HTTP
type: docs
prev: /
next: docs/folder/
---
Usa e instala caddy
Modifica /etc/caddy/Caddyfile
Añade
```
tu.dominio.tld {
    reverse_proxy localhost:$PUERTO_DE_MISSKEY
}
```
Inicia caddy.

View file

@ -0,0 +1,72 @@
[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

View file

@ -0,0 +1,104 @@
---
title: Integración al sistema
type: docs
prev: docs/misskey
next: http-server
---
Esta parte es un poco complicada porque habla de linux como sistema de nuevo.
No voy a ahondar en detalle porque el archivo ya explica (aunque en inglés) y estoy cansado.
Esta 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.
Archivo directo para [descarga](archivos/configs/systemd/misskey.service).
[descarga](/docs/misskey/misskey.service).
```systemd
[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.
```bash
sudo systemctl daemon-reload
sudo systemctl start misskey
```
Puedes utilizar este comando para habilitar que se inicie automáticamente al encender el servidor.
```bash
sudo systemctl enable misskey
```

View file

@ -0,0 +1,30 @@
---
title: Administración de servidores
type: docs
prev: docs
next: docs/misskey
date: 2024-01-13T13:36:16-06:00
sidebar:
open: true
---
## 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.
Sobre 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 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.
Sin 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).
Siendo 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).
He 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.
### Privilegios 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.

View file

@ -0,0 +1,9 @@
---
title: Servidores
type: docs
prev: docs
---
# Programas y utilidades
`curl neovim git`

View file

@ -1,8 +1,10 @@
---
title: Acerca de
title: Acerca de Novoa
type: about
---
This is the about page.
Aquí no hay nada aún pero haré un copy paste supongo.
# <center>ESTA HUEVADA SIGUE EN CONSTRUCCIÓN</center>

View file

@ -24,6 +24,9 @@
h1 {text-align: center;
color: green;
}
h4 {text-align: center;
color: white;
}
p {text-align: center;}
div {text-align: center;}
body {background-color: black;}
@ -67,6 +70,7 @@
</head>
<body>
<main>
<h4>Esta es una lista de todos los servicios que ofrece el servidor de una época cuando las cosas eran más simples</h2>
<h1>Lista de servicios</h1>
<ul>
<a href="https://novoa.nagoya/"><li>Misskey: Ventana al Fediverso</li></a>