112 lines
3.4 KiB
Markdown
112 lines
3.4 KiB
Markdown
<div align="center">
|
|
|
|
<h1>Drust</h1>
|
|
|
|
<p>Un Sistema de Gestión de Contenidos (CMS) basado en <strong>PageTop</strong> para compartir tu mundo.</p>
|
|
|
|
[](#-license)
|
|
[](https://crates.io/crates/drust)
|
|
[](https://crates.io/crates/drust)
|
|
|
|
</div>
|
|
|
|
## Descripción general
|
|
|
|
`Drust` exprime `PageTop` para desarrollar un *Sistema de Gestión de Contenidos* (CMS) básico,
|
|
modestamente inspirado en [Drupal](https://www.drupal.org), que permita construir sitios web
|
|
dinámicos, manejables y personalizables; y facilite a los usuarios la gestión de una variedad de
|
|
contenidos de manera sencilla.
|
|
|
|
## Sobre PageTop
|
|
|
|
[PageTop](https://docs.rs/pagetop) es un entorno de desarrollo que reivindica la esencia de la web
|
|
clásica para crear soluciones web SSR (*renderizadas en el servidor*) modulares, extensibles y
|
|
configurables, basadas en HTML, CSS y JavaScript.
|
|
|
|
|
|
# ⚡️ Guía rápida
|
|
|
|
`Drust` requiere una base de datos para funcionar. La aplicación se encarga de ejecutar las
|
|
migraciones y cargar los datos mínimos necesarios, pero para crear o borrar la base de datos puedes
|
|
usar los scripts `db-create.sh` y `db-delete.sh` que se encuentran en el directorio `tools` del
|
|
*workspace*.
|
|
|
|
## Configuración de `.env`
|
|
|
|
Para simplificar la configuración, en el directorio `tools` puedes crear un archivo `.env` para
|
|
definir las variables de entorno que requieren los scripts para gestionar la base de datos, aunque
|
|
su presencia es **opcional**. Si no se encuentra `.env` o carece de ciertos valores, los scripts
|
|
solicitarán las variables necesarias para su ejecución.
|
|
|
|
> **Nota**: Evita usar caracteres especiales como `@`, `#`, `?`, `:` en `DB_PASS` para prevenir
|
|
> posibles problemas de interpretación de `DATABASE_URL` en el código.
|
|
|
|
### Ejemplo de `.env`
|
|
|
|
```bash
|
|
# Sistema de base de datos
|
|
DB_SYSTEM="psql"
|
|
|
|
# Nombre del host
|
|
DB_HOST="localhost"
|
|
|
|
# Puerto de conexión
|
|
DB_PORT="5432"
|
|
|
|
# Nombre de la base de datos
|
|
DB_NAME="drust"
|
|
|
|
# Usuario de la base de datos
|
|
DB_USER="drust"
|
|
|
|
# Contraseña para el usuario de la base de datos
|
|
# Evita usar caracteres especiales como '@', '#', '?', ':', ';' o espacios
|
|
DB_PASS="password"
|
|
|
|
# Usuario administrador
|
|
DB_ADMIN="postgres"
|
|
|
|
# Contraseña del usuario administrador
|
|
DB_ADMIN_PASS="adminpassword"
|
|
```
|
|
|
|
## Ejecución de los scripts
|
|
|
|
Asegúrate de que los scripts tienen permisos de ejecución:
|
|
|
|
```bash
|
|
chmod +x db-create.sh db-delete.sh
|
|
```
|
|
|
|
Y ejecuta el script deseado:
|
|
|
|
```bash
|
|
./db-create.sh
|
|
```
|
|
|
|
o
|
|
|
|
```bash
|
|
./db-delete.sh
|
|
```
|
|
|
|
|
|
# 🚧 Advertencia
|
|
|
|
`PageTop` es un proyecto personal que hago por diversión para aprender cosas nuevas. Su API es
|
|
inestable y está sujeta a cambios frecuentes. No recomiendo su uso en producción, al menos mientras
|
|
no se libere una versión **1.0.0**.
|
|
|
|
|
|
# 📜 Licencia
|
|
|
|
El código está disponible bajo una doble licencia:
|
|
|
|
* **Licencia MIT**
|
|
([LICENSE-MIT](LICENSE-MIT) o también https://opensource.org/licenses/MIT)
|
|
|
|
* **Licencia Apache, Versión 2.0**
|
|
([LICENSE-APACHE](LICENSE-APACHE) o también https://www.apache.org/licenses/LICENSE-2.0)
|
|
|
|
Puedes elegir la licencia que prefieras. Este enfoque de doble licencia es el estándar de facto en
|
|
el ecosistema Rust.
|