¿Cómo Crear Tu Propio Office 365 Autohospedado con Cryptpad?

Cryptpad es una suite ofimática de código abierto que puedes autohospedar en tu servidor. Es similar a Office 365, permitiéndote acceder a herramientas ofimáticas desde el navegador.

La principal diferencia es que Cryptpad pone un fuerte enfoque en la privacidad del usuario, permitiendo crear y compartir documentos sin el riesgo de filtraciones de información personal.

Este tutorial te guiará sobre cómo instalar Cryptpad en tu servidor, cómo funciona y cómo puedes crear tu primera cuenta de usuario.

¿Qué es Cryptpad y Por Qué Deberías Usarlo?

Cryptpad es una suite ofimática en línea que proporciona una alternativa enfocada en la privacidad para la edición colaborativa de documentos.

Al igual que otras suites en línea como Office 365 y Google Docs, Cryptpad permite crear y compartir documentos con otras personas a través de Internet.

Una de las mayores ventajas de Cryptpad sobre Office 365 es que está completamente cifrado de extremo a extremo. Solo tú y tus colaboradores podrán acceder al documento que estás editando, lo que puede ser útil al compartir información sensible.

Otra ventaja importante es que puedes autohospedarlo en tu propio hardware, lo cual es especialmente útil si prefieres no almacenar tu información en un proveedor de terceros.

Requisitos para Instalar Cryptpad

Antes de poder instalar Cryptpad, asegúrate de tener los siguientes recursos listos:

  • Una máquina accesible desde una red externa.
  • Al menos 2GB de RAM y 20GB de almacenamiento.
  • Un nombre de dominio (y un subdominio) que apunte a la dirección IP de tu servidor.

Consejo: Aunque Cryptpad funcionará en un VPS básico, sus desarrolladores recomiendan que asegures tu servidor Linux antes de instalar el programa.

Instalación de Cryptpad

Sigue estos pasos para instalar Cryptpad en tu servidor:

Paso 1: Instalar las dependencias

Primero, instala las dependencias necesarias para Cryptpad:

sudo gpasswd -a www-data ramces
sudo apt install git nodejs npm nginx certbot python3-certbot-nginx

Paso 2: Clonar el código fuente de Cryptpad

Luego, clona el repositorio de Cryptpad:

git clone https://github.com/xwiki-labs/cryptpad.git cryptpad

Paso 3: Acceder al repositorio y cambiar a la rama más reciente

Accede al directorio del repositorio y cambia a la última rama:

cd cryptpad
git checkout -b 5.2.1

Paso 4: Instalar Bower

Usa npm para instalar Bower, un gestor de paquetes que ayudará a instalar algunas de las bibliotecas necesarias:

sudo npm install -g bower

Paso 5: Instalar Cryptpad

Dentro del repositorio, usa npm y bower para instalar Cryptpad:

npm install
bower install

Configuración del Certificado SSL

Una vez que Cryptpad esté instalado en tu máquina, puedes usar Certbot para crear el certificado SSL para tu instancia:

sudo certbot certonly --standalone

Certbot te pedirá tu dirección de correo electrónico y los dominios a los que deseas vincular el certificado. Ingresa tanto el dominio raíz como el subdominio.

Luego, crea un archivo Diffie-Hellman para tu instancia:

sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096

Configuración de Nginx

Para configurar Nginx y servir Cryptpad en tu dominio, puedes usar el archivo de configuración de ejemplo proporcionado por los desarrolladores:

sudo cp /home/$USER/cryptpad/docs/example.nginx.conf /etc/nginx/conf.d/cryptpad.conf

Modifica este archivo de configuración con un editor de texto:

sudo nano /etc/nginx/conf.d/cryptpad.conf

Realiza los siguientes cambios:

  • Comenta la línea include letsencrypt-webroot;.
  • Modifica las variables $main_domain y $sandbox_domain con tu dominio raíz y subdominio.
  • Cambia las variables $api_domain y $files_domain con tu dominio raíz.
  • Cambia la variable server_name con tu dominio raíz y subdominio.
  • Actualiza las rutas de ssl_certificate y ssl_certificate_key con la ubicación de tu certificado SSL.
  • Finalmente, cambia la variable root con la ubicación de tu repositorio Cryptpad.

Configuración de Cryptpad

Usa el archivo de configuración de ejemplo proporcionado por los desarrolladores:

cp /home/$USER/cryptpad/config/config.example.js /home/$USER/cryptpad/config/config.js

Abre el archivo con un editor de texto y modifica las siguientes variables:

  • Cambia httpUnsafeOrigin: a tu dominio raíz.
  • Cambia httpSafeOrigin: a tu subdominio.
  • Agrega la línea:
adminEmail: 'ceo_email@direccion.aqui',

Crear el Servicio SystemD

Puedes vincular Cryptpad a un servicio SystemD para que se inicie automáticamente con el sistema. Crea un archivo de servicio en:

nano /home/$USER/cryptpad/docs/cryptpad.service

Aquí hay un ejemplo de configuración para el archivo:

[Unit]
Description=Cryptpad Service

[Service]
ExecStart=/bin/node /home/ramces/cryptpad/server.js
WorkingDirectory=/home/ramces/cryptpad

Restart=always
RestartSec=2

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ramces
User=ramces
Group=ramces
Environment='PWD="/home/ramces/cryptpad"'
LimitNOFILE=1000000

[Install]
WantedBy=multi-user.target

Copia este archivo al directorio de servicios SystemD:

sudo cp /home/$USER/cryptpad/docs/cryptpad.service /etc/systemd/system/cryptpad.service

Recarga SystemD y habilita el servicio:

sudo systemctl daemon-reload
sudo systemctl enable cryptpad
sudo systemctl start cryptpad
sudo systemctl reload nginx

Ejecutando Cryptpad

Si todo está configurado correctamente, deberías poder acceder a Cryptpad a través de tu dominio raíz.

Crear Tu Cuenta de Administrador en Cryptpad

Aunque puedes usar Cryptpad sin una cuenta, es recomendable crear una cuenta de administrador para gestionar tu instancia desde su interfaz web.

  1. Ve a la página de inicio de Cryptpad y presiona “Sign Up” para crear una nueva cuenta.
  2. Una vez que inicies sesión, haz clic en el “Menú de Usuario” en la esquina superior derecha.
  3. Selecciona “Configuración”.
  4. Copia la clave pública de firma en el cuadro de texto.
  5. Abre tu archivo de configuración en:
nano /home/$USER/cryptpad/config/config.js
  1. Pega tu clave de firma en la variable adminKeys:
adminKeys: ['tu_clave_de_firma'],
  1. Reinicia tu instancia de Cryptpad:
sudo systemctl restart cryptpad

Con estos pasos, tendrás tu propia instancia de Cryptpad autohospedada, lista para usarse como una alternativa privada y segura a Office 365.