repo copiado desde local

This commit is contained in:
Juan Burgos
2026-08-10 23:07:47 +00:00
parent b9e8465f1b
commit 260462e9c4
4 changed files with 6674 additions and 20 deletions

View File

@@ -1,31 +1,72 @@
# sprpcb
Sistema Plurinacional de Registro del Patrimonio Cultural Boliviano
Sistema Plurinacional de Registro del Patrimonio Cultural Boliviano.
Modo de desarrollo en un servidor en modo tradicional (no contenedores). Clone este repositorio o descargue el script de instalacion de software requerido para un servidor Ubuntu.
# Nginx y Lets Encrypt con Docker Compose
### Guía rápida de instalación
para mas detalles, consulte la documentación oficial de [ArchesProject](https://arches.readthedocs.io/en/stable/installing/)
Este enfoque obtiene y renueva automáticamente los certificados TLS [Let's Encrypt](https://letsencrypt.org/) y configura el acceso HTTPS en Nginx para su dominio.
```bash
#cd ~
wget https://gitea.patrimonio.org.bo/sysadmin/sprpcb/raw/branch/dev-7_6_x-nodocker/instalar_arches7.6_ubuntu.sh
source ./instalar_arches7.6_ubuntu.sh
python3.12 -m venv ENV
source ENV/bin/activate
python -m pip install --upgrade pip
pip install arches==7.6.19
arches-admin startproject mi_proyecto
```
Hay 3 contenedores que trabajan para ello utilizando docker compose:
### Configuración del idioma español
* Nginx, genera certificados autofirmados "dummy" para obtener los certificados de Let's Encrypt
* Certbot - obtiene y renueva los certificados, espera hasta que Nginx esté listo para obtener los certificados
* Cron - cada día renueva los certificados, si verifica que están vencidos, arranca Cerbot para renovarlos, luego reinicia Nginx
Para personalizar el manejo de certificados debe cambiar estos parámetros en el archivo `.env`. Por ejemplo:
```properties
DOMAINS=patrimonio.org.bo
CERTBOT_EMAILS=admin@patrimonio.org.bo info@patrimonio.org.bo
CERTBOT_TEST_CERT=0
CERTBOT_RSA_KEY_SIZE=4096
```shell
# Crear carpetas para los archivos de idioma
mkdir -p ~/ENV/lib/python3.12/site-packages/arches/locale/es/LC_MESSAGES
cd ~/ENV/lib/python3.12/site-packages/arches/locale/es/LC_MESSAGES
# Descargar los archivos necesarios del repositorio
wget https://gitea.patrimonio.org.bo/sysadmin/sprpcb/raw/branch/prod-7_6_x/arches/es/LC_MESSAGES/django.*
cd ~
```
Configuration parameters:
### Crear carpetas para las extensiones adicionales
* `DOMAINS` - lista de dominios separadas por espacio para el manejo de certificados
* `CERTBOT_EMAILS` - lista de emails separada por espacios para los dominios correspondientes. Si no se especifica, el sistema trabajara con el parámetro `--register-unsafely-without-email`
* `CERTBOT_TEST_CERT` - usa el servidor de prueba de Let's Encrypt staging (`--test-cert`)
```bash
# cd ~/mi_proyecto/mi_proyecto
mkdir -p templates/views/components/plugins
mkdir -p media/js/views/components/plugins
```
### Editar o añadir los siguientes parámetros del archivo de configuración ~/mi_proyecto/mi_proyecto/settings.py
```properties
#...
PUBLIC_SERVER_ADDRESS = "http://IP_LOCAL:8000/" # IP_LOCAL es la ip del servidor
#...
ENABLE_USER_SIGNUP = False
PERMISSION_FRAMEWORK = "arches_default_deny.ArchesDefaultDenyPermissionFramework"
#...
LANGUAGE_CODE = "es"
Let's Encrypt tiene límites de velocidad. Por lo tanto, durante las pruebas es mejor usar un servidor de prueba configurando `CERTBOT_TEST_CERT=1` (valor predeterminado). Cuando esté listo para usar el servidor Let's Encrypt de producción,t `CERTBOT_TEST_CERT=0`.
# list of languages...
#...
LANGUAGES = [
# ('de', _('German')),
# ('en', _('English')),
# ('en-gb', _('British English')),
('es', _('Spanish')),
]
```
### Comandos finales para completar una instalación de arches en blanco
```bash
# se recomienda reiniciar el servidor y reconectar por ssh
# 1ra terminal:
source ENV/bin/activate
cd ~/mi_proyecto
python manage.py setup_db
python manage.py runserver IP_LOCAL:8000
# Conectar un segundo terminal al servidor de manera paralela
# 2da terminal:
source ENV/bin/activate
cd ~/mi_proyecto/mi_proyecto
npm run build_development
```
Finalmente, comprobar en un navegador web: http://IP_LOCAL:8000