ubuntu
Guía de instalación de Passwork en el sistema operativo:
-Ubuntu 20.04 -Ubuntu 22.04 -Ubuntu 24.04
La guía utiliza bloques de código intercambiables para separar comandos según las versiones del sistema operativo.
1. Requisitos mínimos del sistema
Passwork no exige recursos del sistema y la cantidad requerida de servidores depende de la cantidad de usuarios activos, el volumen de datos almacenados y los requisitos de tolerancia a fallas del sistema.
Revise los requisitos completos del sistema.
Si el servidor tiene entre 2 y 4 GB de RAM, recomendamos habilitar un archivo SWAP.
2. Acciones básicas antes de la instalación.
Obtenga privilegios root y actualice la base de datos del paquete local:
- shell
sudo -i
apt-get update
Instale el servidor web Apache2 y la utilidad de transferencia de datos curl:
- shell
apt-get install -y apache2 unzip curl zip jq
3. Instalación de PHP
Instale el paquete software-properties-common y agregue el repositorio ppa:ondrej/php:
- shell
apt-get install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
Actualice el paquete local y la lista de repositorios:
- shell
apt-get update
Instale PHP y módulos de extensión:
- shell
apt install -y php8.3 php8.3-cli php8.3-bcmath php8.3-fpm php8.3-curl php8.3-gd php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-soap php8.3-zip php8.3-sqlite3 php8.3-xml php8.3-dev php-pear
Cambie la cantidad de RAM disponible para ejecutar scripts PHP:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/php.ini
Se recomienda aumentar el parámetro memory_limit de 256M a 512M o superior si se espera que una gran cantidad de usuarios utilicen Passwork.
Asegúrese de que el servicio php8.3-fpm esté ejecutándose:
- shell
systemctl status php8.3-fpm
Inicie y habilite el inicio automático del servicio si está detenido:
- shell
systemctl start php8.3-fpm
systemctl enable php8.3-fpm
3.1 Instalación del controlador PHP MongoDB
Instale el controlador PHP MongoDB:
- shell
pecl install mongodb
Presione Enter para aceptar las opciones de compilación predeterminadas.
Cree archivos de configuración para cargar y habilitar PHP MongoDB:
- shell
echo "extension=mongodb.so" | tee /etc/php/8.3/fpm/conf.d/20-mongodb.ini
echo "extension=mongodb.so" | tee /etc/php/8.3/cli/conf.d/20-mongodb.ini
4. Instalación de la base de datos MongoDB
Descargue y convierta la clave GPG de MongoDB en un archivo:
- Ubuntu 24.04
- Ubuntu 22.04 20.04
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
Agregue la línea del repositorio al archivo:
- Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Actualiza la lista de paquetes disponibles:
- shell
apt-get update
Instale MongoDB usando el administrador de paquetes apt:
- shell
apt-get install -y mongodb-org
Inicie el servicio mongod.service:
- shell
systemctl start mongod.service
Habilitar el inicio automático del servicio:
- shell
systemctl enable mongod.service
5. Obtención y configuración de Passwork
En línea
Obtenga el guión:
- wget
- curl
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
El script de instalación Passwork no debe ubicarse en el directorio con los archivos del servidor de aplicaciones.
Asigne derechos de ejecución al script:
chmod +x passwork.sh
De forma predeterminada, el script passwork.sh realizará:
- Creación de un archivo
.script_envoculto en el directorio actual; - Creación del directorio
passwork_archivepara copias de seguridad Passwork; - Descargar la última versión, firma y clave pública de Passwork disponibles;
- Instalar el archivo obtenido previamente en
/var/www/
Para utilizar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar parámetros de inicio de script.
Ejecute el script:
sudo ./passwork.sh
En la primera ejecución, el script solicitará una clave API y realizará comprobaciones básicas del entorno:

Ejemplo de ejecución exitosa de un script:

Sin conexión
Obtenga el script en otra máquina con acceso a Internet:
- wget
- curl
- PowerShell
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/linux/scripts/passwork.sh", "$PWD\passwork.sh")
O obtenga el script passwork.sh manualmente usando el enlace
El script de instalación Passwork no debe ubicarse en el directorio con los archivos del servidor de aplicaciones.
Asigne derechos de ejecución al script:
chmod +x passwork.sh
Antes de ejecutar passwork.sh necesitas:
- Obtenga Passwork versión 7 de nuestro Portal del cliente (mandatory);
- Colóquelo en el directorio de inicio o use el argumento
--inputpara especificar la ubicación (obligatorio); - Obtener la firma de archivo y clave pública de Passwork (opcional si usa el argumento
--skip).
De forma predeterminada, el script passwork.sh realizará:
- Creación del directorio
passwork_archivepara copias de seguridad Passwork; - Descomprimir el archivo Passwork;
- Instalar el archivo obtenido previamente en
/var/www/
Para utilizar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar parámetros de inicio de script.
Después de la preparación, ejecute el script passwork.sh:
sudo ./passwork.sh -offline
Ejemplo de ejecución exitosa de un script sin conexión:

6. Configuración del servidor web para el protocolo HTTPS
Para garantizar un funcionamiento adecuado, es necesario utilizar el protocolo HTTPS. El uso de HTTP generará errores.
6.1 Generando certificado SSL autofirmado
Cree un nuevo directorio para almacenar la clave privada y el certificado:
- shell
mkdir /etc/apache2/ssl/
Genere un certificado X.509 autofirmado para Apache2 usando OpenSSL:
- shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Common Name (CN): especifique la dirección IP o el nombre de host de su servidor para que coincida con la forma en que los usuarios llegan al sitio (por nombre de dominio o dirección IP);subjectAltName (SAN): pase-addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100'y reemplace el nombre de host y el ejemplo IP con los valores que sus clientes realmente usan;
Navegadores y SAN: los navegadores se basan principalmente en la extensión Nombre alternativo del sujeto (SAN) al validar HTTPS, no solo en CN (nombre común). Para evitar que los nombres de host no coincidan, incluya entradas SAN para DNS y IP que coincidan con las direcciones que los usuarios ingresan en el navegador.
Establezca derechos de acceso para el usuario root para proteger la clave privada y el certificado:
- shell
chmod 600 /etc/apache2/ssl/*
6.2 Configuración de host virtual para acceso HTTPS
Antes de configurar el servidor web con la terminación SSL habilitada, se recomienda revisar las características de configuración.
Habilite el módulo SSL en Apache2, permitiendo que el servidor admita el protocolo HTTPS:
- shell
a2enmod ssl
Habilite el archivo de configuración del host virtual del sitio con la configuración de conexión SSL:
- shell
a2ensite default-ssl
Abra el archivo de configuración del host virtual para la conexión HTTPS:
- shell
nano /etc/apache2/sites-enabled/default-ssl.conf
Realice los siguientes cambios:
- Agregue la línea
ServerNamey cambiewww.example.coma la dirección o dominio IP del servidor (dependiendo del valor especificado en elCommon Namedel certificado); - Descomentar la línea
DocumentRooty cambiar la ruta al directorio raíz Passwork (/var/www/public);
- shell
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
- Agregue la directiva
<Directory>después deServerName:
- shell
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
- Actualice las rutas a los archivos de certificado generados anteriormente:
- shell
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
- Cambie el controlador del archivo .php, especificando solicitudes de proxy al socket php-fpm:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
- Después de realizar cambios, verifique que el archivo de configuración del host virtual coincida con el ejemplo:
- shell
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName passwork:443
DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
</IfModule>
Habilite módulos y reinicie servicios:
- shell
a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2
7. Completar la lista de verificación de parámetros
Cuando se conecte por primera vez a Passwork, deberá completar la lista de verificación de parámetros, durante la cual se realizará lo siguiente:
- Comprobación de los parámetros necesarios.
- Conexión a la base de datos MongoDB
- Elegir un modo de cifrado de datos
- Clave generada aleatoriamente para cifrar datos en MongoDB
- Verificación de clave de licencia
Después de completar la lista de verificación, se le pedirá que cree el primer usuario en Passwork, donde deberá especificar un nombre de usuario, contraseña y dirección de correo electrónico para enviar notificaciones.
Los parámetros de componentes adicionales, configuraciones de seguridad y configuraciones del sistema Passwork están disponibles en la sección configuración avanzada.