En este tutorial, lo guiaremos a través del proceso de instalación de Mastodon en un VPS Debian 9.
Mastodon es una red social gratuita de código abierto basada en el protocolo web abierto. Utiliza Ruby on Rails para el back-end y React.js y Redux para el front-end. Esta plataforma de redes sociales se parece mucho a Twitter, con un enfoque hacia el intercambio de texto y medios. El hecho de que esta plataforma sea de código abierto significa que puede ejecutar una red social privada para que usted y sus amigos la usen de forma privada y sin anuncios.
Esta guía también debería funcionar en otros sistemas Linux VPS, pero fue probada y escrita para un VPS Debian 9. El proceso de instalación no debería llevar mucho tiempo, siendo la parte más larga el proceso de compilación. Comencemos con la instalación.
Requisitos previos:
- Un VPS Debian 9.
- Una cuenta de usuario con privilegios de sudo o acceso al propio usuario "raíz".
Paso 1:Instale los paquetes necesarios
Inicie sesión en su VPS a través de SSH como root o como usuario sudo:
ssh userame@IP_Address -p Port_Number
Reemplace "IP_Address" y "Port_Number" con la dirección IP y los números de puerto SSH respectivos de su servidor. Además, reemplace "nombre de usuario" con "raíz" para el usuario raíz, o con el nombre de la cuenta de administrador que planea usar.
Una vez que haya iniciado sesión, emita los siguientes comandos para actualizar todos los paquetes instalados a sus últimas versiones disponibles:
sudo apt-get update sudo apt-get upgrade
Instale los paquetes requeridos usando el siguiente comando:
sudo apt-get install curl gcc g++ make \ imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ libprotobuf-dev protobuf-compiler pkg-config autoconf \ bison build-essential libssl-dev libyaml-dev libreadline-dev \ zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \ libidn11-dev libicu-dev libjemalloc-dev
Estos paquetes cubren todos los requisitos para Mastodon, desde la conversión de medios hasta los servicios de transmisión.
Paso 2:Instalar Node.js e Yarn
Instalaremos Node.js y Yarn desde sus repositorios oficiales.
Habilite el repositorio de NodeSource con el siguiente comando curl:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
Para instalar Node.js 8.x LTS Carbon y npm, ejecute el siguiente comando:
sudo apt-get install nodejs
Importe la clave GPG del repositorio APT de Yarn y actívela ejecutando:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Instale Yarn usando el siguiente comando:
sudo apt-get update && sudo apt-get install yarn
Paso 3:Instalar PostgreSQL
Mastodon puede usar PostgreSQL como back-end de su base de datos.
Si el servidor PostgreSQL aún no está instalado en su servidor, puede instalar la última versión de PostgreSQL ejecutando el siguiente comando:
sudo apt-get install postgresql postgresql-contrib
Una vez completada la instalación, inicie sesión en el shell de PostgreSQL:
sudo -u postgres psql
Cree un nuevo usuario para la instancia de Mastodon:
CREATE USER mastodon CREATEDB;
Paso 4:Instalar Redis
Instalar Redis es bastante sencillo, simplemente ejecute el siguiente comando:
sudo apt-get install redis-server
Paso 5:Cree un nuevo usuario del sistema
Cree un nuevo usuario del sistema que ejecutará el servidor Mastodon:
sudo adduser --home /opt/mastodon --disabled-login --gecos 'Mastodon Application' mastodon
Paso 6:Instalar Rubí
Instalaremos Ruby usando el script Rbenv.
Antes de clonar el repositorio rbenv, cambie al nuevo usuario mastodon que creamos en el paso anterior:
sudo su - mastodon
Configure 'rbenv' y 'ruby-build' con los siguientes comandos:
cd git clone https://github.com/rbenv/rbenv.git ~/.rbenv cd ~/.rbenv && src/configure && make -C src echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec bash git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Una vez que se hayan configurado tanto 'rbenv' como 'ruby-build', instale la última versión de Ruby con:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1 rbenv global 2.6.1
Actualice la gema e instale el paquete para que funcionen con la versión de rbenv que acabamos de instalar.:
gem update --system gem install bundler --no-document
Para verificar que todo se haya hecho correctamente, use el comando ruby --version
.
El resultado debe ser similar al siguiente:
ruby --version ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]
Paso 7:Configuración de Mastodon
Los siguientes comandos también se ejecutan como usuario mastodon.
Clone el repositorio git de mastodon en el ~/live
directorio y salida a la última rama estable de Mastodon:
cd git clone https://github.com/tootsuite/mastodon.git ~/live cd ~/live git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
Instale las dependencias de Ruby con el siguiente comando:
bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test
Instale las dependencias de node.js con:
yarn install --pure-lockfile
Cambie al directorio de instalación de Mastodon y ejecute el siguiente comando para iniciar la instalación:
cd ~/live RAILS_ENV=production bundle exec rake mastodon:setup
El instalador le hará varias preguntas, generará un nuevo secreto de aplicación, configurará el esquema de la base de datos y compilará los activos. Esto puede tomar un tiempo, dependiendo del hardware de su servidor:
Your instance is identified by its domain name. Changing it afterward will break things. Domain name: your-domain.com Single user mode disables registrations and redirects the landing page to your public profile. Do you want to enable single user mode? No Are you using Docker to run Mastodon? no PostgreSQL host: /var/run/postgresql PostgreSQL port: 5432 Name of PostgreSQL database: mastodon_production Name of PostgreSQL user: mastodon Password of PostgreSQL user: Database configuration works! 🎆 Redis host: localhost Redis port: 6379 Redis password: Redis configuration works! 🎆 Do you want to store uploaded files on the cloud? No Do you want to send e-mails from localhost? yes E-mail address to send e-mails "from": Mastodon <[email protected]> Send a test e-mail with this configuration right now? no This configuration will be written to .env.production Save configuration? Yes Now that configuration is saved, the database schema must be loaded. If the database already exists, this will erase its contents. Prepare the database now? Yes Running `RAILS_ENV=production rails db:setup` ... Created database 'mastodon_production' ... Done! The final step is compiling CSS/JS assets. This may take a while and consume a lot of RAM. Compile the assets now? Yes Running `RAILS_ENV=production rails assets:precompile` ... yarn install v1.9.4 ... Using /opt/mastodon/live/config/webpacker.yml file for setting up webpack paths Compiling… Compiled all packs in /opt/mastodon/live/public/packs Rendering errors/500.html.haml within layouts/error Rendered errors/500.html.haml within layouts/error (2596.9ms) Done! All done! You can now power on the Mastodon server 🐘 Do you want to create an admin user straight away? Yes Username: admin E-mail: [email protected] You can login with the password: 7594c5bab89c1f0b0e47438f6074fb02 You can change your password once you login.
Cuando haya terminado, vuelva a su usuario sudo ejecutando:
exit
Paso 8:Configuración de Nginx
Instale Nginx y Certbot usando el siguiente comando:
sudo apt-get install nginx certbot
Una vez que Nginx esté instalado, copie la plantilla de configuración de Nginx del directorio de instalación de Mastodon:
sudo cp /opt/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon.conf sudo ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/mastodon.conf
Ejecute el siguiente comando para cambiar la ruta del directorio de instalación de Mastodon y el nombre de dominio. No olvide reemplazar 'su-dominio.com' con su nombre de dominio registrado:
sudo sed -i 's/home/opt/g' /etc/nginx/sites-enabled/mastodon.conf sudo sed -i 's/example.com/your-domain.com/g' /etc/nginx/sites-enabled/mastodon.conf
Reinicie Nginx para que los cambios surtan efecto:
sudo systemctl restart nginx
Luego, use certbot para obtener un certificado SSL gratuito usando Let's Encrypt:
sudo certbot --nginx -d your-domain.com
El peaje obtendrá un certificado Let's encrypt SSL gratuito y reconfigurará la configuración de Nginx.
Paso 9:Configurar los servicios de systemd
Copie los archivos de la unidad systemd del directorio Mastodon:
sudo cp /opt/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Ejecute el siguiente comando para cambiar la ruta del directorio de instalación de Mastodon:
sudo sed -i 's/home/opt/g' /etc/systemd/system/mastodon-*.service
Finalmente, inicie y habilite los nuevos servicios systemd:
for i in mastodon-web mastodon-sidekiq mastodon-streaming; do sudo systemctl start $i sudo systemctl enable $i done
En este punto, puede abrir su dominio en el navegador y finalizar la instalación de Mastodon.
Eso es todo. Ha instalado correctamente Mastodon en su Debian 9 VPS. Para obtener más información sobre cómo administrar su instalación de Mastodon, consulte la documentación oficial de Mastodon.
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si le gustó esta publicación, compártala con sus amigos en las redes sociales utilizando los accesos directos para compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.