No project description provided
Project description
pythoncms
The fastest way to start a CMS in Python. Build production-grade sites with zero-config, modular themes, and a powerful content API.
🚀 Quickstart
The new unified CLI makes it easier than ever to get started:
pip install pythoncms
pythoncms start mysite --run
This single command will:
- Create your project directory.
- Generate a secure
.envfile. - Initialise the database.
- Seed the default admin user.
- Start the development server.
Open: http://localhost:5000/dashboard
Login: admin@domain.com / pass
🛠️ Unified CLI Commands
Manage your entire project from one place:
pythoncms start <name>: Create a new project.pythoncms run: Start the dev server.pythoncms initialise: Set up database and assets.pythoncms seed: Reset default data.pythoncms deploy: Generate production files (Dockerfile, docker-compose.yml).pythoncms --version: Check your version.
🚀 Production Deployment
Deploying your CMS with a production-grade Nginx reverse proxy is now a single command:
pythoncms deploy
This generates:
- Dockerfile: Optimized for Gunicorn performance.
- nginx.conf: Configured for request buffering and fast static file serving.
- docker-compose.yml: Orchestrates the app and Nginx containers.
Quick Start
- Run
pythoncms deploy. - (Optional) Edit
nginx.confto add your domain. - Run
docker-compose up --build -d.
Your site will be live on port 80 with Nginx handling all incoming traffic.
📡 REST API
Your content is automatically exposed via a JSON API.
Endpoint: /api/v1/<content_type_name>
Pagination & Sorting
?limit=10&offset=0?sort_by=created_at&order=desc
Authentication (Optional)
Set API_TOKEN in your .env to secure the API.
Requests must then include header: Authorization: Bearer <API_TOKEN>
⚙️ Configuration
Your project settings are managed via the .env file in your root directory.
Database Connection
By default, pythoncms uses SQLite. To use a different database, update the SQLALCHEMY_DATABASE_URI:
# SQLite (default)
SQLALCHEMY_DATABASE_URI = "sqlite:///mysite.db"
# PostgreSQL
SQLALCHEMY_DATABASE_URI = "postgresql://user:password@localhost/dbname"
Other Settings
APP_NAME: Change the display name of your application.SECRET_KEY: Used for session encryption. Automatically generated onstart.ACTIVE_FRONT_THEME: Choose betweeneditorialorhyperspace.ACTIVE_BACK_THEME: Choose betweensneatorsbadmin.
✨ Features
- 🏗️ Content Types: Define custom schemas with JSON.
- 🎨 Theme Support: Switch between beautiful, responsive themes instantly.
- 🔐 Built-in Auth: Secure admin and user management out of the box.
- 🍱 Modular Architecture: Extend functionality with a robust plugin system.
- 🖼️ Media Management: Simple upload and resource handling.
- ⚡ Flask Powered: Minimal, fast, and easy to customize.
📸 See it in Action
Admin Dashboard
Page Editor
Website Frontend
🛠️ Local Development
If you want to contribute to the core or customize the engine:
-
Clone and Install:
python -m pip install -e .
-
Initialize:
cd pythoncms shopyo initialise flask --debug run
-
Database Migrations:
flask db migrate flask db upgrade
🎨 Themes & Customization
Themes are located at /static/themes/.
Front Themes
Must include index.html, contact.html, and page.html.
Back Themes
Must include base.html, login.html, register.html, and unconfirmed.html.
📄 License & Community
- License: MIT
- Discord: Join our community
- Issues: Report a bug
Powered by the Shopyo engine.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pythoncms-2.0.0.tar.gz.
File metadata
- Download URL: pythoncms-2.0.0.tar.gz
- Upload date:
- Size: 6.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8efe66a7be14bbf1f2199541ff84aae9103cad16dec08bcdbc2703eff13be874
|
|
| MD5 |
825a85738798975ee40ec936ac148e72
|
|
| BLAKE2b-256 |
227074c5ea7effb37f13de758db49cfd0603ad9922abf047628580232bfd105e
|
File details
Details for the file pythoncms-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pythoncms-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db14787cc5bfd73ec008e2f9dfe8d943d6f40da0cf94229a74200469d9d85949
|
|
| MD5 |
0ad26d0d8f72b398a122fd0f2c10631b
|
|
| BLAKE2b-256 |
0ae944c06e7edbe955d56694352158352ea1f5ce5ed148e4fff39dbb1507eb89
|