Tutoriales linux



¿Alguna vez has querido ejecutar programas de Windows en tu sistema Linux, sin tener que hacer inicio dual? Si es así, te alegrará memorizar que es posible, gracias a Wine. En este tutorial, te mostraremos cómo instalar y utilizar Wine en Debian 11.

¿Qué es Wine?

Wine es una capa de compatibilidad para ejecutar aplicaciones de Windows en Linux. En otras palabras, es un software que te permite ejecutar programas de Windows en Linux. Wine es un esquema de código libre, lo que significa que su uso es regalado.

¿Por qué utilizar Wine?

Hay varias razones por las que podrías querer utilizar Wine.

Quizá seas un desarrollador de software que necesita probar su aplicación en Windows. O puede que simplemente prefieras usar Linux, pero hay un software de Windows sin el que no puedes habitar. Sea cual sea el motivo, Wine permite ejecutar programas de Windows en Linux.

¿Cómo funciona Wine?

Wine consta de dos partes:

  • Un software que permite ejecutar aplicaciones de Windows en Linux, llamado «Wine».
  • Una biblioteca que implementa la API de Windows, citación «Winelib».

Cuando instalas Wine, lo que positivamente estás haciendo es instalar el software Wine y la biblioteca Winelib. El software Wine proporciona una capa de traducción entre las aplicaciones Windows y Linux. En otras palabras, traduce las llamadas a la API de Windows en llamadas al sistema de Linux.

La biblioteca Winelib contiene la implementación de la API de Windows. Así, cuando una aplicación Windows hace una citación al API de Windows, el software Wine llamará a la función correspondiente de la biblioteca Winelib.

Esta capa de traducción es lo que permite que las aplicaciones de Windows funcionen en Linux.

Requisitos previos

Antiguamente de originarse este tutorial, debes tener una cuenta de usufructuario no root con privilegios sudo en tu máquina Debian 11.

Instalar Wine utilizando APT

Antiguamente de poder utilizar Wine, necesitas instalarlo. La forma más sencilla de instalar Wine es a través del gerente de paquetes de Debian, apt. Sin incautación, es posible que este método no siempre instale la última lectura de Wine. Si quieres instalar la última lectura de Wine, puedes utilizar el repositorio WineHQ, del que hablaremos más delante en este tutorial.

Activar la edificación de 32 bits

Antiguamente de que puedas instalar Wine, necesitamos habilitar la edificación de 32 bits en tu sistema. Muchos paquetes de Wine sólo están disponibles para 32 bits, por lo que debemos activarla.

En primer oportunidad, comprueba si tu sistema ya funciona en modo de 32 bits ejecutando el posterior comando.

lscpu

Si la salida del comando precursor incluye«x86-64» como se muestra, entonces tu sistema ya funciona en modo de 32 bits y puedes saltarte este paso.

Comprobación de la arquitectura

Si no es así, tendrás que activar la edificación de 32 bits. Puedes hacerlo ejecutando el posterior comando. i386 se refiere a la edificación de 32 bits.

sudo dpkg --add-architecture i386

Por extremo, comprueba que se ha añadido la edificación i386 ejecutando el posterior comando. Deberías ver «i386» como salida.

dpkg --print-foreign-architectures

Comprueba que se ha añadido la arquitectura i386

Instalar Wine

Ahora que tienes habilitada la edificación de 32 bits, puedes instalar Wine.

En primer oportunidad, actualiza la gusto de tu repositorio apt ejecutando el posterior comando

sudo apt update -y

Ejecuta el posterior comando para comprobar que apt puede ver los paquetes de Wine. Deberías ver poco similar a la posterior salida. El número de lectura puede ser diferente dependiendo de la lectura de Debian que estés utilizando.

apt-cache policy wine

Comprobación de la caché apt de wine

Por extremo, instala Wine ejecutando el posterior comando. Esto instalará el software Wine y todas las bibliotecas necesarias.

sudo apt install -y wine64

Instalar el vino

Comprueba la lectura de Wine que se ha instalado. Este comando imprime el número de lectura y se cierra.

wine --version

Deberías ver una salida similar a la posterior.

Comprueba la versión de Wine que se instaló.

Instalar Wine utilizando el Reþositorio Oficial WineHQ

Si quieres instalar la última lectura de Wine, puedes utilizar el repositorio oficial WineHQ. Sin incautación, este método requiere un poco más de trabajo que utilizar apt.

Añadir el repositorio WineHQ

En primer oportunidad, tienes que añadir la esencia GPG para el repositorio WineHQ.

Ejecuta el posterior comando para instalar las dependencias necesarias.

sudo apt -y install gnupg2 software-properties-common

instala las dependencias necesarias.

Ejecuta el posterior comando para descargar la esencia. Una esencia es una información que te permite conseguir a poco. En este caso, la esencia te permite conseguir al repositorio WineHQ.

wget -nc https://dl.winehq.org/wine-builds/winehq.key

descargar la clave

Ahora que tienes la esencia, puedes añadirla a tu sistema. Al añadir la esencia, le estás diciendo a apt que confías en los paquetes procedentes del repositorio WineHQ.

sudo apt-key add winehq.key

añadir clave GPG de vino

Ejecuta el posterior comando para añadir el repositorio WineHQ. Este comando añade el repositorio al archivo de letanía de fuentes situado en /etc/apt/sources.list

sudo apt-add-repository https://dl.winehq.org/wine-builds/debian/

Si quieres comprobar el contenido de este archivo, puedes utilizar el comando cat.

cat /etc/apt/sources.list

Deberías ver una salida similar a la posterior.

Instalar Wine

Ahora que se ha añadido el repositorio WineHQ, puedes instalar Wine.

En primer oportunidad, actualiza la gusto de tu repositorio apt ejecutando el posterior comando. Este comando garantiza que apt conoce los nuevos paquetes del repositorio WineHQ.

sudo apt update -y

A continuación, comprueba la gusto de apt para ver qué versiones de Wine están disponibles.

apt-cache policy winehq-stable

Deberías ver una salida similar a la posterior.

comprueba la caché de apt

Por extremo, instala Wine ejecutando el posterior comando. Este comando instala la rama estable de Wine, que es la lectura que se recomienda utilizar.

sudo apt install winehq-stable --install-recommends -y

instalar vino

Puedes instalar la rama de prueba de Wine si quieres probar las últimas funciones. Sin incautación, la rama de prueba es menos estable que la rama estable y puede causar problemas. Ejecuta el posterior comando para instalar la rama de preparación.

sudo apt install --install-recommends winehq-staging -y

Incluso puedes instalar la lectura para desarrolladores, que es la lectura de mejora más avanzadilla. Esta lectura se actualiza con mucha frecuencia y puede contener errores. Esta lectura es para desarrolladores y personas que quieran ayudar a probar las últimas funciones.

sudo apt install --install-recommends winehq-devel -y

Ahora que Wine está instalado, puedes comprobar la lectura para asegurarte de que todo se ha instalado correctamente.

wine --version

Como puedes ver a continuación, la lectura de Wine que se instaló es la 7.0, que es muy fresco.

comprobar la versión de wine

Configurar Wine con Winecfg

¿Qué es Winecfg? Winecfg es una aparejo de configuración para Wine que te permite cambiar los ajustes relacionados con la forma en que se ejecutarán las aplicaciones de Windows en tu sistema. Muchas aplicaciones de Windows funcionan directamente con Wine. Sin incautación, algunas aplicaciones pueden requerir que cambies ajustes para que funcionen correctamente. Winecfg te ayuda a realizar estos cambios.

Winecfg es una aparejo gráfica (GUI), lo que significa que puedes utilizar el ratón para hacer clic en las opciones y cambiar los ajustes.

Para iniciar la GUI Winecfg, abre el terminal y escribe winecfg.

winecfg

Si aparece un error que dice«CreateWindow Asegúrate de que tu servidor X está funcionando y de que $DISPLAY está configurado correctamente«, como se muestra a continuación. Este error indica que la variable $DISPLAY no está configurada.

obteniendo error

Para solucionar este error, ejecuta el posterior comando para establecer la variable display. Este comando asume que tu servidor X está en la pantalla 0(:0). Sustituye :0 por :1, :2, etc. si tu servidor X está en otra pantalla.

export DISPLAY=:0

Una vez que hayas configurado la variable de pantalla, vuelve a ejecutar Winecfg. Ahora deberías poder ver la ventana Winecfg como se muestra a continuación.

 Iniciar Winecfg

La pestaña Bibliotecas es la más importante de Winecfg. La pestaña Bibliotecas te permite decantarse qué DLL (bibliotecas de vínculos dinámicos) de Windows utiliza un software determinado. Algunos programas pueden no funcionar correctamente si se selecciona una DLL incorrecta. Puedes utilizar la pestaña Bibliotecas para anular las DLL que utiliza un software. Por ejemplo, si un software intenta utilizar la DLL incorrecta para Microsoft DirectX, puedes anularla utilizando la pestaña Bibliotecas.

Para anular una DLL, selecciona la DLL deseada en el menú desplegable Nueva anulación para biblioteca, haz clic en el llamador«Añadir» y haz clic en Aplicar. Esto añadirá la DLL seleccionada a la letanía Anulaciones existentes, como se muestra a continuación. Ahora, cuando el software intente cargar la DLL incorrecta, utilizará en su oportunidad la DLL que has seleccionado.

Puedes ver la ritual nativa e integrada anejo a cada DLL de la letanía.

La ritual nativa significa que la DLL la proporciona tu sistema y no forma parte de Wine. La ritual integrada significa que la DLL está integrada en Wine. Como regla caudillo, debes intentar utilizar la lectura nativa de una DLL si está apto. La lectura incorporada de una DLL sólo debe utilizarse si el software no funciona con la lectura nativa.

selecciona la DLL deseada

Puedes editar una Anulación Existente seleccionándola de la letanía y pulsando el llamador«Editar«. Se abrirá una nueva ventana en la que podrás cambiar el orden de carga de las DLL, como se muestra a continuación.

  • El llamador de opción«Nativo(Windows)» debe estar seleccionado por defecto. Esta opción hará que Wine utilice la lectura nativa de la DLL si está apto.
  • El llamador de opción «Builtin(Wine)» sólo debe utilizarse si el software no funciona con la lectura nativa de la DLL.
  • El llamador de opción «Desactivado» se puede utilizar para desactivar una anulación. Esto es útil si quieres desactivar temporalmente una anulación para ver si está causando algún problema.

Cambiar el orden de carga

La segunda pestaña importante de Winecfg es la pestaña Aplicaciones. La pestaña Aplicaciones te permite cambiar los ajustes específicos de cada software. Por defecto, la configuración predeterminada se utiliza para todos los programas. Esto significa que la configuración caudillo se utilizará para todos los programas.

se utilizan los ajustes por defecto

Puedes utilizar la pestaña Aplicaciones para cambiar la configuración de un software concreto sin cambiar la configuración de todos los programas. Puedes cambiar qué lectura de Windows utiliza el software, si utiliza o no un escritorio potencial y otros ajustes.

Esto se debe a problemas de compatibilidad con determinados programas. Por ejemplo, si un software no funciona correctamente en Windows 10, puedes probar a cambiar la configuración a Windows 7. Como regla caudillo, debes intentar utilizar la última lectura de Windows para la que esté diseñado el software. Windows 7 es demasiado antiguo y muchos programas no funcionarán correctamente con él. La lectura preliminar de Windows 11 es demasiado nueva y muchos programas siquiera funcionarán correctamente con ella. Así que Windows 10 suele ser la mejor opción.

Para crear un conjunto de ajustes para un software concreto, haz clic en «Añadir aplicación» y indagación el archivo EXE del software. A continuación, selecciona la lectura de Windows deseada en el menú desplegable, como se muestra a continuación. Este ejemplo selecciona Bloc de notas ++ y Windows 10. A partir de ahora, los ajustes que cambies sólo se aplicarán al Bloc de notas ++. Cuando abras el Bloc de notas ++, Winecfg utilizará el entorno de Windows 10.

Las demás pestañas de Winecfg se explican por sí mismas y puedes probar con ellas para ver lo que hacen. Es inasequible cubrir todos los ajustes en este artículo. Puedes consultar la documentación oficial para obtener más información.

configuración de la aplicación

Utilizar Wine para instalar una aplicación Windows

Ahora que tienes Wine instalado y configurado, puedes utilizarlo para instalar programas de Windows. En este tutorial, aprenderás a utilizar Wine para instalar un software de Windows.

Para este tutorial, utilizaremos el software Notepad ++. Puedes descargar el instalador desde el sitio web oficial.

Una vez descargado el instalador, haz clic con el llamador izquierdo del ratón sobre él y selecciona «Brindar con otra aplicación«.

selecciona "Abrir con otra aplicación."

En la ventana que aparece, selecciona«Wine Windows Program Loader» y haz clic en«Escoger«.

selecciona "Wine Windows Program Loader"

El instalador debería iniciarse ahora en un entorno Wine. Procede con el instalador como lo harías con cualquier otro software de Windows.

instalar notepadd++

Para iniciar el software, escribe Bloc de notas en la mostrador de búsqueda y haz clic en el icono «Bloc de notas ++» que aparece.

abrir el bloc de notas

Ahora deberías ver la ventana del Bloc de Notas ++. Enhorabuena, ¡has instalado con éxito un software de Windows utilizando Wine!

Ahora deberías ver la ventana del Bloc de Notas.

Renovar Wine

Como Wine está en constante mejora, es importante mantenerlo actualizado. Con frecuencia se publican nuevas versiones de Wine, que suelen incluir correcciones de errores y nuevas funciones.

Para desempolvar Wine, ejecuta el posterior comamnd.

sudo apt-get upgrade winehq-stable

Actualizar el vino

Como ya se ha mencionado, todavía hay versiones de mejora de Wine que se publican con menos frecuencia. Estas versiones pueden ser inestables y contener errores. Si quieres utilizar la lectura de mejora, puedes instalarla ejecutando el posterior comando:

sudo apt-get upgrade winehq-devel

Conclusión

Un sistema de inicio dual no siempre es la mejor opción. Si sólo necesitas utilizar programas de Windows ocasionalmente, lo mejor es usar Wine. En este tutorial has aprendido a instalar y configurar Wine en Debian 11. Incluso has aprendido a utilizar Wine para instalar un software de Windows. Si tienes alguna pregunta, no dudes en dejar un comentario a continuación.




Go, todavía llamado Golang, es un estilo de programación de código descubierto desarrollado por Google. Se utiliza para crear aplicaciones fiables y eficientes. Es multiplataforma y puede instalarse en Linux, Windows y macOS. Es un estilo de programación compilado, lo que significa que no necesitas inventariar el código fuente para crear un archivo ejecutable. Lo utilizan muchas organizaciones, como Mangodb, Soundcloud, Netflix, Uber, etc.

En este post, te mostraré cómo instalar el estilo de programación Go en el servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 20.04.
  • Una contraseña de root configurada en el servidor.

Instalar Go

En primer espacio, descarga la última traducción de Go desde su sitio web oficial utilizando el ulterior comando:

wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz

Una vez descargado Go, extrae el archivo descargado al directorio /usr/recinto:

tar -xzf go1.16.5.linux-amd64.tar.gz -C /usr/recinto/

A continuación, tendrás que añadir la ruta del directorio Go a la variable $PATH del directorio /etc/profile.

nano /etc/profile

Añade la ulterior columna:

export PATH=$PATH:/usr/recinto/go/bin

Vigilante y cierra el archivo y, a continuación, activa la variable de entorno PATH mediante el ulterior comando:

source /etc/profile

A continuación, ejecuta el ulterior comando para comprobar la traducción instalada de Go:

go version

Deberías obtener la ulterior salida:

go version go1.16.5 linux/amd64

Cómo utilizar Go

Para probar la instalación de Go, escribiremos y construiremos un software de ejemplo.

En primer espacio, crea un directorio para tu software con el ulterior comando:

mkdir hello

A continuación, crea un archivo hola.go:

nano hello/hello.go

Añade los siguientes códigos:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, Worldn")
}

Vigilante y cierra el archivo y, a continuación, crea un archivo go.mod:

nano hello/go.mod

Añade la ulterior columna:

module example.com/mod

Vigilante y cierra el archivo, luego cambia el directorio a hola y construye el software con el ulterior comando:

cd hello
go build

A continuación, ejecuta tu software con el ulterior comando:

./mod

Deberías ver la ulterior salida:

Hello, World!

Conclusión

Enhorabuena! has instalado correctamente Go en Ubuntu 20.04. Ya puedes asomar a desarrollar tu primera aplicación con Go. Para más información, encuentro la documentación de Go.




Docker Compose es una útil que puede utilizarse para detallar y ejecutar varios contenedores como un único servicio. Con Docker Compose, puedes enlazar varios contenedores y desplegar una aplicación desde un único comando. Se utiliza principalmente en el entorno de avance, pruebas y staging. Docker Compose utiliza un archivo YAML para detallar una pila compleja en un archivo y ejecutarla con un solo comando.

En este tutorial, te mostraremos cómo instalar y utilizar Docker Compose en CentOS 8.

Requisitos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en el servidor.

Instalar Docker

Antiguamente de aparecer, asegúrate de que tienes Docker instalado en tu servidor. Si no está instalado, tendrás que añadir el repositorio Docker-CE a tu sistema. Puedes añadirlo con el subsiguiente comando:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Una vez añadido el repositorio, instala la última traducción de docker con el subsiguiente comando:

dnf install docker-ce --nobest -y
systemctl start docker
 systemctl enable docker

Puedes probar la traducción de docker con el subsiguiente comando:

docker --version

Deberías ver la subsiguiente salida:

Docker version 19.03.5, build 633a0ea

Instalar Docker Compose

Por defecto, Docker Compose no está habitable en el repositorio por defecto de CentOS 8. Así que tendrás que descargarlo del repositorio Git.

En primer sitio, instala el comando curl con el subsiguiente comando:

dnf install curl -y

A continuación, descarga la última traducción de Docker Compose desde el reposiotrio Git utilizando curl como se muestra a continuación:

curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/circunscrito/bin/docker-compose

Una vez finalizada la descarga, haz ejecutable el archivo binario descargado con el subsiguiente comando:

chmod +x /usr/circunscrito/bin/docker-compose

A continuación, puedes probar la traducción de Compose utilizando el subsiguiente comando:

docker-compose --version

Deberías ver la subsiguiente salida:

docker-compose version 1.25.0, build 0a186604

Puedes ver todas las opciones disponibles con docker-compose utilizando el subsiguiente comando:

docker-compose --help

Deberías ver la subsiguiente página:

Opciones de la línea de comandos de Docker Compose

Desplegar Drupal con Docker Compose

En esta sección, te mostraremos cómo instalar Drupal utilizando Docker Compose.

En primer sitio, crea un directorio para tu drupal con el subsiguiente comando:

mkdir drupal

A continuación, crea un archivo drupal.yaml adentro del directorio drupal:

nano drupal/docker-compose.yaml

Añade el subsiguiente contenido:

version: '3.3'

services:
  drupal:
    image: drupal:latest
    ports:
      - 80:80
    volumes:
      - drupal_modules:/var/www/html/modules
      - drupal_profiles:/var/www/html/profiles
      - drupal_themes:/var/www/html/themes
      - drupal_sites:/var/www/html/sites
    restart: always

  postgres:
    image: postgres:10
    environment:
      POSTGRES_PASSWORD: your_postgres_password
    volumes:
        - db_data:/var/lib/postgresql/data
    restart: always

volumes:
  drupal_modules:
  drupal_profiles:
  drupal_themes:
  drupal_sites:
  db_data:

Tutela y cierra el archivo cuando hayas terminado. A continuación, cambia el directorio a drupal e inicia tu contenedor Docker con el subsiguiente comando:

cd drupal
 docker-compose up -d

El comando inicial descargará y ejecutará los contenedores drupal y postgresql.

Puedes comprobar tus contenedores en ejecución con el subsiguiente comando:

docker-compose ps

Deberías ver la subsiguiente salida:

      Name                     Command               State         Ports       
-------------------------------------------------------------------------------
drupal_drupal_1     docker-php-entrypoint apac ...   Up      0.0.0.0:80->80/tcp
drupal_postgres_1   docker-entrypoint.sh postgres    Up      5432/tcp 

Ahora, puedes pasarse la URL http://your-server-ip para obtener al asistente de instalación web de Drupal, como se muestra a continuación:

Elige lengua

Trabajar con Docker Compose

En esta sección, te mostraremos cómo utilizar el comando docker-compose.

Para detener los servicios Docker Compose ejecuta el subsiguiente comando adentro del directorio drupal:

docker-compose stop

Deberías ver la subsiguiente salida:

Stopping drupal_drupal_1   ... done
Stopping drupal_postgres_1 ... done

Para iniciar los servicios Docker Compose ejecuta el subsiguiente comando adentro del directorio drupal:

docker-compose start

Para ver el registro de contenedores ejecuta el subsiguiente comando:

docker-compose logs

Para ver los logs de un contenedor concreto ejecuta el subsiguiente comando:

docker-compose logs drupal

Para ver el archivo de configuración ejecuta el subsiguiente comando:

docker-compose config

Para pausar y despausar los contenedores ejecuta el subsiguiente comando:

docker-compose pause

Salida:

Pausing drupal_postgres_1 ... done
Pausing drupal_drupal_1   ... done
docker-compose unpause

Salida:

Unpausing drupal_drupal_1   ... done
Unpausing drupal_postgres_1 ... done

Para eliminar todos los contenedores ejecuta el subsiguiente comando:

docker-compose down

Deberías ver la subsiguiente salida:

Stopping drupal_drupal_1   ... done
Stopping drupal_postgres_1 ... done
Removing drupal_drupal_1   ... done
Removing drupal_postgres_1 ... done
Removing network drupal_default

Asimismo puedes eliminar los volúmenes de datos con el subsiguiente comando:

docker-compose down --volumes

Deberías ver la subsiguiente salida:

Removing network drupal_default
WARNING: Network drupal_default not found.
Removing volume drupal_drupal_modules
Removing volume drupal_drupal_profiles
Removing volume drupal_drupal_themes
Removing volume drupal_drupal_sites
Removing volume drupal_db_data

Conclusión

En el tutorial inicial, hemos aprendido a instalar y utilizar Docker Compose en CentOS 8. Espero que tengas suficientes conocimientos sobre cómo utilizar el comando Docker Compose para encargar los contenedores Docker.




Let’s Chat es una aplicación de transporte gratuita, de código hendido y persistente que se ejecuta en Node.js y MongoDB. Está diseñada para equipos pequeños e íntimos y ofrece un rico conjunto de funciones, como autenticación LDAP/Kerberos, una API tipo REST y compatibilidad con XMPP. Con Let’s Chat, puedes cursar todo tipo de mensajes y igualmente encontrar chats de grupos de interés, pegatinas de voz y emojis geniales.

En este post, te mostraremos cómo instalar Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en el servidor.

Instalar Node.JS

Ayer de despuntar, necesitarás instalar Node.js en tu servidor. Para instalar la última lectura de Node.js, tendrás que añadir el repositorio Node Source a APT.

Primero, instala todas las dependencias necesarias con el posterior comando:

apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common -y

Una vez instaladas todas las dependencias, añade el repositorio de Node.js a APT

curl -sL https://deb.nodesource.com/setup_18.x | bash -

Una vez añadido el repositorio, puedes instalar el Node.js con el posterior comando:

apt-get install nodejs -y

Tras la instalación correcta, verifica la lectura de Node.js con el posterior comando:

node -v

Obtendrás la posterior salida:

v18.7.0

Instalar almohadilla de datos MongoDB

Incluso necesitarás instalar una almohadilla de datos MongoDB en tu servidor.

En primer superficie, descarga e instala el paquete libssl con el posterior comando:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

A continuación, añade la secreto GPG de MongoDB y el repositorio con el posterior comando:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

A continuación, actualiza la elegancia del repositorio con el posterior comando:

apt update

Una vez actualizado tu repositorio, instala el MongoDB utilizando el posterior comando:

apt install -y mongodb-org

Una vez instalado el paquete MongoDB, inicia y habilita el servicio MongoDB con el posterior comando:

systemctl start mongod
systemctl enable mongod

Puedes comprobar el estado del servicio MongoDB con el posterior comando:

systemctl status mongod

Deberías ver la posterior salida:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-31 04:00:08 UTC; 6s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 42274 (mongod)
     Memory: 61.1M
        CPU: 1.014s
     CGroup: /system.slice/mongod.service
             ??42274 /usr/bin/mongod --config /etc/mongod.conf

Jul 31 04:00:08 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Instalar Let’s Chat

En primer superficie, tendrás que descargar la última lectura de Let’s Chat del repositorio Git Hub. Puedes descargarla con el posterior comando:

git clone https://github.com/sdelements/lets-chat.git

Una vez completada la descarga, cambia el directorio al descargado e instala todas las dependencias necesarias con el posterior comando:

cd lets-chat
npm install

A continuación, copia el archivo de configuración de ejemplo e inicia el servidor de Let’s Chat con el posterior comando:

cp settings.yml.sample settings.yml
npm start

Deberías ver la posterior salida:

> [email protected] start
> node app.js

(node:42373) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client
(Use `node --trace-deprecation ...` to show where the warning was created)

???     ?????????????????????????     ??????????  ??? ?????? ?????????
???     ?????????????????????????    ???????????  ????????????????????
???     ??????     ???   ????????    ???     ????????????????   ???   
???     ??????     ???   ????????    ???     ????????????????   ???   
????????????????   ???   ????????    ???????????  ??????  ???   ???   
????????????????   ???   ????????     ??????????  ??????  ???   ???

Release 0.4.8

Pulsa CTRL + C para detener el servicio Let’s Chat.

Crear un archivo de servicio Systemd para Let’s Chat

A continuación, tendrás que crear un archivo de servicio systemd para Let’s Chat. Puedes crearlo con el posterior comando:

nano /etc/systemd/system/letschat.service

Añade las siguientes líneas:

[Unit]
Description=Let's Chat Server
Wants=mongodb.service
After=network.target mongod.service

[Service]
Type=simple
WorkingDirectory=/root/lets-chat
ExecStart=/usr/bin/npm start
User=root
Group=root
Restart=always
RestartSec=9

[Install]
WantedBy=multi-user.target

Tutela y cierra el archivo, luego recarga el demonio systemd con el posterior comando:

systemctl daemon-reload

A continuación, inicia y activa el servicio Let’s Chat con el posterior comando:

systemctl start letschat
systemctl enable letschat

A continuación, comprueba el estado de Let’s Chat con el posterior comando:

systemctl status letschat

Deberías ver la posterior salida:

? letschat.service - Let's Chat Server
     Loaded: loaded (/etc/systemd/system/letschat.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-31 04:02:34 UTC; 4s ago
   Main PID: 42429 (npm start)
      Tasks: 23 (limit: 2242)
     Memory: 157.9M
        CPU: 4.457s
     CGroup: /system.slice/letschat.service
             ??42429 "npm start" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??42440 sh /tmp/start-b5e830e4.sh
             ??42441 letschat "" "" ""

Jul 31 04:02:34 ubuntu2204 npm[42429]: > node app.js
Jul 31 04:02:38 ubuntu2204 npm[42441]: (node:42441) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead>
Jul 31 04:02:38 ubuntu2204 npm[42441]: (Use `node --trace-deprecation ...` to show where the warning was created)
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ?????????????????????????     ??????????  ??? ?????? ?????????
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ?????????????????????????    ???????????  ????????????????????
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ??????     ???   ????????    ???     ????????????????   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ???     ??????     ???   ????????    ???     ????????????????   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ????????????????   ???   ????????    ???????????  ??????  ???   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: ????????????????   ???   ????????     ??????????  ??????  ???   ???
Jul 31 04:02:38 ubuntu2204 npm[42441]: Release 0.4.8

En este punto, el servicio Let’s Chat está iniciado y audición en el puerto 5000. Puedes comprobarlo con el posterior comando:

ss -antpl | grep 5000

Deberías ver la posterior salida:

LISTEN 0      511        127.0.0.1:5000       0.0.0.0:*    users:(("letschat",pid=42441,fd=20))     

Configurar Nginx para Let’s Chat

A continuación, tendrás que instalar y configurar Nginx como proxy inverso para Let’s Chat. Así podrás obtener al Chat de Let’s a través del puerto 80.

En primer superficie, instala el paquete de servidor Nginx con el posterior comando:

apt install nginx -y

A continuación, crea un archivo de configuración de host aparente Nginx:

nano /etc/nginx/conf.d/letschat.conf

Añade las siguientes configuraciones:

server {
server_name letschat.example.com;
listen 80;

access_log /var/log/nginx/lets_chat-access.log;
error_log /var/log/nginx/lets_chat-error.log;

location / {
proxy_set_header   X-Efectivo-IP $remote_addr;
proxy_set_header   Host      $host;
proxy_http_version 1.1;
proxy_set_header   Upgrade $http_upgrade;
proxy_set_header   Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
proxy_pass         http://127.0.0.1:5000;
}

}

Tutela y cierra el archivo, luego verifica que Nginx no tenga ningún error de sintaxis:

nginx -t

Deberías ver la posterior salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por posterior, reinicia el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

Incluso puedes comprobar el estado del Nginx utilizando el posterior comando:

systemctl status nginx

Deberías ver el estado de Nginx en la posterior salida:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-31 04:04:23 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 43193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 43194 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 43195 (nginx)
      Tasks: 2 (limit: 2242)
     Memory: 2.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43195 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43196 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jul 31 04:04:23 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 31 04:04:23 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Consentir a la interfaz web de Let’s Chat

Ahora, abre tu navegador web y accede a la interfaz web de Let’s Chat utilizando la URL http://letschat.example.com.

Iniciar sesión en el chat

Deberás hacer clic en el rama «Necesito una cuenta» para crear una cuenta. Deberías ver la posterior página:

Registrar una cuenta

Proporciona tu nombre de usufructuario, contraseña, dirección de correo electrónico y haz clic en el rama Registrar. Una vez que te hayas registrado correctamente, deberías ver la posterior pantalla:

Inicio de sesión correcto

Haz clic en el rama Aceptar. Se te redirigirá a la pantalla de inicio de sesión de Let’s Chat:

Regístrate en

Proporciona tu nombre de usufructuario y contraseña de Let’s Chat, y haz clic en el rama Iniciar sesión. Deberías ver el panel de Let’s Chat en la posterior pantalla:

Sala de chat

Conclusión

Enhorabuena! has instalado correctamente el servidor de Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04. Ahora puedes desplegar Let’s Chat en tu entorno de trabajo y despuntar a comunicarte con otros miembros del equipo. No dudes en preguntarme si tienes alguna duda.




Monica CRM es un CRM (Gerente de Relaciones con Clientes) gratis y de código franco escrito en PHP. Monica CRM te ayuda a realizar un seguimiento de eventos personales, actividades, información gremial, contactos, diarios, notas y mucho más.

Monica CRM ofrece muchas funciones, como la encargo de contactos y la relación entre contactos, recordatorios, encargo de actividades y tareas, diario nuclear, importación y exportación de datos, carga de archivos multimedia como documentos y fotos, y muchas más. Se puede instalar de múltiples formas, mediante Docker, manualmente en el servidor (VPS), o utilizando PaaS (Plataforma como Servicio).

En esta consejero, repasarás cómo instalar el CRM Monica Personal Relationship Manager en un servidor Debian 11. Todavía instalarás y configurarás la pila LEMP (Nginx, MariaDB, PHP-FPM), instalarás dependencias PHP mediante Composer, e instalarás y compilarás activos estáticos utilizando Node.js y Yarn.

Requisitos previos

Para que este tutorial funcione, necesitarás un servidor Debian 11 y configurar el becario no root con privilegios de root o administrador. Adicionalmente, si planeas desplegarlo en producción, necesitarás un nombre de dominio apuntando a la dirección IP de tu servidor Debian. Adicionalmente, se recomienda activar el cortafuegos en tu servidor Debian de producción.

Instalación del servidor web Nginx

Monica CRM es una aplicación web escrita principalmente en PHP. Para instalar Monica CRM, puedes utilizar un servidor web como Apache2, Nginx o Caddy web server.

En esta consejero, ejecutarás Monica CRM con el servidor web Nginx. Luego, ahora instalarás paquetes Nginx en tu servidor Debian.

Antaño de comenzar a instalar los paquetes, ejecuta el sucesivo comando apt para modernizar y refrescar el índice de paquetes de Debian.

sudo apt update

Ahora, instala los paquetes Nginx mediante el sucesivo comando apt. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.

sudo apt install nginx

instalar nginx

Una vez instalado Nginx, comprueba que el servicio ‘nginx‘ se está ejecutando mediante el sucesivo comando systemctl.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Ahora verás que el servicio ‘nginx’ está competente y se ejecutará automáticamente al provenir el sistema. Y el estado del servicio Nginx es ahora en ejecución.

instalar nginx

Instalación del servidor MariaDB

El Monica CRM soporta MySQL/MariaDB para la instalación. Ahora instalarás MariaDB en tu servidor Debian. Todavía asegurarás la instalación del servidor MariaDB mediante el script ‘mysql_secure_installation’.

Instala el servidor MariaDB mediante el sucesivo comando apt. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.

sudo apt install mariadb-server

instalar mariadb

Si MariaDB está instalado, verifica el servicio MariaDB y asegúrate de que se está ejecutando. Ejecuta el sucesivo comando systemctl.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Verás que el servidor MariaDB está competente y se ejecutará automáticamente al provenir el sistema. Y el estado presente del servicio MariaDB es en ejecución.

comprobar mariadb

A continuación, asegurarás el despliegue del servidor MariaDB mediante el script‘mysql_secure_installation‘, que proporcionan los paquetes MariaDB.

Ejecuta el sucesivo comando para comenzar a afianzar el despliegue de MariaDB.

sudo mysql_secure_installation

Se te preguntará por varias configuraciones de MariaDB:

  • ¿Cambiar la autenticación a unix_socket? entrada n.
  • ¿Cambiar la contraseña de root de MariaDB? introduce y para confirmar, introduce la nueva contraseña de tu servidor MariaDB y repite la contraseña.
  • ¿Desactivar la conexión remota del becario root? introduce y para confirmar – no se debe permitir al becario root conectarse remotamente.Eliminar becario incógnito? introduce y para confirmar.
  • ¿Eliminar la almohadilla de datos por defecto ‘test’? introduce y para confirmar y eliminar la almohadilla de datos de prueba.
  • Por postrero, introduce y para recargar los privilegios de las tablas y aplicar los nuevos cambios.

El servidor MariaDB ya está instalado y protegido.

Instalación y configuración de PHP-FPM 8.1

Monica CRM es una aplicación web basada en PHP, por lo que debes instalar paquetes PHP en tu servidor Debian. La lectura presente de Monica CRM requiere al menos PHP v8.1 o posterior.

Para el sistema Debian 11, instalarás los paquetes PHP 8.1 a través de un repositorio de terceros. Ahora instalarás PHP-FPM 8.1 a través del repositorio sury.org y configurarás tu instalación de PHP de acuerdo con los requisitos de Monica CRM.

Ejecuta el sucesivo comando para añadir el repositorio PHP 8.1 a tu servidor Debian.

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

Ahora verás que se añade el nuevo repositorio de PHP 8.1 y que el índice de paquetes se actualiza automáticamente.

añadir repo php

A continuación, instala los paquetes PHP-FPM 8.1 mediante el sucesivo comando apt.

sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-common php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-zip php8.1-intl php8.1-bcmath php8.1-gd php8.1-gmp php8.1-redis

Introduce Y para confirmar la instalación y pulsa ENTER para continuar.

instalar php

Una vez instalado PHP 8.1, edita el archivo de configuración‘/etc/php/8.1/fpm/php.ini‘ utilizando el comando editor nano.

sudo nano /etc/php/8.1/fpm/php.ini

Cambia la configuración por defecto de PHP con los siguientes ajustes.

date.timezone = Europe/Paris
max_execution_time = 130
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M

Guardaspaldas el archivo y cierra el editor cuando hayas terminado.

A continuación, reinicia el servicio PHP-FPM 8.1 para aplicar los nuevos cambios mediante el sucesivo comando systemctl.

sudo systemctl restart php8.1-fpm

Por postrero, ejecuta el sucesivo comando systemctl para confirmar el servicio PHP-FPM 8.1 y asegurarte de que el servicio está activado y en funcionamiento.

sudo systemctl is-enabled php8.1-fpm
sudo systemctl status php8.1-fpm

Verás que PHP-FPM 8.1 está competente y se ejecutará automáticamente al iniciar el sistema. Y el estado presente del servicio PHP-FPM 8.1 es en ejecución.

La Pila LEMP ya está instalada y configurada, a continuación empieza a crear una nueva almohadilla de datos y un nuevo becario para Monica CRM.

Configurar la almohadilla de datos y el becario MariaDB

Para configurar la almohadilla de datos MariaDB y el becario para la instalación de Monica CRM, debes iniciar sesión en el shell MariaDB.

Accede al intérprete de comandos MariaDB mediante el comando mysql que se indica a continuación.

sudo mysql -u root -p

Ejecuta las siguientes consultas para crear una nueva almohadilla de datos y un nuevo becario para Monica CRM. Para esta consejero, crearás una nueva almohadilla de datos monicacrm_dbcon el becario MariaDB [email protected]. Adicionalmente, asegúrate de cambiar la contraseña con la nueva contraseña.

CREATE DATABASE monicacrm_db;
CREATE USER [email protected];
GRANT ALL ON monicacrm_db.* TO 'monica'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

crear base de datos

A continuación, ejecuta la sucesivo consulta para confirmar los privilegios del becario MariaDB [email protected].

SHOW GRANTS FOR [email protected];
quit

Y verás que el becario MariaDB [email protected] tiene permiso para ingresar a la almohadilla de datos Monica CRM monicacrm_db.

comprobar privilegios de usuario

Instalar Composer

Luego de configurar la almohadilla de datos MariaDB y el becario, ahora instalarás el Composer que se utilizará para instalar las dependencias PHP para el Monica CRM.

Instala Composer mediante el comando de una sarta que aparece a continuación. Este comando descargará el script instalador de Composer y lo ejecutará. A continuación, instala Composer en /usr/bin/composer.

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

instalar composer

Una vez instalado Composer, verifícalo utilizando el sucesivo comando composer. Deberías ver la lectura detallada de Composer y la página de ayuda sobre cómo utilizar Composer.

sudo -u www-data composer -v

Instalar Node.js y Yarn

Luego de instalar Composer, ahora instalarás Node.js y Yarn. Entreambos paquetes se utilizarán para inventariar archivos estáticos para Monica CRM. Y la lectura presente de Monica CRM requiere al menos Node.js v16.

El repositorio por defecto de Debian proporciona Node.js v12, así que instalarás la última lectura de Node.js a través del repositorio de terceros Nodesource.

Ejecuta el sucesivo comando para añadir el repositorio Nodesource de Node.js. En este ejemplo, instalarás Node.js v16.

curl -fsSL https://deb.nodesource.com/setup_16.x | bash -

Ahora verás que el repositorio Nodesource se añade a tu sistema Debian y se actualiza el índice de paquetes.

repositorio nodejs

A continuación, ejecuta el sucesivo comando para añadir el repositorio de paquetes Yarn a tu sistema.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Ahora actualiza y refresca tu índice de paquetes de Debian. A continuación, instala Node.js y Yarn mediante el sucesivo comando apt.

sudo apt update
sudo apt install nodejs yarn

Introduce y para confirmar la instalación y pulsa ENTER para confirmar y continuar.

instalar nodejs yarn

Una vez instalados Node.js y Yarn, ejecuta el sucesivo comando para comprobar el archivo binario de ambas aplicaciones.

which node
which yarn

Por postrero, comprueba la lectura de Node.js y Yarn mediante el sucesivo comando. Verás la lectura instalada de Node.js y Yarn en la salida.

node --version
yarn --version

En este punto, las dependencias del paquete para Monica CRM están instaladas. A continuación, iniciarás la instalación de Monica CRM descargando el código fuente, instalando las dependencias de los paquetes mediante Composer, y luego compilando los archivos estáticos utilizando Node.js y Yarn.

Instalación de Monica CRM

Ahora comenzarás la instalación de Monica CRM. Descargarás el código fuente, establecerás el permiso y la propiedad correctos, instalarás las dependencias PHP mediante Composer, instalarás y generarás archivos estáticos mediante Yarn y Node.js, y luego generarás la secreto de la aplicación y migrarás la almohadilla de datos para producción.

Antaño de comenzar la instalación, asegúrate de que el paquete git está instalado. Si no lo está, puedes instalarlo mediante el sucesivo comando apt.

sudo apt install git -y

Ahora, mueve el directorio de trabajo a«/var/www/» y descarga el código fuente de Monica CRM mediante el comando git como se indica a continuación. Verás el nuevo directorio«monica«.

cd /var/www/
git clone https://github.com/monicahq/monica.git

Muévete al directorio«/var/www/monica» y mueve la rama maestra a la lectura específica«3.7.0«. Puedes consultar la página de GitHub de Monica CRM para obtener versiones detalladas de Monica CRM.

cd /var/www/monica
git checkout tags/v3.7.0

A continuación, copia la configuración por defecto .env.example a .env. Luego, cambia la propiedad a‘www-data‘.

cp /var/www/monica/.env.example /var/www/monica/.env
sudo chown www-data:www-data /var/www/monica/.env

Edita el archivo .env utilizando el editor nano.

nano /var/www/monica/.env

Cambia el‘APP_ENV‘ a production y el‘APP_URL‘ al nombre de dominio de tu instalación de Monica CRM. A continuación, cambia los datos de la almohadilla de datos MariaDB por la almohadilla de datos y el becario que has creado antiguamente.

APP_ENV=production
...
APP_URL=https://hwdomain.io/
...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
...
DB_DATABASE=monica
DB_USERNAME=homestead
DB_PASSWORD=password

Guardaspaldas el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el sucesivo comando para cambiar la propiedad del directorio de instalación de Monica CRM ‘/var/www/monica‘ al becario www-data. A continuación, crea otro directorio ‘/var/www/.cache‘, y cambia la propiedad a www-data.

sudo chown -R www-data:www-data /var/www/monica

sudo mkdir -p /var/www/.cache
sudo chown -R www-data:www-data /var/www/.cache

A continuación, ejecuta el sucesivo comando de composer para instalar las dependencias del paquete PHP para Monica CRM.

sudo -u www-data composer install --no-interaction --no-dev

A continuación puedes ver la instalación de las dependencias PHP.

instalar dependencias

Una vez instaladas las dependencias, verás un resultado como el sucesivo:

instalación completada

A continuación, crea otro directorio nuevo que se utilizará para acumular la gusto de los paquetes JavaScript. A continuación, cambia la propiedad a www-data.

sudo mkdir -p /var/www/.yarn
sudo chown -R www-data:www-data /var/www/.yarn

Luego, instala los paquetes JavaScript para las aplicaciones web Monica CRM y genera los archivos estáticos para el entorno de producción mediante el comando yarn que aparece a continuación.

sudo -u www-data yarn install
sudo -u www-data yarn run production

A continuación puedes ver el proceso de descarga de los paquetes JavaScript.

instalar dependencias

A continuación puedes ver el proceso de compilación de los archivos estáticos.

compilar archivos estáticos

Cuando se compilen los archivos estáticos, verás el mensaje de salida como«Compilado correctamente en ...».

archivos estáticos generados

Ahora, ejecuta el sucesivo comando para difundir la secreto de aplicación para Monica CRM. A continuación, migra la almohadilla de datos para producción. Cuando se te pida que confirmes la influencia, introduce«sí» y pulsa INTRO para continuar.

sudo -u www-data php artisan key:generate
sudo -u www-data php artisan setup:production -v

generar la clave de la app y migrar la base de datos

Una vez migrada la almohadilla de datos, verás un resultado como el sucesivo:

base de datos migrada

Por postrero, para completar la configuración de Monica CRM, incluso necesitarás crear un Cronjob. Ejecuta el sucesivo comando para crear un nuevo cron para el becario www-data.

crontab -u www-data -e

Elige tu editor preferido y prueba la sucesivo configuración en el archivo.

* * * * *   /usr/bin/php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

Guardaspaldas el archivo y sal del editor cuando hayas terminado.

Para afianzar el permiso del directorio de instalación de Monica CRM, ejecuta el sucesivo comando para cambiar la propiedad a www-datos. A continuación, cambia el permiso del directorio‘storage‘ a 775.

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storage

Llegados a este punto, ya has completado la configuración del Monica CRM. A continuación, configurarás el monolito de servidor Nginx para el Monica CRM.

Configurar el monolito de servidor Nginx

Antaño de configurar el monolito de servidor Nginx, asegúrate de que tu nombre de dominio apunta a la dirección IP del servidor, y asegúrate incluso de que ya tienes certificados SSL. Si no tienes certificados SSL, puedes difundir SSL gratuitamente a través de Let’sencrypt.

Crea un nuevo archivo‘/etc/nginx/sites-available/monicacrm‘ utilizando el editor nano.

sudo nano /etc/nginx/sites-available/monicacrm

Añade las configuraciones de Nginx que se indican a continuación. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL.

server {
listen 80;
server_name hwdomain.io;
return 301 https://$host$request_uri;

}

server {
listen 443 ssl http2;

ssl_certificate /etc/letsencrypt/live/hwdomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hwdomain.io/private.key;

server_name hwdomain.io;
root /var/www/monica/public;

index index.php;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}

Guardaspaldas el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el sucesivo comando para activar el monolito de servidor Nginx‘monicacrm‘. A continuación, verifica la configuración de Nginx para asegurarte de que tienes la configuración adecuada.

sudo ln -s /etc/nginx/sites-available/monicacrm /etc/nginx/sites-enabled/
sudo nginx -t

Si la configuración de Nginx es correcta, deberías ver un mensaje de salida como«Sintaxis correcta – prueba realizada correctamente«.

Ahora, ejecuta el sucesivo comando systemctl para reiniciar el servicio Nginx y aplicar la configuración del monolito del servidor nee.

sudo systemctl restart nginx

Ya puedes ingresar a tu instalación de Monica CRM a través del navegador web.

Para terminar

Abre el navegador web y entrevista el nombre de dominio de tu instalación de Monica CRM (es sostener: https://hwdomain.io/). En la primera configuración, tendrás que registrar una cuenta para tu instalación de Monica CRM.

Introduce el nombre de becario, la contraseña y la dirección de correo electrónico. A continuación, haz clic en Registrar.

configurar usuario

Luego de que el becario se registre, verás el panel de control del becario de Monica CRM.

salpicadero

Conclusión

En este tutorial, has instalado Monica CRM en el servidor Debian 11. Todavía has configurado la pila LEMP (Nginx, MariaDB y PHP-FPM) en el servidor Debian, has instalado el gerente de paquetes PHP Composer y has instalado Node.js y Yarn.

A lo dispendioso de este tutorial, ya tienes el Monica CRM instalado y asegurado mediante conexiones HTTPS. Ahora puedes comenzar a organizar tus contactos, crear diarios y hacer un seguimiento de todo lo importante sobre tus contactos.




Cacti es una utensilio de monitorización de red de código hendido basada en web y escrita en PHP. Cacti es el front-end de RRDtool, el en serie de la industria. Cacti genera gráficos de carga de la CPU y de utilización del ufano de cuadrilla de la red mediante SNMP (Protocolo Simple de Administración de Red). Está especialmente diseñado para supervisar dispositivos de red como conmutadores, enrutadores y servidores. Cacti almacena todos los datos necesarios en la almohadilla de datos MySQL para suscitar diversos gráficos.

Esta capitán te mostrará cómo instalar las herramientas de monitorización Cacti en Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11.
  • Se ha configurado una contraseña de root en el servidor.

Cómo comenzar

Antiguamente de comenzar, siempre es una buena idea modernizar tu sistema almohadilla a la última traducción. Ejecuta el sucesivo comando para modernizar todos los paquetes:

sudo apt update
sudo apt upgrade

Tras la aggiornamento de los paquetes, puedes advenir al sucesivo paso de la instalación.

Instalar dependencias

Cacti utiliza SNMP, por lo que necesitas instalar las dependencias necesarias ejecutando el sucesivo comando:

sudo apt install snmp snmpd php-snmp rrdtool librrds-perl unzip curl git gnupg2

Instalar servidor LAMP

Necesitas instalar Apache, PHP y MySQL/MariaDB en tu servidor.

Instalar el servidor web Apache

Puedes instalar el servidor web Apache mediante el sucesivo comando:

sudo apt install apache2 -y

A continuación, inicia el servicio Apache y habilítalo para que se inicie al poner en marcha ejecutando el sucesivo comando:

sudo systemctl start apache2
sudo systemctl enable apache2

Instalar PHP

Necesitas instalar PHP y otras extensiones PHP necesarias:

apt install php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp -y

A continuación, realiza algunas modificaciones en el archivo php.ini:

vim /etc/php/*/apache2/php.ini

Ahora, realiza los cambios que se muestran a continuación:

memory_limit = 512M
max_execution_time = 60
date.timezone = Asia/Kolkata

Ahora, cuidado y cierra el archivo y, a continuación, edita php.ini para CLI:

vim /etc/php/*/cli/php.ini

A continuación, realiza los siguientes cambios:

memory_limit = 512M
max_execution_time = 60
date.timezone = Asia/Kolkata

Protector y cierra el archivo y reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Instalar y configurar el servidor de almohadilla de datos para Cacti

MySQL/MariaDB es el backend para Cacti. Puedes instalar MariaDB ejecutando el sucesivo comando:

sudo apt install mariadb-server

A continuación, inicia el servicio MariaDB, habilita el servicio al iniciar el sistema y comprueba el estado del servicio MariaDB mediante el sucesivo comando:

sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb

A continuación, inicia sesión en el intérprete de comandos de MariaDB ejecutando el sucesivo comando:

mysql

Tras iniciar sesión, crea una almohadilla de datos y un adjudicatario para Cacti ejecutando el sucesivo comando:

CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON cactidb.* TO 'cacti_user'@'localhost' IDENTIFIED BY 'password';
ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

A continuación, vacía los privilegios para aplicar los cambios y sal del intérprete de comandos MariaDB ejecutando el sucesivo comando:

flush privileges;
exit;

Ahora, tienes que importar los datos de la zona horaria a la almohadilla de datos MariaDB. Ejecuta el sucesivo comando para importar la zona horaria:

mysql mysql < /usr/share/mysql/mysql_test_data_timezone.sql

importar base de datos mysql cacti

Ahora, inicia sesión en el intérprete de comandos MariaDB y concede los privilegios necesarios en la zona horaria MySQL ejecutando el sucesivo comando:

mysql
GRANT SELECT ON mysql.time_zone_name TO [email protected];

A continuación, elimina los privilegios y sal del intérprete de comandos MariaDB:

flush privileges;
exit;

Conceder privilegios al usuario MySQL

A continuación, edita el archivo de configuración por defecto de MariaDB:

vim /etc/mysql/mariadb.conf.d/50-server.cnf

Primero, comenta las dos líneas siguientes añadiendo #tag

#collation-server      = utf8mb4_general_ci
#character-set-server  = utf8mb4

A continuación, añade / modifica las siguientes líneas debajo de la sección [mariadb]:

collation-server = utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size = 128M
tmp_table_size = 128M
join_buffer_size = 128M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 1G
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000
innodb_doublewrite = 0

Ahora, cuidado y sal del archivo y reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

Tras reiniciar el servicio, puedes advenir al sucesivo paso.

Instalar y configurar Cacti

Ahora, descarga la última traducción de Cacti desde el sitio web oficial de Cacti utilizando el comando wget:

wget https://www.cacti.net/downloads/cacti-latest.tar.gz

A continuación, extrae el archivo tar.gz ejecutando el sucesivo comando:

tar -zxvf cacti-latest.tar.gz

Ahora, mueve el directorio extraído a la ruta raíz de Apache ejecutando el sucesivo comando:

mv cacti-1* /var/www/html/cacti

A continuación, importa la almohadilla de datos a la almohadilla de datos de cacti ‘cactidb’ utilizando el sucesivo comando:

mysql cactidb < /var/www/html/cacti/cacti.sql

Ahora edita el archivo config.php e introduce los datos de tu almohadilla de datos Cacti.

cd /var/www/html/cacti/include/
vim config.php

A continuación, realiza cambios en las siguientes líneas:

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname="localhost";
$database_username="cacti_user";
$database_password = 'password';
$database_port     = '3306';

Ahora, establece los permisos necesarios para el directorio cacti utilizando el sucesivo comando:

chown -R www-data:www-data /var/www/html/cacti/
chmod -R 775 /var/www/html/cacti/

Ahora, establece la frecuencia de recogida de datos utilizando el cronjob para Cacti con el sucesivo comando:

vim /etc/cron.d/cacti

Añade la sucesivo crencha para establecer que Cacti Pollor ejecute poller.php cada cinco minutos.

*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1

Protector el archivo y sal de él.

Configurar el host imaginario Apache para Cacti

A continuación, tienes que crear un archivo de configuración de host imaginario Apache independiente para Cacti. Puedes crearlo utilizando el sucesivo comando:

vim /etc/apache2/sites-available/cacti.conf

A continuación, añade las siguientes líneas:

Apodo /cacti /var/www/html/cacti
<Directory /var/www/html/cacti>
Options +FollowSymLinks
AllowOverride None
<IfVersion >= 2.3>
Require all granted
</IfVersion>
<IfVersion < 2.3>
Order Allow,Deny
Allow from all
</IfVersion>

AddType application/x-httpd-php .php

<IfModule mod_php.c>
php_flag magic_quotes_gpc Off
php_flag short_open_tag On
php_flag register_globals Off
php_flag register_argc_argv On
php_flag track_vars On
# this setting is necessary for some locales
php_value mbstring.func_overload 0
php_value include_path .
</IfModule>

DirectoryIndex index.php
</Directory>

A continuación, tienes que habilitar este archivo de host imaginario. Ejecuta el sucesivo comando para habilitarlo.

a2ensite cacti

Verifica el archivo cacti.conf ejecutando el sucesivo comando:

ls -l /etc/apache2/sites-enabled/cacti.conf

A continuación, tienes que reiniciar el servicio Apache para aplicar los cambios:

systemctl restart apache2

Tras reiniciar el servicio Apache, ejecuta el sucesivo comando para comprobar el estado del servicio Apache:

systemctl status apache2

Salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-06-29 07:22:07 UTC; 3s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 63096 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 63100 (apache2)
      Tasks: 6 (limit: 1132)
     Memory: 13.6M
        CPU: 100ms
     CGroup: /system.slice/apache2.service
             ??63100 /usr/sbin/apache2 -k start
             ??63101 /usr/sbin/apache2 -k start
             ??63102 /usr/sbin/apache2 -k start
             ??63103 /usr/sbin/apache2 -k start
             ??63104 /usr/sbin/apache2 -k start
             ??63105 /usr/sbin/apache2 -k start

Jun 29 07:22:07 debian-11 systemd[1]: Starting The Apache HTTP Server…

En este punto, tu Cacti está instalado y configurado, y puedes proceder al sucesivo paso para entrar a Cacti desde un navegador web.

Interfaz Web de Cacti

Ahora, abre tu navegador web e introduce la sucesivo URL con tu dirección IP:

http://your-server-ip/cacti

Deberías ver la página de inicio de sesión de Cacti.

Acceso a cactus

Introduce el nombre de adjudicatario y la contraseña por defecto como admin y haz clic en el retoño Iniciar sesión. Se te redirigirá a la pantalla de restablecimiento de contraseña como se muestra a continuación:

Establecer contraseña cacti

Tras cambiar la contraseña por defecto, pulsa el retoño Recoger. Deberías ver la pantalla del Acuerdo de Atrevimiento:

aceptar el acuerdo de licencia de cacti

Selecciona la casilla Aceptar el Acuerdo de Atrevimiento GPL y pulsa el retoño Comenzar. Deberías ver la Comprobación Previa a la Instalación y otra información de advertencia en la sucesivo pantalla:

Comprobaciones previas a la instalación

Haz clic en el retoño Ulterior. Deberías ver la sucesivo pantalla Tipo de instalación:

Tipo de instalación

Aquí puedes elegir el tipo de instalación que deseas y, a continuación, hacer clic en el retoño Ulterior. A continuación, deberías ver la pantalla Comprobación de permisos de directorio:

Comprobaciones de permisos de directorio

Haz clic en el retoño Ulterior. Te mostrará la pantalla Ubicaciones y versiones binarias críticas como se indica a continuación:

Ubicaciones y versiones binarias

Haz clic en el retoño Ulterior. Deberías ver la pantalla de Protección de la Tira Blanca de Subsistencia de Entradas:

Validación de entradas

Selecciona la casilla «He ilustrado esta afirmación» y Pulsa el retoño Ulterior. Deberías ser redirigido a la pantalla Perfil Predeterminado:

red y perfil

Introduce la información según tus evacuación y pulsa el retoño Ulterior. A continuación deberías ver la pantalla de Configuración de Plantilla:

Configuración de la plantilla

Haz clic en el retoño Ulterior, y deberías ver la configuración relacionada con UTF-8 en la sucesivo pantalla:

Asignación de servidores

Haz clic en el retoño Ulterior. Deberías ver la pantalla Confirmar instalación:

Confirma la instalación

Selecciona la casilla «Confirmar instalación» y luego pulsa el retoño Instalar. Deberías ver el registro de instalación en la sucesivo pantalla:

Instalación de cactus finalizada

Una vez finalizada la instalación, haz clic en el retoño Comenzar. Deberías ver la pantalla Cacti Dashboard:

Tablero de cactus

Conclusión

Con este artículo, has instalado y configurado correctamente la utensilio de monitorización Cacti en Debian 11. Ahora puedes añadir dispositivos de red, supervisar el ufano de cuadrilla de tu red, suscitar diversos gráficos de supervisión de la red y muchas cosas más. Puedes entrar fácilmente a Cacti desde un navegador web. No dudes en preguntarme si tienes alguna duda.




Redmine es una útil gratuita y de código descubierto para la mandato de proyectos y el seguimiento de incidencias. Es un software de aplicación basado en web, escrito principalmente en Ruby on Rails. Es multiplataforma y admite varias bases de datos y varios idiomas.

Redmine es flexible y puede utilizarse para distintos tipos de organizaciones y proyectos, desde pequeñas, medianas o grandes organizaciones. Te permite crear y tramitar múltiples proyectos, y cada tesina tiene su propia Wiki, Foros, seguimiento de incidencias, etc. Por otra parte, te permite crear roles personalizados en función de las deyección de tu ordenamiento, y muchas cosas más.

Redmine se publica bajo abuso GNU GPL v2 y puede instalarse en cualquier sistema eficaz, como Linux, Windows o macOS. Admite distintos tipos de bases de datos, como PostgreSQL, MySQL y SQLite (por defecto).

En esta callejero, instalarás Redmine con el servidor web Apache2 y el servidor MySQL en un servidor Ubuntu 22.04. Asimismo asegurarás la instalación de Redmine con certificados SSL.

Requisitos previos

Este tutorial requiere los siguientes requisitos

  • Un servidor Ubuntu 22.04 – Este ejemplo utiliza un servidor Ubuntu con el nombre de host redmine-server.
  • Un sucesor no root con privilegios de root sudo – Pero incluso puedes utilizar el sucesor root.
  • Un nombre de dominio apuntando a la dirección IP de tu servidor – Para la producción, debes asegurarte de que tu nombre de dominio apunta a la dirección IP de tu servidor.

Una vez que tengas todo presto, ya puedes proceder al primer paso de la instalación de Redmine.

Instalación de dependencias

Redmine es una útil de mandato de proyectos y seguimiento de incidencias de código descubierto escrita principalmente en Ruby y Ruby on Rails (RoR). Para instalar Redmine, primero debes instalar Ruby, luego puedes instalar otras dependencias como el servidor web Apache2 y la pulvínulo de datos mediante el servidor MySQL.

En este ejemplo, ejecutarás Redmine con el servidor web Apache2 y el servidor MySQL.

Antaño de abrir a instalar los paquetes, ejecuta el próximo comando apt para modernizar y refrescar el índice de paquetes de Ubuntu.

sudo apt update

Una vez actualizado el repositorio, instala algunas de las siguientes dependencias de paquetes mediante el comando apt que aparece a continuación.

Con este comando, instalarás el servidor web Apache2 seguido del linapache2-mod-passenger que se utilizará para configurar la aplicación RoR para que se ejecute bajo Apache2. Asimismo instalarás paquetes Ruby.

sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev

Cuando se te pida que confirmes la instalación, introduce y y pulsa ENTER para continuar.

instalar dependencias

Una vez instalados Apache2 y Ruby, ejecuta el próximo comando para instalar el servidor MySQL. Redmine admite varios RDBMS como PostgreSQL, MySQL/MariaDB y SQLite. en este ejemplo utilizarás el servidor MySQL.

sudo apt install mysql-server

Introduce y cuando se te pida que confirmes la instalación, y pulsa INTRO para continuar.

instalar mysql

Para la instalación de Redmine, incluso necesitarás instalar un bundler en tu servidor Ubuntu. bundler es una recorrido de comandos que se utilizará para tramitar los paquetes Ruby Gems.

Ejecuta el próximo comando para instalar un bundler en tu sistema.

sudo gem install bundler

Una vez instalado el bundler, verás una salida como la próximo:

instalar bundler

Por final, verifica los servicios Apache2 y MySQL mediante el próximo comando systemctl. Así te asegurarás de que los servicios Apache2 y MariaDB se están ejecutando y están habilitados.

Verifica el servicio Apache2.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

A continuación puedes ver que el servicio Apache2 está competente y se ejecutará automáticamente al acelerar el sistema. Y el estado presente del servicio es en ejecución.

comprobar apache2

Verifica el servicio MySQL.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

Verás una salida similar a la próximo – El servicio MySQL está competente y se ejecutará automáticamente al acelerar el sistema. Y el estado presente del servicio MySQL es en ejecución.

comprobar mysql

Configurar el servidor MySQL

Una vez instalados Apache2 y el servidor MySQL, configurarás la contraseña raíz de MySQL y asegurarás la instalación mediante mysql_secure_installation. A continuación, incluso crearás una nueva pulvínulo de datos MySQL y un nuevo sucesor para Redmine.

Accede a MySQL mediante el comando mysql que aparece a continuación.

sudo mysql

Ahora cambia la contraseña raíz de MySQL mediante la próximo consulta. Y asegúrate de cambiar la contraseña por la tuya. A continuación, escribe quit para salir del intérprete de comandos MySQL.

ALTER USER [email protected] IDENTIFIED WITH mysql_native_password BY 'password';
quit

cambiar contraseña raíz

A continuación, ejecuta el próximo comando para abrir a apuntalar la implementación del servidor MySQL.

sudo mysql_secure_installation

Cuando se te pida la contraseña raíz de MySQL, introduce tu contraseña correcta.

A continuación, se te pedirán otras configuraciones de MySQL, como desactivar el inicio de sesión remoto para el sucesor root, eliminar el sucesor secreto, eliminar la prueba de pulvínulo de datos predeterminada y recargar todos los privilegios de las tablas. Para todas esas configuraciones del servidor MySQL, introduce Y para confirmar la configuración.

Tras apuntalar el despliegue de MySQL, es hora de configurar una nueva pulvínulo de datos y un nuevo sucesor para Redmine.

Accede al shell de MySQL mediante el comando mysql que se indica a continuación. Se te pedirá la contraseña raíz de MySQL, introduce la contraseña correcta para tu sucesor raíz de MySQL y pulsa INTRO.

sudo mysql -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva pulvínulo de datos MySQL y un nuevo sucesor para Redmine. En este ejemplo, crearás una nueva pulvínulo de datos y un nuevo sucesor redmine con la contraseña‘secretPassword‘. Puedes sustituir la contraseña de la pulvínulo de datos por tu contraseña.

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

crear db y usuario

A continuación, ejecuta las siguientes consultas para compulsar los privilegios del sucesor MySQL redmine. Asegúrate de que el sucesor MySQL redmine tiene privilegios sobre la pulvínulo de datos redmine.

SHOW GRANTS FOR [email protected];
quit

A continuación puedes ver el sucesor MySQL [email protected] con privilegios para la pulvínulo de datos redmine.

comprobar privilegios

Por final, escribe quit para cerrar la sesión en el intérprete de comandos MySQL.

Con todas las dependencias instaladas, y la pulvínulo de datos MySQL y el sucesor creados, estás presto para instalar la útil de mandato de proyectos Redmine en tu servidor Ubuntu.

Instalar Redmine

En este paso, instalarás la última lectura de Redmine. En el momento de escribir esto, la última lectura de Redmine es la v5.0.2.

Descargarás el código fuente de Redmine, configurarás la pulvínulo de datos, instalarás las dependencias de Ruby mediante la compilación, configurarás el token secreto de Redmine y migrarás la pulvínulo de datos.

En este ejemplo, instalarás Redmine en el directorio /opt/redmine.

Desplázate al directorio /opt.

cd /opt/

Ahora, descarga el código fuente de Redmine con el próximo comando wget. Una vez descargado, verás el archivo redmine-5.0.2.tar.gz en tu directorio /opt.

wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz

A continuación, ejecuta el próximo comando para extraer el código fuente de Redmine redmine-5.0.2.tar.g z y crea un nuevo enlace simbólico para el directorio de Redmine a /opt/redmine.

tar -xvzf redmine-5.0.2.tar.gz
sudo ln -s redmine-5.0.2 redmine

El directorio principal de instalación de Redmine será /opt/redmine.

Desplázate al directorio /opt/redmine.

cd /opt/redmine/

Copia la configuración por defecto de la pulvínulo de datos ‘config/database.yml.example’ en ‘config/database.yml’. A continuación, abre el archivo de configuración de la pulvínulo de datos ‘config/database.yml’ con el editor nano.

cp config/database.yml.example config/database.yml
nano config/database.yml

copiar la configuración de la base de datos

En la sección ‘producción’, cambia los detalles de la pulvínulo de datos MySQL y el sucesor. Asegúrate de utilizar el sucesor de la pulvínulo de datos y la contraseña correctos para Redmine.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword" 
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Cuidado el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el próximo comando bundler para instalar las dependencias de Ruby para la aplicación Redmine.

bundle config set --local without 'development test'
bundle install

Verás una salida similar a la próximo:

instalar dependencias

Una vez instaladas las dependencias de Redmine, ejecuta el próximo comando para originar el token secreto de Redmine y portar la pulvínulo de datos.

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

En la próximo captura de pantalla, puedes ver que se genera el token secreto de Redmine y el proceso de migración de la pulvínulo de datos de Redmine.

migrar base de datos

Por final, carga el predeterminado en tu instalación de Redmine con el próximo comando. Cuando se te pida que elijas el idioma, introduce en como para Inglés.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Cuando se carguen los datos por defecto de Redmine, verás el mensaje de salida como«Datos de configuración por defecto cargados«.

cargar datos por defecto

Ahora que Redmine está instalado, a continuación configurarás un host posible Apache2 para Redmine.

Configurar un host posible para Redmine

En este paso, crearás una nueva configuración de host posible Apache2 para Redmine. Así que asegúrate de que tienes el nombre de dominio que apunta a la dirección IP de tu servidor y de que se han generado los certificados SSL.

Ejecuta el próximo comando para habilitar los módulos ssl y reescritura de Apache.

sudo a2enmod ssl rewrite

Verás la salida como la próximo:

activar módulos apache2

Ahora, crea una nueva configuración de host posible Apache2‘/etc/apache2/sites-available/redmine.conf‘ utilizando el editor nano.

sudo nano /etc/apache2/sites-available/redmine.conf

Añade la próximo configuración al archivo. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL con tu configuración.

<VirtualHost *:80>
ServerName redmine.hwdomain.io
ServerAdmin [email protected]

# Redirect Requests to SSL
Redirect permanent "/" "https://redmine.hwdomain.io/"

</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost *:443>

ServerName redmine.hwdomain.io
RailsEnv production
DocumentRoot /opt/redmine/public

ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.hwdomain.io/privkey.pem

<Directory "/opt/redmine/public">
Allow from all
Require all granted
</Directory>

</VirtualHost>

</IfModule>

Cuidado el archivo y sal del editor.

A continuación, ejecuta el próximo comando para activar el archivo de host posible‘redmine.conf‘. A continuación, verifica tu configuración de Apache2 para asegurarte de que tienes la configuración adecuada.

sudo a2ensite redmine.conf
sudo apachectl configtest

Ahora obtendrás el mensaje de salida«Sintaxis OK» cuando tengas la configuración adecuada de Apache2.

configurar apache vhost

Por final, reinicia el servicio Apache2 mediante el próximo comando systemctl para aplicar el nuevo archivo de host posible.

sudo systemctl restart apache2

En este punto, Redmine está instalado y el host posible está configurado. Ahora deberías conseguir a tu instalación de Redmine a través de tu nombre de dominio.

Configurar el cortafuegos UFW

En producción, debes activar el cortafuegos. Para el sistema Ubuntu, puedes utilizar el cortafuegos por defecto UFE (Uncomplicated Firewall).

Ahora, añadirás reglas UFW que abran los servicios HTTP y HTTPS por defecto para que Redmine sea accesible desde fuera de la red.

Ejecuta el próximo comando ufw para añadir el perfil de aplicación por defecto«OpenSSH» al UFW. A continuación, inicia y activa el cortafuegos de la UFW.

sudo ufw allow "OpenSSH"
sudo ufw enable

Cuando te pida confirmación, introduce y para iniciar y habilitar el servicio de cortafuegos UFW.

permitir ssh

A continuación, ejecuta el próximo comando para añadir el perfil de aplicación«Apache Full» al cortafuegos. A continuación, comprueba el estado del UFW mediante el próximo comando.

sudo ufw allow "Apache Full"
sudo ufw status

Deberías ver que el estado del cortafuegos UFW está activo y que los perfiles de aplicación actualmente habilitados son OpenSSH y «Apache Full». Esto abrirá el puerto SSH 22 por defecto y los puertos 80 y 443 de los servicios HTTP y HTTPS.

comprobar ufw

Instalación de Redmine

Abre el navegador web y turista el nombre de dominio de tu instalación de Redmine (es sostener: https://redmine.hwdomain.io/).

Ahora verás la página de inicio por defecto de la útil de mandato de proyectos y seguimiento de incidencias Redmine. Haz clic en«Iniciar sesión» para conseguir al panel de sucursal de Redmine.

página principal redmine

Introduce el sucesor y contraseña predeterminados de sucursal de Redmine«adminadmin«.

inicio de sesión

Una vez que hayas iniciado sesión, se te pedirá que cambies la contraseña predeterminada de Redmine. Introduce la nueva contraseña para tu instalación de Redmine y haz clic en«Aplicar«.

cambiar contraseña

Por final, edita los datos de tu sucesor administrador de Redmine y haz clic en «Asegurar» para aplicar las configuraciones. Ya has configurado la pulvínulo de Redmine.

cambiar usuarios

Para añadir un nuevo tesina, haz clic en el menú«Proyectos«. Deberías poder crear, editar o eliminar Proyectos en tu Redmine.

lista de proyectos

Ahora, si quieres añadir configuraciones a Redmine, haz clic en el menú «Delegación«. Con eso, puedes añadir más usuarios, configurar grupos, delimitar roles, habilitar la autenticación a través de una aplicación de terceros como LDAP, y muchas cosas más.

administración

Conclusión

En este tutorial, has instalado y configurado la útil de mandato de proyectos y seguimiento de incidencias Redmine en el servidor Ubuntu 22.04. Asimismo has configurado la pulvínulo de datos MariaDB y el servidor web Nginx para Redmine. Por otra parte, incluso has asegurado la instalación de Redmine con certificados SSL.

Ahora que tienes Redmine instalado en tu sistema, puedes ampliar tu instalación de Redmine añadiendo algunas configuraciones adicionales, como integrar Redmine en tus infraestructuras actuales, como añadir autenticaciones LDAP, e integrarlo con SCM como SVN, Git y Mercurial. Por otra parte, puedes añadir roles según tu ordenamiento o empresa.




Go es un jerga de programación que fue creado inicialmente por un equipo de Google como sustituto de C. Querían tener un jerga en el que el compilador fuera rápido, pero asimismo de obediente programación y producción competente. Go puede utilizarse para muchas cosas, como programas de redes o sistemas distribuidos, y se ha yeguada el nombre de «el jerga de la abundancia».

Ayuda a la muchedumbre a hacer más cosas con pocas palabras, facilitando la escritura de frases largas sin perder tiempo con el formato. Si necesitas compartir tu software con otras personas, sólo tienes que compilarlo en un archivo para que no tengan que descargar nulo.

En este tutorial, veremos cómo instalar y configurar un espacio de trabajo de programación con Go a través de la semirrecta de comandos. Puedes seguirlo si tienes un sistema Debian 11 en funcionamiento. Otras distribuciones de Linux basadas en Debian deberían funcionar de forma similar.

Requisitos previos

Ayer de abrir con Go, asegúrate de tener lo próximo:

  • Un servidor con Debian 11 instalado.
  • Un agraciado no root con privilegios sudo.

Poner al día el sistema

Poner al día paquetes en Debian Linux es un proceso congruo nuclear. Para ello, sólo tienes que ejecutar el próximo comando en tu terminal:

sudo apt update && sudo apt upgrade -y
sudo apt install wget software-properties-common apt-transport-https

Esto obtendrá todas las actualizaciones para tu sistema e instalará cualquier paquete nuevo que esté arreglado en ese momento. Normalmente deberías abrir con este paso antiguamente de instalar nulo en tu sistema.

Instalar Go en Debian 11

En este paso, descargarás e instalarás Go. La traducción contemporáneo puede descargarse desde la página oficial de descargas de Go.

En el momento de escribir esto, la traducción 1.17 es la más flamante. Averigua qué traducción está arreglado para ti, y sustituye la URL por la que coincida con tu traducción contemporáneo.

cd
wget https://golang.org/dl/go1.17.linux-amd64.tar.gz

Una vez completada la descarga, extrae el ZIP descargado y colócalo donde quieras en tu servidor. Mantenerlo en /usr/tópico se considera la mejor actos:

sudo tar -zxvf go1.17.linux-amd64.tar.gz -C /usr/tópico/

Configurar el entorno Go

En este paso configuraremos la variable de entorno ${GOPATH} para GO.

Tendrás que crear una variable de entorno tópico citación $GOPATH y colocarla en tu ~/.profile. Para proveer el exposición, $GOPATH indicaba al compilador dónde apañarse código fuente de terceros, así como cualquier código que hubieras generado. Muchas utilidades de terceros siguen dependiendo de que esta variable esté configurada, por lo que configurarla sigue siendo una buena actos aunque no sea necesario.

echo "export PATH=/usr/tópico/go/bin:${PATH}" | sudo tee /etc/profile.d/go.sh
source /etc/profile.d/go.sh
echo "export PATH=/usr/tópico/go/bin:${PATH}" | sudo tee -a $HOME/.profile source
source $HOME/.profile

Para compulsar que tu configuración se ha chapón correctamente, ejecuta el comando echo.

echo $PATH

Este comando debería devolver un valencia similar al próximo:

Configurar el entorno Go

Si esto no es lo que ves con tu terminal, repite estos pasos asegurándote de que los títulos son correctos. Si algún comando devuelve un error, asegúrate de que has obtenido tu perfil ejecutando source $HOME/.profile.

Ahora que ya tienes configurado tu entorno, puedes compulsar la instalación de Go comprobando la traducción y las variables de entorno de Go.

go version
go env

Configurar el entorno Go

Crear un esquema de pruebas

Ahora que tienes Go instalado, puedes intentar crear un esquema de pruebas sencillo. Vamos a crear un esquema «Hola Mundo» en nuestro directorio principal.

Abre tu editor de texto predilecto y crea un nuevo archivo llamado helloworld.go.

cd
sudo nano helloworld.go

Rellena el archivo con las líneas que aparecen a continuación.

package main
import "fmt"

func main() {

fmt.Println("Howtoforge, Hello World!")

}

Guarnición el archivo con Ctrl+O y sal de Nano con Ctrl+X.

Ahora puedes seguir delante y ejecutar tu nuevo esquema con el comando go run.

go run helloworld.go

El paquete fmt, sigla de Format, llamará a la función Println. La función Println mostrará los títulos en la consola. Como resultado, en tu terminal verás el mensaje «Howtoforge, ¡Hola Mundo!».

Crear un proyecto de pruebas

Esta salida confirma que el espacio de trabajo Go funciona correctamente.

Conclusión

En este tutorial, te hemos mostrado cómo abrir con Golang en Debian 11. Go es un jerga potente con muchas herramientas y una comunidad excelente. Puedes encontrar más información sobre Go en su sitio web oficial.

Si tienes alguna pregunta, no dudes en dejar tus comentarios a continuación. Si te ha gustado nuestra agenda, compártela con tus amigos haciendo clic en los chico de las redes sociales.




En esta piloto, te mostraré cómo resolver archivos utilizando módulos Ansible. Aprenderás a copiar, editar, insertar, descargar y reemplazar archivos utilizando Ansible.

¿Qué haremos?

  • Copiar archivos utilizando los módulos ‘copy’ y ‘templates
  • Descargar archivos con el módulo «fetch
  • Editar archivos utilizando los módulos ‘blockinfile’, ‘lineinfile’ y ‘replace
  • Ejecutar los atributos del archivo

Copiar archivos con los módulos «copiar» y «plantillas» de Ansible

Ansible proporciona algunos módulos para copiar archivos del directorio lugar a las máquinas de destino remotas, se tráfico de los módulos ‘copiar’ y ‘plantillas’.

La diferencia entre el módulo «copiar» y el módulo «plantilla» es que el módulo «copiar» copiará el archivo del directorio «archivos» y el módulo «plantilla» copiará la plantilla Jinja2 del directorio «plantillas» de los playbooks de Ansible.

El módulo «copiar» es bueno para copiar archivos persistentes, como certificados, mientras que «plantilla» es más útil para configuraciones reutilizables, como la configuración del host imaginario, etc.

1. Copiar archivo de la máquina de destino lugar a la remota

Copia la configuración ‘sources.list’ del directorio lugar ‘files’ a la máquina remota ‘/etc/apt/sources.list’. Cuando haya una configuración, se reemplazará y se hará una copia de seguridad basada en las marcas de tiempo.

- name: Copy from Almacén to Remote Target Machine with 'copy'
  copy:
    src: sources.list
    dest: /etc/apt/sources.list
    backup: yes

2. Copia el archivo de la máquina remota a otro directorio

Copia la configuración de sudoers ‘/etc/sudoers.d/hakase’ de la máquina remota al otro directorio ‘/home/hakase/hakase-suoers.txt’. Se puede hacer con la opción ‘remote_src’.

- name: Copy file from one directory to other on the Remote Machine
  copy:
    src: /etc/sudoers.d/hakase
    dest: /home/hakase/hakase-sudoers.txt
    remote_src: yes

3. Copia el archivo y cambia el permiso y el propietario del archivo

Copia el archivo bash en el directorio ‘files’ a la máquina del servidor remoto y haz que el permiso por defecto del archivo sea ‘0755’ y el propietario del archivo sea ‘hakase’.

- name: Copy file and set up the permission and owner of the file
  copy:
    src: simple.sh
    dest: /home/hakase/simple.sh
    owner: hakase
    group: hakase
    mode: 0755

4. Copia el archivo con el módulo Plantilla

Copia la configuración de la plantilla Jinja2 para el host imaginario nginx del directorio ‘templates’ al directorio ‘/etc/sites-enabled/’ de la máquina remota. Con la plantilla Jinja2, podemos crear variables para nuestra configuración y hacerla más reutilizable.

- name: Copy file using 'template' module
  template:
    src: default.j2
    dest: /etc/nginx/sites-enabled/
    backup: yes
    owner: root
    group: root
    mode: 0644

Descargar un archivo utilizando el módulo Fetch en Ansible

Para descargar un archivo de la máquina remota a nuestro nodo ansible lugar, podemos utilizar el módulo ansible llamado ‘fetch’.

1. Descargar de una máquina remota a la lugar

Descarga el archivo de configuración nginx ‘nginx.conf’ del servidor remoto al directorio lugar del nodo ansible ‘/home/hakase/backup’ para crear una copia de seguridad. Y el módulo de extracción por defecto incluirá las estructuras de directorios.

- name: Download file from Remote Machine to Almacén ansible-node directory
  become: yes
  fetch:
    src: /etc/nginx/nginx.conf
    dest: /home/hakase/backup/

2. Descargar de remoto a lugar sin estructuras de directorios

Descarga desde la máquina remota al nodo-ansible lugar sin estructuras de directorios añadiendo la opción ‘plana’.

- name: Download file from Remote Machine to Almacén ansible node without directory structures
  become: yes
  fetch:
    src: /etc/nginx/nginx.conf
    dest: /home/hakase/backup/
    flat: yes

Editar archivos con Ansible

Ahora vamos a editar archivos utilizando los módulos de Ansible. Hay algunos módulos que debes conocer para editar archivos utilizando Ansible, como blockinfile, lineinfile y replace.

El blockinfile insertará/eliminará varias líneas del archivo. El lineinfile es para una sola dirección, y el módulo replace se puede utilizar para reemplazar cadenas.

1. Insertar varias líneas en un archivo utilizando «blockinfile

Añade la configuración de múltiples líneas a la configuración ssh ‘sshd_config’ utilizando el módulo ‘blockinfile’. Y la configuración por defecto insertará la nueva configuración al final de las líneas.

- name: Insert multiple lines and Backup
  blockinfile:
    path: /etc/ssh/sshd_config
    backup: yes
    block: |
      ClientAliveInterval 360
      ClientAliveCountMax 0

2. Insertar varias líneas utilizando las opciones de tanteador

O si quieres insertar a la dirección específica, puedes utilizar la opción tanteador y seguir por ‘insertafter’ o ‘insertbefore’ y Regex, o puedes utilizar ambas.

El sucesivo texto de jugadas insertará una nueva configuración adicional en el archivo ‘sshd_config’. La configuración adicional se añadirá antaño de la dirección ‘UserPAM’ rodeada por el tanteador por defecto ‘# BEGIN ANSIBLE MANAGED BLOCK’.

- name: Insert after regex, backup, and validate
  blockinfile:
    path: /etc/ssh/sshd_config
    backup: yes
    marker: "# {mark} ANSIBLE MANAGED BLOCK "
    insertbefore: '^UsePAM '
    block: |
      AllowUsers hakase vagrant
      PermitEmptyPasswords no
      PermitRootLogin no
    validate: '/usr/sbin/sshd -T -f %s'

3. Eliminar/Eliminar los alrededores del sillar de líneas múltiples adentro de los marcadores

Elimina el sillar de líneas rodeado por el tanteador ansible ‘# BEGIN ANSIBLE MANAGED BLOCK’.

- name: Remote text block surrounding by markers
  blockinfile:
    path: /etc/ssh/sshd_config
    marker: "# {mark} ANSIBLE MANAGED BLOCK"
    content: ""
    backup: yes

4. Insertar una nueva dirección en el archivo

Inserta una nueva dirección de configuración ‘PasswordAuthentication no’ bajo la dirección regex ‘#PermitEmptyPasswords’ a la configuración ssh ‘/etc/ssh/sshd_config’.

- name: Insert New Line under the Regex configuration
  lineinfile:
    path: /etc/ssh/sshd_config
    backup: yes
    regexp: '^PasswordAuthentication '
    insertafter: '^#PermitEmptyPasswords '
    line: 'PasswordAuthentication no'
    validate: '/usr/sbin/sshd -T -f %s'

5. Elimina la dirección del archivo utilizando el módulo lineinfile

Para eliminar/borrar una dirección del archivo, puedes utilizar la opción ‘estado: desprovisto’ y seguir por la expresión Regular de la dirección como a continuación.

- name: Remove a line from the file
  lineinfile:
    path: /etc/ssh/sshd_config
    state: absent
    regexp: '^PasswordAuthentication'

6. Reemplazar cadenas de patrones con la expresión regular y el módulo Reemplazar

Ahora vamos a reemplazar una cautiverio utilizando el módulo ‘reemplazar’. El módulo replace requiere la expresión regular como backend-reference para reemplazar cadenas de tipo.

Cambia el nombre del host en el archivo ‘/etc/hosts’ utilizando el módulo replace.

- name: Replace the default
  replace:
    path: /etc/hosts
    regexp: '(s+)node.provision.labs(s+.*)?$'
    replace: '1box.hakase.labs2'
    backup: yes

7. Descomentar configuraciones

El módulo replace puede utilizarse para descomentar la configuración en el sistema Linux. De forma sencilla, podemos eliminar la cautiverio de comentario ‘#’ al principio de dirección utilizando el módulo replace.

Descomenta la configuración de la dirección ‘server_tokens’ en el archivo ‘/etc/nginx/nginx.conf’.

- name: Uncomment configuration
  replace:
    path: /etc/nginx/nginx.conf
    regexp: '#(s+)server_tokens'
    replace: 'server_tokens'
    backup: yes

8. Comenta la dirección de configuración

A continuación, comenta la dirección de configuración añadiendo el ‘#’ al principio de la dirección.

- name: Comment Line configuration
  replace:
    path: /etc/nginx/nginx.conf
    regexp: '(s+)gzip on'
    replace: 'nt#gzip on'
    backup: yes

Establecer atributos de archivos utilizando el módulo file en Ansible

El módulo archivo se puede utilizar para establecer atributos de los propios archivos, como cambiar el propietario, el agrupación y el permiso, crear un enlace simbólico, crear un nuevo directorio y eliminar un enlace simbólico, archivo o directorio.

1. Crear enlace simbólico de archivo

Crea un archivo symlink en el host remoto para la configuración del host imaginario nginx llamado ‘vhost’ al directorio ‘/etc/nginx/sites-enabled/’.

- name: Create Symlink of file
  file:
    src: /etc/nginx/sites-available/vhost
    dest: /etc/nginx/sites-enabled/vhost
    owner: root
    group: root
    state: link

2. Crear un nuevo directorio utilizando el módulo de archivos

Para crear un nuevo directorio utilizando el módulo file, necesitamos utilizar la opción state con el valía ‘directory’ como se indica a continuación.

- name: Create a New Directory using file
  file:
    path: /etc/nginx/ssl
    state: directory
    owner: root
    group: root
    mode: 0755

Remisión

https://docs.ansible.com/




Mastodon es un software sin cargo y de código rajado para ejecutar servicios de redes sociales autoalojados. Ofrece funciones de microblogging que te permiten seguir a otros usuarios y informar mensajes e imágenes con Mastodon. Está escrito en Ruby y JavaScript y admite publicaciones de audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, avisos de contenido, avatares animados, emojis personalizados y mucho más. Mastodon ofrece una aplicación para varias plataformas como Android e iOS.

En este tutorial, te mostraremos cómo instalar Mastodon en Ubuntu 22.04.

Aggiornamento: La vademécum se actualizó y se volvió a probar con éxito el 30/11/2022 para aclarar la instalación y solucionar los problemas mencionados en los comentarios, ya que algunas versiones de software habían cambiado desde que se escribió la vademécum.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Tu servidor tiene configurada una contraseña de root.
  • Un nombre de dominio válido apuntando a la dirección IP de tu servidor.

Cómo originarse

En primer circunstancia, se recomienda poner al día todos los paquetes de tu sistema con la última traducción. Puedes hacerlo ejecutando el ulterior comando:

apt update -y
apt upgrade -y

Luego de poner al día tu sistema, necesitarás instalar algunas dependencias requeridas por Mastodon. Puedes instalarlas todas con el ulterior comando:

apt install git software-properties-common make apt-transport-https redis-server optipng pngquant jhead jpegoptim gifsicle imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev libidn11-dev libicu-dev libjemalloc-dev -y

Una vez instaladas todas las dependencias, puedes advenir al ulterior paso.

Instalar Node.js

Mastodon requiere que Node.js esté instalado en tu sistema. Para instalar Node.js, añade el repositorio de Node.js a tu servidor utilizando el ulterior comando:

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Una vez añadido el repositorio, instala la traducción 16 de Node.js con el ulterior comando:

apt install nodejs -y

A continuación, descarga y añade la esencia GPG de Yarn y habilita el repositorio con el ulterior comando:

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list

Una vez añadida, actualiza el repositorio e instala Yarn con los siguientes comandos:

apt update -y
apt -y install yarn

Cuando hayas terminado, puedes advenir al ulterior paso.

Instalar y configurar PostgreSQL

Mastodon utiliza PostgreSQL como almohadilla de datos. Puedes instalar la última traducción de PostgreSQL con el ulterior comando:

apt install -y postgresql postgresql-contrib

Tras instalar PostgreSQL, inicia el servicio PostgreSQL con el ulterior comando:

systemctl start postgresql

A continuación, inicia sesión en el intérprete de comandos PostgreSQL:

sudo -u postgres -i psql

A continuación, crea una almohadilla de datos para Mastodon:

CREATE DATABASE mastodon;

A continuación, crea un beneficiario de almohadilla de datos con el ulterior comando:

CREATE USER mastodon;

A continuación, establece una contraseña para el beneficiario Mastodon con el ulterior comando:

ALTER USER mastodon WITH ENCRYPTED PASSWORD 'password';

A continuación, establece el permiso adecuado para crear la almohadilla de datos:

ALTER USER mastodon createdb;

A continuación, establece este beneficiario como propietario de la almohadilla de datos Mastodon:

ALTER DATABASE mastodon OWNER TO mastodon;

Por zaguero, sal del intérprete de comandos PostgreSQL con el ulterior comando:

q

Instalar Ruby

Mastodon todavía requiere tener instalada la traducción 2.5+ de Ruby en tu servidor. Si no está instalada, puedes instalarla con el ulterior comando:

apt install -y ruby ruby-dev

Tras la instalación, puedes efectuar la traducción de Ruby con el ulterior comando:

ruby -v

Obtendrás la traducción de Ruby en la ulterior salida:

ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]

Instalar y configurar Mastodon

A continuación, tendrás que crear un beneficiario dedicado para ejecutar Mastodon. Puedes crearlo con el ulterior comando:

adduser mastodon --system --group --disabled-login

A continuación, descarga la última traducción de Mastodon del repositorio Git:

git clone https://github.com/tootsuite/mastodon.git

A continuación, crea un directorio /var/www/ para Mastodon si no existe.

mkdir -p /var/www/

A continuación, mueve el directorio Mastodon al directorio /var/www:

mv mastodon/ /var/www/

A continuación, cambia la propiedad del directorio Mastodon a mastodon:

chown -R mastodon:mastodon /var/www/mastodon/

A continuación, navega hasta el directorio /var/www/mastodon y comprueba la última rama:

cd /var/www/mastodon/
sudo -u mastodon git checkout v4.0.2

Obtendrás el ulterior resultado:

Note: switching to 'v4.0.2'.

You are in 'detached HEAD' state. You can look around, make positivo
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 03b0f3ac8 Bump version to 4.0.2 (#20725)

A continuación, instala todas las dependencias necesarias para Mastodon con el ulterior comando:

gem install bundler
sudo -u mastodon bundle config deployment 'true'
sudo -u mastodon bundle config without 'development test'
sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)

Por zaguero, ejecuta el asistente de instalación de Mastodon con el ulterior comando:

sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup

Se te pedirá que indiques tu nombre de dominio:

Type application/netcdf is already registered as a variant of application/netcdf.
Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: mastodon.linuxbuz.com

Escribe tu nombre de dominio y pulsa la tecla Intro. Se te pedirá que habilites el modo monousuario:

Single user mode disables registrations and redirects the landing page to your public profile.
Do you want to enable single user mode? No

Escribe No y pulsa la tecla Intro. Se te pedirá que utilices Docker para ejecutar Mastodon:

Are you using Docker to run Mastodon? no

Escribe no y pulsa la tecla Intro. Se te pedirá que proporciones los detalles de la almohadilla de datos PostgreSQL:

PostgreSQL host: /var/run/postgresql
PostgreSQL port: 5432
Name of PostgreSQL database: mastodon
Name of PostgreSQL user: mastodon
Password of PostgreSQL user: 

Proporciona los detalles de tu almohadilla de datos PostgreSQL y pulsa la tecla Intro. Se te pedirán los datos del servidor Redis:

Database configuration works! ????

Redis host: localhost
Redis port: 6379
Redis password: 

Indica el host y el puerto de Redis, deja en blanco el campo de la contraseña y pulsa la tecla Intro. Se te pedirá que almacenes los archivos en la estrato:

Redis configuration works! ????

Do you want to store uploaded files on the cloud? No

Escribe No y pulsa la tecla Intro. Se te pedirá que envíes un correo electrónico desde localhost:

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

Introduce todos los datos necesarios y pulsa la tecla Intro. Se te pedirá que guardes todas las configuraciones:

This configuration will be written to .env.production
Save configuration? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que prepares la almohadilla de datos:

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? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que compiles los activos CSS/JS.

The final step is compiling CSS/JS assets.
This may take a while and consume a lot of RAM.
Compile the assets now? (Y/n) Y

Escribe Y y pulsa la tecla Intro. Se te pedirá que configures una contraseña de administrador:

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: 9835fbd5e569ad149610862178580da7
You can change your password merienda you login.

Introduce tu nombre de beneficiario y correo electrónico de administrador y pulsa la tecla Intro para finalizar la instalación.

Crear archivo de servicio Systemd para Mastodon

Mastodon viene con un archivo systemd preconfigurado para mandar los servicios de Mastodon. Tendrás que copiarlos en el directorio /etc/sysetmd/system/.

cp /var/www/mastodon/dist/mastodon*.service /etc/systemd/system/

A continuación, tendrás que cambiar el directorio de trabajo de Mastodon de /home/mastodon/live/ a /var/www/mastodon/ en el archivo de servicio. Puedes hacerlo con el ulterior comando:

sed -i 's/home/mastodon/live/var/www/mastodon/g' /etc/systemd/system/mastodon-*.service

Incluso tendrás que cambiar /home/mastodon/.rbenv/shims/bundle por /usr/locorregional/bin/bundle en los archivos de servicio:

sed -i 's/home/mastodon/.rbenv/shims/usr/locorregional/bin/g' /etc/systemd/system/mastodon-*.service

A continuación, recarga el systemd para aplicar los cambios de configuración:

systemctl daemon-reload

A continuación, inicia y activa todos los servicios de Mastodon:

systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

Puedes comprobar el estado de todos los servicios con el ulterior comando:

systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Salida:

? mastodon-web.service - mastodon-web
     Loaded: loaded (/etc/systemd/system/mastodon-web.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-30 03:07:13 UTC; 19s ago
   Main PID: 10201 (ruby3.0)
      Tasks: 29 (limit: 464140)
     Memory: 249.0M
     CGroup: /system.slice/mastodon-web.service
             ??10201 "puma 5.6.5 (tcp://127.0.0.1:3000) [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ??10228 "puma: cluster worker 0: 10201 [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ??10232 "puma: cluster worker 1: 10201 [mastodon]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *  Max threads: 5
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *  Environment: production
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *   Master PID: 10201
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *      Workers: 2
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] *     Restarts: (?) hot (?) phased
Nov 30 03:07:15 ubuntu22042 bundle[10201]: [10201] * Preloading application
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] * Listening on http://127.0.0.1:3000
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] Use Ctrl-C to stop
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] - Worker 0 (PID: 10228) booted in 0.04s, phase: 0
Nov 30 03:07:27 ubuntu22042 bundle[10201]: [10201] - Worker 1 (PID: 10232) booted in 0.01s, phase: 0

? mastodon-sidekiq.service - mastodon-sidekiq
     Loaded: loaded (/etc/systemd/system/mastodon-sidekiq.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-30 03:07:13 UTC; 19s ago
   Main PID: 10199 (ruby3.0)
      Tasks: 32 (limit: 464140)
     Memory: 247.1M
     CGroup: /system.slice/mastodon-sidekiq.service
             ??10199 "sidekiq 6.5.7 mastodon [0 of 25 busy]" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Start - Converting v6 lo>
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Done - Converting v6 loc>
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.202Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Start - Deleting v6 keys
Nov 30 03:07:29 ubuntu22042 bundle[10199]: 2022-11-30T03:07:29.203Z pid=10199 tid=cc7 uniquejobs=upgrade_locks INFO: Done - Deleting v6 keys

Por defecto, Mastodon audición en el puerto 3000. Puedes comprobarlo con el ulterior comando:

ss -lnpt | grep 3000

Salida:

LISTEN 0      1024       127.0.0.1:3000      0.0.0.0:*    users:(("ruby3.0",pid=10232,fd=5),("ruby3.0",pid=10228,fd=5),("ruby3.0",pid=10201,fd=5))

Configurar Nginx como proxy inverso

En primer circunstancia, instala el paquete del servidor web Nginx con el ulterior comando:

apt install nginx -y

A continuación, copia el archivo de configuración del host supuesto Nginx en el directorio Nginx:

cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf

A continuación, edita el archivo de configuración del host supuesto Mastodon:

nano /etc/nginx/conf.d/mastodon.conf

Rebusca la ulterior itinerario tanto en el agrupación del servidor del puerto 80 como en el agrupación del servidor del puerto 443:

server_name example.com;

Sustitúyelos por la ulterior itinerario:

server_name mastodon.linuxbuz.com;

Rebusca la ulterior itinerario tanto en el agrupación del servidor del puerto 80 como en el agrupación del servidor del puerto 443.

root /home/mastodon/live/public;

Sustitúyela por la ulterior itinerario:

root /var/www/mastodon/public;

Encuentra las dos líneas siguientes.

# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Cámbialas por las siguientes, para que Nginx utilice temporalmente un certificado TLS autofirmado. Más delante obtendremos un certificado Let’s Encrypt válido.

ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

Escolta y cierra el archivo y, a continuación, crea un directorio de gusto para Nginx:

mkdir -p /var/nginx/cache/

A continuación, comprueba si Nginx tiene algún error de sintaxis:

nginx -t

Obtendrás la ulterior salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Asegura Mastodon con Let’s Encrypt SSL

Para habilitar HTTPS en el sitio web de Mastodon, necesitarás instalar el paquete Certbot en tu servidor.

Primero, instala el mandatario de paquetes Snap con el ulterior comando:

apt install snapd

A continuación, actualiza el paquete Snap a la última traducción:

snap install core
snap refresh core

A continuación, instala el paquete Certbot con el ulterior comando:

snap install --classic certbot

A continuación, crea un enlace simbólico para el binario de Certbot en la ubicación del sistema:

ln -s /snap/bin/certbot /usr/bin/certbot

A continuación, ejecuta el ulterior comando para descargar e instalar los certificados SSL de Let’s Encrypt:

certbot --nginx -d mastodon.linuxbuz.com

Se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to biombo): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, merienda your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Escribe Y y pulsa la tecla Intro para descargar e instalar los certificados SSL para tu dominio:

Account registered.
Requesting a certificate for mastodon.linuxbuz.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mastodon.linuxbuz.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mastodon.linuxbuz.com/privkey.pem
This certificate expires on 2023-02-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for mastodon.linuxbuz.com to /etc/nginx/conf.d/mastodon.conf
Congratulations! You have successfully enabled HTTPS on https://mastodon.linuxbuz.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Accede a la Interfaz Web de Mastodon

Ahora, abre tu navegador web y escribe la URL https://mastodon.linuxbuz.com. Serás redirigido a la ulterior página:

Haz clic en el rama Iniciar sesión. Deberías ver la página de inicio de sesión de Mastodon:

Ahora, proporciona tu correo electrónico de administrador y la contraseña que creaste anteriormente, y haz clic en el rama Iniciar sesión. Deberías ver el panel de control de Mastodon en la ulterior página:

Enhorabuena! has instalado y configurado correctamente Mastodon en el servidor Ubuntu 22.04. Ahora puedes crear fácilmente tu propia red social utilizando Mastodon. No dudes en preguntarme si tienes alguna duda.