-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Javier Caceres
authored and
Javier Caceres
committed
Nov 24, 2024
1 parent
c89deb0
commit 47856e8
Showing
3 changed files
with
307 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
|
||
# Configuración de Certbot con Cloudflare para Generación de Certificados SSL | ||
|
||
## 1. Crear el API Token en Cloudflare | ||
|
||
Antes de continuar, crea un **API Token** en Cloudflare para que Certbot pueda gestionar los registros DNS para validar tu dominio. | ||
|
||
1. Inicia sesión en **Cloudflare**. | ||
2. En **My Profile**, selecciona **API Tokens**. | ||
3. Haz clic en **Create Token** y selecciona **Edit DNS**. | ||
4. Guarda el **API Token** generado. | ||
|
||
## 2. Instalar Certbot y el Plugin DNS de Cloudflare | ||
|
||
En tu servidor, instala **Certbot** y el plugin de **Cloudflare**: | ||
|
||
```bash | ||
sudo apt update | ||
sudo apt install certbot python3-certbot-dns-cloudflare | ||
``` | ||
|
||
## 3. Configurar el archivo `cloudflare.ini` | ||
|
||
1. Crea el archivo `cloudflare.ini` para almacenar el API Token: | ||
|
||
```bash | ||
sudo nano /etc/letsencrypt/cloudflare.ini | ||
``` | ||
|
||
2. Añade la siguiente línea al archivo: | ||
|
||
```ini | ||
dns_cloudflare_api_token = tu_api_token_aqui | ||
``` | ||
|
||
3. Establece los permisos adecuados para el archivo: | ||
|
||
```bash | ||
sudo chmod 600 /etc/letsencrypt/cloudflare.ini | ||
``` | ||
|
||
## 4. Generar el Certificado con Certbot | ||
|
||
Usa el siguiente comando para generar el certificado SSL: | ||
|
||
```bash | ||
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d tu-dominio -d www.tu-dominio --dns-cloudflare-propagation-seconds 60 | ||
``` | ||
|
||
Este comando utilizará el plugin de Cloudflare para la validación del dominio y generar los certificados. | ||
|
||
## Vuelve a la [instalacion de Ordo](https://docs.fedired.com/ordo/install.html#_4-b-nginx) | ||
|
||
## 5. Configuración de Renovación Automática | ||
|
||
Añade un cron job para renovar el certificado automáticamente: | ||
|
||
```bash | ||
sudo crontab -e | ||
``` | ||
|
||
Añade la siguiente línea para ejecutar la renovación cada día a las 2:30 AM: | ||
|
||
```bash | ||
30 2 * * * certbot renew --quiet | ||
``` | ||
|
||
Este cron job renovará el certificado y mantendrá tu sitio siempre protegido con HTTPS. | ||
|
||
## Resumen de Archivos y Configuraciones: | ||
|
||
1. **cloudflare.ini**: Contiene el API Token de Cloudflare. | ||
- Ubicación: `/etc/letsencrypt/cloudflare.ini` | ||
|
||
2. **Tarea Cron**: Renovación automática de certificados. | ||
- Comando en crontab: `30 2 * * * certbot renew --quiet` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
|
||
# Instalación de Ordo | ||
|
||
Te recomendamos instalar Ordo en un VPS dedicado (servidor privado virtual) con Ubuntu 22.04 LTS. Asegúrate de que tu VPS esté funcionando correctamente antes de seguir esta guía. | ||
|
||
También necesitas tener un nombre de dominio adquirido. Crea un registro A en tu registrador apuntando a la dirección IP de tu VPS. | ||
|
||
## 1. Conexión al VPS | ||
|
||
Una vez que tu VPS esté en funcionamiento, deberás abrir un **programa de terminal** en tu computadora. Esto te permitirá conectarte remotamente al servidor para ejecutar comandos e instalar Ordo. | ||
|
||
Los usuarios de Linux y Mac ya tienen un terminal instalado (se llama **"Terminal"**), pero los usuarios de Windows tal vez necesiten instalar [Cygwin](https://www.cygwin.com/) primero. | ||
|
||
Una vez abierto el terminal, conéctate a tu servidor usando el nombre de usuario y la dirección IP proporcionada por tu proveedor de VPS. Es posible que te pida una contraseña. | ||
|
||
```sh | ||
ssh [email protected] | ||
``` | ||
## 2. Preparación del sistema | ||
Antes de instalar Ordo, necesitamos preparar el sistema. | ||
|
||
### 2.a. Instalar actualizaciones | ||
Por lo general, un VPS recién creado ya tendrá software desactualizado, por lo que debes ejecutar los siguientes comandos para actualizarlo: | ||
|
||
```sh | ||
apt update | ||
apt upgrade | ||
``` | ||
Cuando se te pregunte ([Y/n]), escribe Y y presiona Enter. | ||
|
||
### 2.b. Instalar dependencias del sistema | ||
Ordo requiere algunas dependencias del sistema para funcionar. Instálalas con el siguiente comando: | ||
|
||
```sh | ||
apt install git curl build-essential postgresql postgresql-contrib cmake libmagic-dev imagemagick ffmpeg libimage-exiftool-perl nginx certbot unzip libssl-dev automake autoconf libncurses5-dev fasttext | ||
``` | ||
|
||
### 2.c. Crear el usuario de Ordo | ||
Por razones de seguridad, es mejor ejecutar Ordo como un usuario separado con acceso limitado. | ||
|
||
Vamos a crear este usuario y lo llamaremos pleroma: | ||
|
||
```sh | ||
useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma | ||
``` | ||
|
||
## 3. Instalación de Ordo | ||
Es hora de instalar Ordo. Vamos a obtenerlo y ponerlo en funcionamiento. | ||
|
||
3.a. Descargar el código fuente | ||
Descarga el código fuente de Ordo con Git: | ||
|
||
```sh | ||
git clone https://github.com/fedired-dev/ordo /opt/pleroma | ||
chown -R pleroma:pleroma /opt/pleroma | ||
``` | ||
Entra en el directorio del código fuente y conviértete en el usuario pleroma: | ||
|
||
```sh | ||
cd /opt/pleroma | ||
sudo -Hu pleroma bash | ||
``` | ||
(Asegúrate de estar como el usuario pleroma en `/opt/pleroma` para el resto de esta sección.) | ||
|
||
### 3.b. Instalar Elixir | ||
Ordo usa el lenguaje de programación Elixir (basado en Erlang). Es importante usar una versión específica de Erlang (24), así que utilizaremos el gestor de versiones asdf para instalarlo. | ||
|
||
Instala asdf | ||
```sh | ||
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0 | ||
echo ". $HOME/.asdf/asdf.sh" >> ~/.bashrc | ||
echo ". $HOME/.asdf/completions/asdf.bash" >> ~/.bashrc | ||
exec bash | ||
asdf plugin-add erlang | ||
asdf plugin-add elixir | ||
``` | ||
Finalmente, instala Erlang/Elixir: | ||
|
||
```sh | ||
asdf install | ||
``` | ||
(Esto tomará unos 15 minutos. ☕) | ||
|
||
### 3.c. Compilar Ordo | ||
Instala las herramientas básicas de Elixir para la compilación: | ||
|
||
```sh | ||
mix local.hex --force | ||
mix local.rebar --force | ||
``` | ||
|
||
Obtén las dependencias de Elixir: | ||
|
||
```sh | ||
mix deps.get | ||
``` | ||
Finalmente, compila Ordo: | ||
|
||
```sh | ||
MIX_ENV=prod mix compile | ||
``` | ||
(Esto tomará unos 10 minutos. ☕) | ||
|
||
### 3.d. Generar la configuración | ||
Es hora de preconfigurar nuestra instancia. El siguiente comando configurará algunos aspectos básicos como tu nombre de dominio: | ||
|
||
```sh | ||
MIX_ENV=prod mix pleroma.instance gen | ||
``` | ||
Si todo está correcto, renombra el archivo generado para que se cargue en tiempo de ejecución: | ||
|
||
```sh | ||
mv config/generated_config.exs config/prod.secret.exs | ||
``` | ||
3.e. Provisionar la base de datos | ||
La sección anterior también creó un archivo llamado `config/setup_db.psql`, que puedes usar para crear la base de datos. | ||
|
||
Vuelve al usuario root para el resto de este documento: | ||
|
||
```sh | ||
exit | ||
``` | ||
Ejecuta el archivo SQL como el usuario de Postgres: | ||
|
||
```sh | ||
sudo -Hu postgres psql -f config/setup_db.psql | ||
``` | ||
Ahora ejecuta la migración de la base de datos como el usuario `pleroma`: | ||
|
||
```sh | ||
sudo -Hu pleroma bash -i -c 'MIX_ENV=prod mix ecto.migrate' | ||
``` | ||
### 3.f. Iniciar Ordo | ||
Copia el servicio de systemd y arranca Pleroma: | ||
|
||
```sh | ||
cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service | ||
systemctl enable --now pleroma.service | ||
``` | ||
|
||
Si llegaste hasta aquí, ¡enhorabuena! Ya tienes el backend de Ordo funcionando, y solo falta hacerlo accesible al mundo exterior. | ||
|
||
## 4. Configuración en línea | ||
El último paso es hacer que tu servidor sea accesible desde el exterior. Para ello, vamos a instalar Nginx y habilitar el soporte de HTTPS. | ||
|
||
### 4.a. HTTPS | ||
Usaremos Certbot para obtener un certificado SSL. | ||
|
||
Primero, apaga Nginx: | ||
|
||
```sh | ||
systemctl stop nginx | ||
``` | ||
Ahora puedes obtener el certificado: | ||
|
||
```sh | ||
mkdir -p /var/lib/letsencrypt/ | ||
certbot certonly --email <tu@email> -d <tudominio> --standalone | ||
``` | ||
Reemplaza `<tu@email>` y `<tudominio>` con tus valores reales. | ||
|
||
### IMPORTANTE | ||
Para VM o usarios de ver ajustes aqui [Cloudflare](/for-admins/cloudflare.md) | ||
|
||
|
||
|
||
### 4.b. Nginx | ||
Copia la configuración de Nginx de ejemplo y actívala: | ||
|
||
```sh | ||
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx | ||
ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx | ||
``` | ||
|
||
Debes editar este archivo: | ||
|
||
```sh | ||
nano /etc/nginx/sites-enabled/pleroma.nginx | ||
``` | ||
|
||
Cambia todas las ocurrencias de `example.tld` por el nombre de dominio de tu sitio. Usa Ctrl+X, Y y Enter para guardar. | ||
|
||
Finalmente, habilita y arranca Nginx: | ||
|
||
```sh | ||
systemctl enable --now nginx.service | ||
``` | ||
|
||
🎉 ¡Felicidades, ya terminaste! Revisa tu sitio en un navegador y debería estar en línea. | ||
|
||
## 5. Post-instalación | ||
A continuación, algunos pasos adicionales que puedes seguir después de finalizar la instalación. | ||
|
||
Crear tu primer usuario | ||
|
||
Si tu instancia está en funcionamiento, puedes crear tu primer usuario con privilegios administrativos con la siguiente tarea: | ||
|
||
```sh | ||
cd /opt/pleroma | ||
sudo -Hu pleroma bash -i -c 'MIX_ENV=prod mix pleroma.user new <usuario> <tu@email> --admin' | ||
``` | ||
|
||
Refresca tu sitio web. ¡Eso es todo! | ||
|
||
# 🎉 ¡Felicidades! 🎉 | ||
|
||
¡Disfruta de tu nuevo servidor de Ordo! 🎈 | ||
|
||
> [!TIP] | ||
> | ||
> El servidor esta listo, pero si quieres usar una interfaz web usaremos [Soapbox en esta guia](/ordo/interface.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
¡Bienvenido a la comunidad Ordo! 🚀 | ||
|
||
## Instrucciones de actualización | ||
|
||
Para actualizar Ordo (el backend), entra al servidor y ejecuta los siguientes comandos: | ||
|
||
```sh | ||
sudo -Hu pleroma bash | ||
cd /opt/pleroma | ||
|
||
git pull origin main | ||
|
||
asdf install | ||
|
||
mix deps.get | ||
MIX_ENV=prod mix ecto.migrate | ||
|
||
exit | ||
systemctl restart pleroma | ||
``` |