Esta es una versión modificada de la guía original: secciones nuevas tienen un (*) en el título, comentarios adicionales tienen otro formato, y comandos modificados tienen referencias previas.
Las adaptaciones corresponden a los problemas que alguien en particular encontró al momento de intentar poner la aplicación en funcionamiento sin casi conocerla. El repositorio también tiene algunos cambios en los archivos para facilitar el proceso, la siguiente imagen en parte lo explica.
Importante resaltar: No quiere decir que esto traiga las correcciones ideales, solo son las que alguien en particular pudo aplicar. Es recomendado prestar atención a los pasos, y sobre todo aprender.
Pueden instalar la version normal o la server, probablemente la server sea mejor para esto, aunque yo use la version desktop.
Aca explican bien como hacer https://www.muylinux.com/2020/05/21/guia-instalacion-ubuntu-20-04-lts/
Rouzer esta programada en C#, para compilarla y ejecutarla debemos instalar el sdk .net core.
wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Si lo siguiente da error por dependencias o similar, que es posible según los repositorios del sistema que se esté usando, se puede buscar los paquetes faltantes aparte
sudo apt-get update; sudo apt-get install -y apt-transport-https && sudo apt-get update && sudo apt-get install -y dotnet-sdk-5.0
En la documentacion pueden ver una guia mas detallada https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu
Postgres es la base de datos que elegi, garpa, igual creo que leves modificaciones se pueden usar otras como MariaDb, MySQL, Mon?goDB, etc
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get -y update && sudo apt-get -y install postgresql
Mas informacion en la documentacion oficial https://www.postgresql.org/download/linux/ubuntu/
Rouzer utiliza este programa para generar las previsualizaciones de los videos y gifs
sudo apt-get -y install ffmpeg
Nginx se encarga de servir los archivos estaticos (imagenes, js, css, audios, etc), tambien hace otras cosas importantes pero no me acuerdo kjjj
sudo apt-get update && sudo apt-get -y install nginx
sudo service nginx start
sudo su postgres
createdb Rozed
psql
# se va a abrir una consola, peguen lo de abajo.
ALTER USER postgres WITH PASSWORD 'jejetabien';
\q
Nos dirigimos al directorio donde queremos descargar rozed, por ejemplo /home y hacemos git clone
Si esto da problemas de permisos también sirve simplemente ir a la carpeta de usuario con "cd ~"
El enlace del repositorio fue modificado por el de este mismo, para incluir los archivos faltantes
cd /home
sudo git clone https://github.com/ZeroCool22/rouzer3.0.git
# Cambiamos el nombre de la carpeta de "rouzer3.0" a "rozed" porque si no se rompe todo
sudo mv rouzer3.0 rozed
Los comandos fueron modificados para que no den problemas de permisos
sudo cp rozed/Otros/nginx.conf /etc/nginx/
sudo nginx -s reload
Este repositorio tiene ya incluidos los archivos después de compilar el FrontEnd (es la principal diferencia entre la guía de RozedShow y LaDevWendy), entonces este paso "podría saltearse". Pero en caso de hacer modificaciones en la parte de Svelte sería necesario para actualizar los archivos
Primero instalar nodejs y npm
sudo apt install nodejs
sudo apt install npm
Luego tenés que moverte a la carpeta /FrontEndWeb y ahí instalar las dependencias:
Este repositorio no incluye "node-sass" en package.json, para evitar problemas comunes al compilar
Igualmente pueden aparecer problemas según las versiones utilizadas: con las que ya están no debería pasar, sin embargo, en caso de haber errores, aparte de leerlos bien, es posible que algunos se solucionen solo cambiando las versiones de los paquetes, principalmente Svelte. Por ejemplo, probar cambiando de "^3.0.0" a "3.29.0"
sudo npm install
y reparar vulnerabilidades:
También, cuidado con esto de reparar vulnerabilidades: si más adelante el sitio da problemas, por ejemplo para iniciar sesión o para que funcionen algunos botones, para solucionarlo puede servir revisar u omitir este paso
sudo npm audit fix
Y ahora sí, finalmente, compilar el FrontEnd:
sudo npm run build
Configurar Systemd explica cómo iniciar la aplicación mediante servicio, pero al hacer esto, no es sencillo ver si hay errores, por esto garparía primero intentar iniciarla directamente
Para eso hay que moverse a la carpeta /WebApp y abrir la aplicación con dotnet
Otra diferencia importante entre las versiones de RozedShow y LaDevWendy, es que la segunda no incluye un archivo clave para el inicio: generalsettings.json de /WebApp, si no está eso choca ni bien quiere arrancar. En este repositorio está incluido para no tener ese error.
En caso de encontrar un error al primer arranque, volver a intentar, y si persiste, revisar bien el registro para resolverlo, puede pasar que: el puerto predeterminado ya esté en uso, que la base de datos no esté bien configurada, que dotnet no esté instalado en la versión correcta, que no haya espacio en el almacenamiento, entre otras cosas
cd rozed/WebApp
sudo dotnet run
Esta cosa hace se encarga de ejecutar rozed al iniciar el sistema y reiniciarla cuando choca.
Si alguien está instalando esto por primera vez, es recomendado que intente de Iniciar directamente (*) para verificar que la aplicación no de errores al iniciar, y en caso de haberlos detectarlos, por eso este paso está después
sudo cp rozed/Otros/rozed.service /etc/systemd/system/
sudo systemctl enable rozed
sudo systemctl start rozed
Cuando termine pueden verla online en la ip donde esta alojada o en http://localhost
Para hacer eso deben iniciar sesion como pepe,
https://IpODominioDondeEstaRozed/login
usuario: pepe
contraseña: contraseña
Luego ir a la seccion de administracion
En la parte que dice equipo ponen el id o nick y cliquean agregar. Importante los mods y admins pueden banear a los otros mods y admins asi que tengan cuidado con la gente que pongan
Los auxiliares son los serenitos, solo pueden moderar cuando el modo serenito esta activo
Por defecto los captchas estan en modo de prueba, lo que los hace completamente inutiles.
Para hacer que funcionen tienen que modificar los valores "SiteKey" y "Secret" en el archivo rozed/WebApp/appsettings.producion.json
Esos datos los sacan creandose una cuenta en hcaptcha, https://docs.hcaptcha.com/ la documentacion lo explica.
Por defecto las imagenes y videos se guardan localmente en la carpeta /WebApp/Almacenamiento, si hay mucha actividad o el espacio de almacenamiento es muy limitado o el numero de roz por categorias es muy alto Rozed se quedaria sin espacio y chocaria, en la practica nunca paso pero es posible. Una forma de evitar esto es utilizar telegram para guardar los archivos, tambien garpa para mover la pagina se un server a otro sin tener que andar moviendo cantidad de gbs de archivos.
- Para hacerlo deben crear un canal de telegram
- Crear un bot https://core.telegram.org/bots
- Añadir el bot al canal
- Conseguir la id del canal https://stackoverflow.com/questions/33858927/how-to-obtain-the-chat-id-of-a-private-telegram-channel
Una vez hecho esto deben editar el archivo de configuracion /WebApp/appsettings.development.json
En usar telegram ponen true, en BotId y ChatId obviamente ponen el token del bot y la id del canal.
El FrontEnd está hecho en svelte, ok? son archivos que contienen componentes del FrontEnd y combinan javascript, html y css.
Una manera facil de cambiar el nombre es usar la herramienta "buscar y remplazar" de algun editor de texto, y cambiar rozed por otro nombre.
Para cambiar los colores hay que editar unas variables en el archivo /WebApp/wwwroot/css/site.css
Para que los cambios surtan efecto deben ubicarse enn la carpeta /FrontEndWeb y ejecutar el siguiente comando
npm run build
# o
npm run dev
# para que los cambios se apliquen automaticamente
Para cambiar la pagina en forma funcional y no solo estetica es necesario aprender las tecnologias con las que esta hecha, osea C#, ASP.NET Core y Svelte. Dejo algunos recursos utiles, son la documentacion oficial, la verdad estan super completas y garpan.