https://github.com/gabrielbaute/octopus-cms
A simple blog built in Flask. Uses newsletter and markdown. Pure Python.
https://github.com/gabrielbaute/octopus-cms
bulma cms flask python
Last synced: 3 months ago
JSON representation
A simple blog built in Flask. Uses newsletter and markdown. Pure Python.
- Host: GitHub
- URL: https://github.com/gabrielbaute/octopus-cms
- Owner: gabrielbaute
- License: mit
- Created: 2024-11-20T00:04:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-06T16:09:44.000Z (about 1 year ago)
- Last Synced: 2025-04-06T16:36:12.934Z (about 1 year ago)
- Topics: bulma, cms, flask, python
- Language: Python
- Homepage:
- Size: 1.22 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Roadmap: roadmap.md
Awesome Lists containing this project
README
# Octopus CMS






## Descripción
Este proyecto de CMS, desarrollado con **Flask** como backend en Python y **Bulma** como framework CSS, nuestro objetivo es ofrecer una experiencia de usuario robusta y funcional. El proyecto incorpora una variedad de características avanzadas y se centrará en ofrecer un CMS completo y funcional pero con un look & feel totalmente minimalista.
### Características Principales
- **Operaciones CRUD**: Capacidad completa para Crear, Leer, Actualizar y Eliminar posts del blog.
- **Gestión de Usuarios**: Sistema de usuarios y roles semejante a wordpress.
- **Edición en Markdown**: Los posts pueden ser editados utilizando Markdown, mejorando la flexibilidad y control sobre el contenido.
- **Programación de Publicaciones**: Los posts pueden ser programados para publicarse en una fecha y hora futura.
- **Newsletter**: Envío de correos masivos a suscriptores utilizando servicios SMTP de Gmail, Outlook, o cualquier otro proveedor. La configuración del correo se maneja a través de variables de entorno.
- **Suscripción a Newsletter**: Los usuarios pueden suscribirse para recibir actualizaciones y newsletters. Los correos sólo se envían a los usuarios que hayan confirmado su suscripción previamente, algo que se hace mediante un token enviado al correo del ususario y que expira a las 24 horas.
- **Interfaz con Bulma**: Utilización de Bulma para un diseño limpio y responsivo, garantizando una buena experiencia de usuario.
- **Dark y Light theme**: Los usuarios y lectores pueden seleccionar el theme para explorar o emplear el Site.
- **SEO Friendly**: Gestión de etiquetas y tags, urls amigables con slugify, generación dinámica de robot.txt y sitemap.xml
- **Deploy en docker**: De momento, el proyecto puede desplegarse usando contenedores docker y empleando Waitress como WSGI en producción.
### Enfoque en Python
El proyecto está completamente centrado en Python, utilizando Flask como framework para el backend. Esta elección permite una rápida y eficiente creación de aplicaciones web, aprovechando las capacidades y simplicidad de Python. El desarrollo sigue una lógica modular y el objetivo es permitir en un futuro la incorporación de más módulos sin afectar en gran medida el código principal.
## Instalación
1. Clonar el repositorio:
```sh
git clone https://github.com/gabrielbaute/octopus-cms.git
cd octopus-cms
```
2. Crear un entorno virtual y activar:
```sh
python -m venv env
source env/bin/activate # En Windows usa `env\Scripts\activate`
```
3. Instalar las dependencias:
```sh
pip install -r requirements.txt
```
4. Configurar las variables de entorno: Crea un archivo `.env` en la raíz del proyecto y añade las siguientes configuraciones:
```plaintext
SECRET_KEY='alguna_clave_muy_segura'
SQLALCHEMY_DATABASE_URI='sqlite:///site.db'
SMTP_SERVER='smtp.gmail.com'
SMTP_PORT=587
EMAIL='tu_email@gmail.com'
APP_PASS='tu_password_app'
FROM='Blog '
```
El proyecto también incluye un archivo example.env en donde encontrará otras variables de entorno para configurar.
5. Inicializar la base de datos:
```sh
flask db init
flask db migrate -m "Inicializar base de datos"
flask db upgrade
```
## Uso
1. Ejecutar la aplicación:
```sh
python run.py
```
Ten en cuenta que si vas a trabajar en producción, debes pasar `DEBUG=True` en las variables de entorno. Esto cambiará el servidor del servidor de pruebas de Flask al servidor WSGI de Waitress. No es recomendable emplear el servidor de Flask en producción ni el modo DEBUG.
2. Abrir el navegador y navegar a `http://localhost:5000` (o el puerto que hayas designado en las variables de entorno) para ver la aplicación en funcionamiento.
## Contribuciones
Si deseas contribuir a este proyecto, por favor abre un issue o envía un pull request. Este proyecto se encuentra en desarrollo activo, y se planea incorporar más funcionalidades en el futuro. ¡Todas las ideas y aportes son bienvenidos!
## Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.