Cómo instalar el software de gestión de proyectos Redmine en Debian 11
Redmine es un software de gestión de proyectos y herramienta de seguimiento de incidencias gratuito y de código abierto. Está escrito utilizando el framework Ruby on Rails y puede integrarse con varios sistemas de control de versiones. Incluye un navegador de repositorios y un visor de diferencias. Puede utilizarse para gestionar las características de los proyectos por wikis y foros de proyectos, seguimiento del tiempo y control de acceso basado en roles. Es multiplataforma y multibase de datos, y soporta 49 idiomas.
En este tutorial, aprenderás a instalar Redmine en un servidor Debian 11.
Requisitos previos
- Un servidor con Debian 11.
- Un usuario no usuario con privilegios de root.
- Firewall sin complicaciones(UFW) activado y en ejecución.
- Pocos paquetes que necesite tu sistema.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release unzip debian-archive-keyring -y
Puede que algunos de estos paquetes ya estén instalados en tu sistema.
- Asegúrate de que todo está actualizado.
$ sudo apt update && sudo apt upgrade
Paso 1 – Configurar el Cortafuegos
El primer paso antes de instalar ningún paquete es configurar el cortafuegos para que permita conexiones HTTP y HTTPS.
Comprueba el estado del cortafuegos.
$ sudo ufw status
Deberías ver algo como lo siguiente
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Permite los puertos HTTP y HTTPs. Además, abre el puerto 3000 para Redmine.
$ sudo ufw allow http $ sudo ufw allow https $ sudo ufw allow 3000
Vuelve a comprobar el estado para confirmarlo.
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443 ALLOW Anywhere 3000 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6) 3000 (v6) ALLOW Anywhere (v6)
Paso 2 – Instala el servidor Apache
Utilizaremos el servidor web Apache para desplegar Redmine. Instala Apache utilizando el siguiente comando.
$ sudo apt install apache2
Comprueba el estado del servicio Apache.
$ sudo systemctl status apache2 ? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2023-03-04 13:28:57 UTC; 41s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 3478 (apache2) Tasks: 55 (limit: 1129) Memory: 9.7M CPU: 27ms CGroup: /system.slice/apache2.service ??3478 /usr/sbin/apache2 -k start ??3481 /usr/sbin/apache2 -k start ??3482 /usr/sbin/apache2 -k start Mar 04 13:28:56 redmine systemd[1]: Starting The Apache HTTP Server... Mar 04 13:28:57 redmine systemd[1]: Started The Apache HTTP Server.
Paso 3 – Instalar y Configurar el Servidor MySQL
Utilizaremos la base de datos MySQL para almacenar los datos. Debian ya no tiene MySQL en sus repositorios. Así que utilizaremos el repositorio oficial de MySQL para la instalación.
Importa la clave GPG de MySQL.
$ curl https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | gpg --dearmor | sudo tee /usr/share/keyrings/mysql.gpg >/dev/null
Crea un archivo de repositorio MySQL.
$ echo "deb [signed-by=/usr/share/keyrings/mysql.gpg arch=amd64] http://repo.mysql.com/apt/debian/ `lsb_release -cs` mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list
Actualiza la lista de repositorios del sistema.
$ sudo apt update
Instala MySQL.
$ sudo apt install mysql-server
Se te pedirá que establezcas una contraseña de root. Elige una contraseña segura. A continuación, se te pedirá que elijas entre el cifrado más reciente de MySQL caching_sha2_password
o el cifrado más antiguo mysql_native_password
. Elige el más reciente porque Redmine lo soporta. Selecciona Aceptar para continuar y completar la instalación.
Comprueba el estado del servicio MySQL.
$ sudo systemctl status mysql ? mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-03-05 08:18:15 UTC; 4h 14min ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Main PID: 10500 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1129) Memory: 391.5M CPU: 1min 49.904s CGroup: /system.slice/mysql.service ??10500 /usr/sbin/mysqld Mar 05 08:18:14 redmine systemd[1]: Starting MySQL Community Server... Mar 05 08:18:15 redmine systemd[1]: Started MySQL Community Server.
Instalación segura de MySQL.
$ sudo mysql_secure_installation
En primer lugar, se te pedirá la contraseña de root. Introduce la contraseña que elegiste durante la instalación. A continuación, se te preguntará si deseas configurar el Plugin Validar Contraseña, que puedes utilizar para comprobar la solidez de tu contraseña MySQL. Elige Y
para continuar. En el siguiente paso se te pedirá que elijas el nivel de validación de la contraseña. Elige 2
que es el nivel más fuerte y requerirá que tu contraseña tenga al menos ocho caracteres e incluya una mezcla de mayúsculas, minúsculas, números y caracteres especiales.
Securing the MySQL server deployment. Enter password for user root: VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Se te mostrará la fortaleza de tu contraseña raíz y se te preguntará si quieres cambiarla. Introduce N
si no quieres cambiarla y sigue adelante. Si deseas cambiarla, puedes hacerlo ahora introduciendo Y
y eligiendo una contraseña que cumpla los requisitos anteriores.
Using existing password for root. Estimated strength of the password: 100 Change the password for root ? ((Press y|Y for Yes, any other key for No) : N ... skipping.
Pulsa Y
y luego la tecla ENTER
en todas las indicaciones siguientes para eliminar los usuarios anónimos y la base de datos de prueba, desactivar los inicios de sesión de root y cargar las reglas recién establecidas.
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done!
Entra en el intérprete de comandos de MySQL. Introduce tu contraseña de root para continuar.
$ mysql -u root -p
Crea el usuario redmine
. Asegúrate de que la contraseña cumple los requisitos establecidos anteriormente.
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Your_password2';
Crea la base de datos redmine
.
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
Concede privilegios al usuario de la base de datos redmine
.
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Sal del Shell.
mysql> exit
Paso 4 – Instalar Ruby y otros requisitos
La última versión de Redmine es compatible con Ruby 3.1. Debian incluye Ruby 2.7, por lo que tendremos que instalar la última versión utilizando el Gestor de versiones de Ruby (RVM).
Instala la clave GPG de RVM.
$ gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Instala RVM.
$ \curl -sSL https://get.rvm.io | bash -s stable
Obtén los scripts de RVM.
$ source ~/.rvm/scripts/rvm
Instala Ruby. Puedes consultar la última versión en el sitio web de Ruby. En el momento de escribir este tutorial, Ruby 3.1.3 es la última versión de la serie.
$ rvm install ruby-3.1.3
Verifica la instalación.
$ ruby -v ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
Instala el resto de paquetes necesarios para Redmine.
$ sudo apt install libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev libmysqlclient-dev apache2-dev build-essential libcurl4-openssl-dev
Paso 5 – Instalar Redmine
Visita la página de descargas de Redmine y comprueba la última versión estable disponible. En el momento de escribir este tutorial, la última versión disponible es la 5.0.5.
Utiliza wget
para descargar Redmine.
$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz
Es posible que obtengas el siguiente error al descargar el archivo porque uno de los certificados raíz del sitio web ha caducado.
WARNING: The certificate of ‘www.redmine.org’ is not trusted. WARNING: The certificate of ‘www.redmine.org’ doesn't have a known issuer. WARNING: The certificate of ‘www.redmine.org’ has expired.
Si te aparece este error, ejecuta en su lugar el siguiente comando para descargar.
$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz --no-check-certificate
Extrae y mueve los archivos al directorio /var/www/redmine
.
$ tar xfz redmine-5.0.5.tar.gz $ sudo mv redmine-5.0.5 /var/www/redmine
Desplázate al directorio /var/www/redmine
.
$ cd /var/www/redmine
Obtendrás la siguiente salida y una advertencia sobre la versión de Ruby. Puedes ignorarlo sin problemas.
RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too, you can ignore these warnings with 'rvm rvmrc warning ignore /var/www/redmine/Gemfile'. To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'. Unknown ruby interpreter version (do not know how to handle): >=2.5.0,<3.2.0.
Crea los archivos de configuración de Redmine utilizando los archivos de ejemplo suministrados.
$ cp config/configuration.yml.example config/configuration.yml $ cp config/database.yml.example config/database.yml $ cp public/dispatch.fcgi.example public/dispatch.fcgi
Abre el archivo database.yml
para editarlo.
$ nano config/database.yml
Busca y configura los ajustes de tu base de datos en la siguiente sección.
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "Your_password2" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.
Instala bundler para gestionar las dependencias de gemas ruby.
$ gem install bundler
Configura el entorno para instalar las dependencias de las gemas.
$ bundle config set --local without 'development test'
Instala las dependencias de gemas.
$ bundle install
Si tienes algún problema con las versiones de las gemas, utiliza el siguiente comando para restaurarlas.
$ gem pristine --all
Añade la dependencia webrick.
$ bundle add webrick
Genera una clave secreta aleatoria para evitar la manipulación de las cookies de almacenamiento de datos de sesión.
$ bundle exec rake generate_secret_token
Crea la estructura de la base de datos.
$ RAILS_ENV=production bundle exec rake db:migrate
Inserta los datos en la base de datos MySQL.
$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Crea los directorios necesarios y establece los permisos de los archivos.
$ mkdir -p tmp/pdf $ mkdir -p public/plugin_assets $ chown -R $USER:$USER files log tmp public/plugin_assets $ chmod -R 755 /var/www/redmine/
Ejecuta el siguiente comando para iniciar una instancia del servidor Rails.
$ bundle exec rails server -u webrick -e production => Booting WEBrick => Rails 6.1.7.2 application starting in production http://0.0.0.0:3000 => Run `bin/rails server --help` for more startup options [2023-03-06 09:12:11] INFO WEBrick 1.7.0 [2023-03-06 09:12:11] INFO ruby 3.1.3 (2022-11-24) [x86_64-linux] [2023-03-06 09:12:11] INFO WEBrick::HTTPServer#start: pid=34652 port=3000
Abre la URL http://<yourserverIP>:3000/login
para obtener la pantalla de inicio de sesión de Redmine.
Introduce las credenciales por defecto(admin/admin) para iniciar sesión. Se te pedirá que cambies la contraseña.
A continuación, serás redirigido a la página Mi Cuenta.
Redmine se ha instalado correctamente.
A continuación, pulsa CTRL+C en el terminal para detener el servidor.
Paso 6 – Instalar Phusion Passenger
Phusion Passenger es un servidor de aplicaciones ruby que nos permite servir Redmine a través de un servidor de terceros. En nuestro caso, utilizaremos Apache.
Instala Passenger.
$ gem install passenger
Instala el módulo Passenger para el servidor Apache.
$ passenger-install-apache2-module
Aparecerá un mensaje de bienvenida. Pulsa Intro para continuar.
Welcome to the Phusion Passenger Apache 2 module installer, v6.0.17. This installer will guide you through the entire installation process. It shouldn't take more than 3 minutes in total. Here's what you can expect from the installation process: 1. The Apache 2 module will be installed for you. 2. You'll learn how to configure Apache. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort. --------------------------------------------
A continuación, se te preguntará por el idioma. Ruby está seleccionado por defecto, así que pulsa Intro para continuar.
Which languages are you interested in? Use <space> to select. If the menu doesn't display correctly, press '!' ? ? Ruby ? Python ? Node.js ? Meteor --------------------------------------------
El proceso completo tardará unos 10-15 minutos en finalizar. Si te aparece un error como el siguiente, lo más probable es que se deba a una RAM baja. Deberías aumentar la RAM de tu servidor o instalar espacio swap.
c++: fatal error: Killed signal terminated program cc1plus compilation terminated. rake aborted!
Una vez finalizado el proceso, aparecerá el siguiente mensaje.
-------------------------------------------- Almost there! Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17 PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby </IfModule> After you restart Apache, you are ready to deploy any number of web applications on Apache, with a minimum amount of configuration! Press ENTER when you are done editing.
No pulses Intro todavía. Abre una nueva sesión en tu servidor como usuario actual y realiza las siguientes configuraciones.
Paso 7 – Configurar el servidor Apache
Crea un archivo de configuración del módulo Apache para Phusion Passenger.
$ sudo nano /etc/apache2/conf-available/00-passenger.conf
Pega el código que obtuviste al final de la instalación de passenger.
LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17 PassengerDefaultRuby /home/navjot /.rvm/gems/ruby-3.1.3/wrappers/ruby </IfModule>
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Crea otro archivo de configuración de Apache para el sitio Redmine.
$ sudo nano /etc/apache2/sites-available/redmine.conf
Pega en él el siguiente código.
Listen 3000 <IfModule mod_passenger.c> PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17 PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby </IfModule> <VirtualHost *:3000> ServerName redmine.example.com DocumentRoot "/var/www/redmine/public" CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined ErrorLog ${APACHE_LOG_DIR}/redmine_error.log LogLevel warn <Directory "/var/www/redmine/public"> Options Indexes ExecCGI FollowSymLinks Require all granted AllowOverride all </Directory> </VirtualHost>
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.
Abre el archivo principal de configuración de Apache /etc/httpd/conf/httpd.conf
para editarlo.
$ sudo nano /etc/httpd/conf/httpd.conf
Busca la variable ServerName
y descoméntala eliminando la almohadilla (#) que aparece delante de ella y estableciendo su valor como se indica a continuación.
ServerName localhost
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.
Habilita el sitio Redmine y la configuración de Phusion Passenger.
$ sudo a2ensite redmine.conf $ sudo a2enconf 00-passenger.conf
Verifica tu configuración de Apache.
$ sudo apachectl configtest Syntax OK
Vuelve atrás y pulsa Intro para continuar con la instalación de Passenger. Realizará algunas comprobaciones, y deberías ver el siguiente mensaje al finalizar con éxito.
Deploying a web application To learn how to deploy a web app on Passenger, please follow the deployment guide: https://www.phusionpassenger.com/library/deploy/apache/deploy/ Enjoy Phusion Passenger, a product of Phusion® (www.phusion.nl) :-) https://www.phusionpassenger.com Passenger® is a registered trademark of Phusion Holding B.V.
Reinicia tu servidor Apache.
$ sudo systemctl restart apache2
Tu sitio web debería estar disponible en http://redmine.example.com:3000
.
Esta no es la forma perfecta de acceder a Redmine. Todavía se sirve a través del protocolo HTTP inseguro y utiliza un número de puerto. Instalaremos Nginx para que actúe como proxy inverso y sirva Redmine utilizando el protocolo HTTPS para mejorar esto. Antes de pasar a la instalación y configuración de Nginx, necesitamos configurar el certificado SSL.
Paso 8 – Instalar Nginx
Debian 11 incluye una versión antigua de Nginx. Para instalar la última versión, tienes que descargar el repositorio oficial de Nginx.
Importa la clave de firma de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Añade el repositorio de la versión estable de Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Actualiza los repositorios del sistema.
$ sudo apt update
Instala Nginx.
$ sudo apt install nginx
Verifica la instalación. Debian requiere el siguiente comando para ejecutarse utilizando sudo
.
$ sudo nginx -v nginx version: nginx/1.22.1
Cambiar el puerto de escucha de Apache
Para evitar cualquier conflicto con Nginx, necesitamos cambiar el puerto por defecto en el que escucha Apache. Abre el archivo /etc/apache2/ports.conf
para editarlo.
$ sudo nano /etc/apache2/ports.conf
Cambia el puerto de 80 a 8080 como se indica a continuación.
Listen 8080
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Desactiva la configuración por defecto del sitio.
$ sudo a2dissite 000-default.conf
Reinicia Apache.
$ sudo systemctl restart apache2
Inicia el servidor Nginx.
$ sudo systemctl start nginx
Comprueba el estado del servidor Nginx.
$ sudo systemctl status nginx ? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-03-06 10:29:44 UTC; 6s ago Docs: https://nginx.org/en/docs/ Process: 53531 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 53532 (nginx) Tasks: 2 (limit: 1129) Memory: 1.7M CPU: 8ms CGroup: /system.slice/nginx.service ??53532 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf ??53533 nginx: worker process
Paso 9 – Instalar SSL
Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Debian u obtener la última versión utilizando la herramienta Snapd. Nosotros utilizaremos la versión Snapd.
Debian no viene con Snapd instalado. Por tanto, instala Snapd.
$ sudo apt install snapd
Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd está actualizada.
$ sudo snap install core && sudo snap refresh core
Instala Certbot.
$ sudo snap install --classic certbot
Utiliza el siguiente comando para asegurarte de que se puede ejecutar el comando Certbot creando un enlace simbólico al directorio /usr/bin
.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Genera el certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d redmine.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/redmine.example.com
de tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Comprueba el servicio programador de renovaciones de Certbot.
$ sudo systemctl list-timers
Encontrarás snap.certbot.renew.service
como uno de los servicios programados para ejecutarse.
NEXT LEFT LAST PASSED UNIT ACTIVATES Mon 2023-03-06 11:37:00 UTC 1h 2min left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service Mon 2023-03-06 13:37:15 UTC 3h 2min left Sun 2023-03-05 13:37:15 UTC 20h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Tue 2023-03-07 00:00:00 UTC 13h left Mon 2023-03-06 00:00:15 UTC 10h ago logrotate.timer logrotate.service
Realiza una ejecución en seco del proceso para comprobar si la renovación SSL funciona correctamente.
$ sudo certbot renew --dry-run
Si no ves ningún error, ya está todo listo. Tu certificado se renovará automáticamente.
Paso 10 – Configurar Nginx como proxy inverso
Crea y abre el archivo /etc/nginx/conf.d/redmine.conf
para editarlo.
$ sudo nano /etc/nginx/conf.d/redmine.conf
Pega en él el siguiente código.
# Redirect all non-encrypted to encrypted server { listen 80; server_name redmine.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name redmine.example.com; ssl_certificate /etc/letsencrypt/live/redmine.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/redmine.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/redmine.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 8.8.8.8; access_log /var/log/nginx/redmine.access.log main; error_log /var/log/nginx/redmine.error.log; location / { proxy_pass http://localhost:3000; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.
Abre el archivo /etc/nginx/nginx.conf
para editarlo.
$ sudo nano /etc/nginx/nginx.conf
Añade la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.
Verifica la sintaxis del archivo de configuración de Nginx.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicia el servicio Nginx para habilitar la nueva configuración.
$ sudo systemctl restart nginx
Tu aplicación Redmine debería ser accesible en https://redmine.example.com
.
Deberías eliminar la entrada del puerto 3000 en el cortafuegos porque ya no es necesaria.
$ sudo ufw delete allow 3000
Conclusión
Con esto concluye nuestro tutorial en el que has aprendido a instalar el Gestor de Proyectos Redmine en un servidor Debian 11. También has aprendido a servir la aplicación Redmine a través de Nginx utilizando el protocolo HTTPS. Si tienes alguna pregunta, publícala en los comentarios a continuación.