https://github.com/tacc/core-cms
The Core CMS codebase used by TACC Portals.
https://github.com/tacc/core-cms
django-cms tacc
Last synced: 2 months ago
JSON representation
The Core CMS codebase used by TACC Portals.
- Host: GitHub
- URL: https://github.com/tacc/core-cms
- Owner: TACC
- Created: 2020-12-09T20:57:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-25T19:38:56.000Z (3 months ago)
- Last Synced: 2025-03-25T20:29:40.162Z (3 months ago)
- Topics: django-cms, tacc
- Language: HTML
- Homepage: https://cep.tacc.utexas.edu
- Size: 25.7 MB
- Stars: 2
- Watchers: 15
- Forks: 1
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/contributing.md
Awesome Lists containing this project
README
# TACC Core CMS
https://cep.tacc.utexas.edu/
The base CMS code for TACC WMA Workspace Portals & Websites
## Table of Contents
- [Related Repositories](#related-repositories)
- [Project Architecture](#project-architecture)
- [Prerequisites](#prerequisites)
- [Getting Started](#getting-started)
- [Update Project](#update-project)
- [Develop Project](#develop-project)
- [Develop a Custom Project](#develop-a-custom-project)
- [Debug Project](#debug-project)
- [Build & Deploy Project](#build--deploy-project)
- [Contributing](#contributing)
- [Resources](#resources)## Related Repositories
- [Camino], a Docker container-based deployment scheme
- [Core Portal], the base Portal code for TACC WMA CMS Websites
- [Core Styles], the shared UI pattern code for TACC WMA CMS Websites
- [Core CMS Resources], the old solution for extensions of the [Core CMS] project
- [Core CMS Custom], the new solution for extensions of the [Core CMS] project
- [Core Portal Deployments], private repository that facilitates deployments of [Core Portal] images via [Camino] and Jenkins## Project Architecture
| directory | contents |
| - | - |
| `apps` | additional Django applications |
| `bin` | scripts e.g. build CSS |
| `taccsite_cms` | settings for [Core CMS] |
| `taccsite_custom` | [Git submodule][Git Submodules] of [Core CMS Resources] |
| `taccsite_ui` | files to build [TACC UI Patterns] |## Prerequisites
* [Docker]
* Docker Engine ≥ v20
* [Docker Compose]> **Important**
> We recommend you install the Docker Desktop application. Alternatively, you may install both Docker Engine and Docker Compose.## Getting Started
> **Important**
> To develop a new or existing custom CMS website for a TACC client, do **not** clone this repository. Instead, read [Develop a Custom Project]. To develop on the Core CMS (upon which our other CMS are built) continute reading.Set up a new local CMS instance.
0. [Clone this Repository.](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
1. Enter the Repository Clone:```sh
cd Core-CMS
```2. Add Core CMS Settings & Secrets:
Create a `taccsite_cms/*.py` for every `*.example.py`, e.g.
```sh
cp taccsite_cms/settings_custom.example.py taccsite_cms/settings_custom.py
cp taccsite_cms/secrets.example.py taccsite_cms/secrets.py
cp taccsite_cms/settings_local.example.py taccsite_cms/settings_local.py
```3. Build & Start the Docker Containers:
```sh
make start
```> **Note**
> This will make the terminal window busy. To run commands after this, **either** open a new terminal window **or** run `docker compose -f ./docker-compose.dev.yml up --detach` instead.4. Enter the CMS Docker Container:
(This opens a command prompt within the container.)
```sh
docker exec -it core_cms /bin/bash
# This opens a command prompt within the container
```5. Update the Django Application:
(Run these commands within the container.)
```sh
python manage.py migrate
python manage.py createsuperuser
# To use default "Username" and skip "Email address", press Enter at both prompts.
# At "Password" prompts, you may use an easy-to-remember password.
python manage.py collectstatic --no-input```
6. Open Django CMS:
1. Open http://localhost:8000/.
2. Login with the credentials you defined in step 2.
3. Create one CMS page.\
(With "New page" highlighted, click "Next" button.)
- This page will automatically be your local homepage.> **Important**
> A local machine CMS will be empty. It will **not** have content from staging **nor** production. If you need that, follow and adapt instructions to [replicate a CMS database](https://tacc-main.atlassian.net/wiki/x/GwBJAg). This requires high-level server access or somone to give you a copy of the content.> **Note**
> A local machine CMS does **not** include **nor** integrate with an instance of [Core Portal]. To attempt to do that, follow [How to Use a Custom Docker Compose File](https://github.com/TACC/Core-CMS/wiki/How-to-Use-a-Custom-Docker-Compose-File) and [Locally Develop CMS Portal Docs](https://github.com/TACC/Core-CMS/wiki/Locally-Develop-CMS---Portal---Docs). **Help welcome.**## Update Project
To update an existing CMS instance.
### New Major Version (or v3.12)
Read [Upgrade Project] for developer instructions.
### New Minor or Patch Version (or Branch)
```sh
make stop
make build
make start
```Advanced
To only update as necessary, or update since uncommon changes:
| | If this changed | Run this command |
| - | - | - |
| 0 | Dockerfile | `make stop`, `make build`, `make start` |
| 1 | Python models | `docker exec -it core_cms sh -c "python manage.py migrate"` |
| 2 | Node dependencies | `npm ci` |
| 3 | CSS stylesheets | `npm run build:css` |
| 4 | UI Demo | `npm run build:ui-demo` |
| 5 | Assets e.g.
images, stylesheets, JavaScript, UI demo | `docker exec -it core_cms sh -c "python manage.py collectstatic --no-input"` |## Develop Project
Read [Django CMS User Guide] for CMS user instructions.
Read [Develop Project] for developer instructions.
### Develop a Custom Project
To develop a new or existing custom CMS website for a client, read [Develop a Custom Project].
## Debug Project
Read [Debug Project] for miscellaneous tips.
## Build & Deploy Project
Follow "Core-CMS" section of [How To Build & Deploy][Build & Deploy Project].
## Contributing
To contribute, first read [How to Contirbute][Contributing].
## Resources
### Commands
| command | reference |
| - | - |
| `docker exec -it core_cms /bin/bash` | [docker](https://docs.docker.com/engine/reference/commandline/exec/#run-docker-exec-on-a-running-container)
| `python manage.py migrate` | [django cms](https://docs.django-cms.org/en/release-3.8.x/how_to/install.html#database-tables), [django](https://docs.djangoproject.com/en/3.2/topics/migrations/)
| `python manage.py collectstatic` | [django](https://docs.djangoproject.com/en/3.2/howto/static-files/)
| `python manage.py createsuperuser` | [django cms](https://docs.django-cms.org/en/release-3.8.x/how_to/install.html#admin-user), [django](https://docs.djangoproject.com/en/3.2/ref/django-admin/#createsuperuser)[Camino]: https://github.com/TACC/Camino
[Core CMS]: https://github.com/TACC/Core-CMS
[Core Styles]: https://github.com/TACC/Core-Styles
[Core CMS Resources]: https://github.com/TACC/Core-CMS-Resources
[Core CMS Custom]: https://github.com/TACC/Core-CMS-Custom
[Core Portal]: https://github.com/TACC/Core-Portal
[Core Portal Deployments]: https://github.com/TACC/Core-Portal-Deployments[Git Submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules
[Docker]: https://docs.docker.com/get-docker/
[Docker Compose]: https://docs.docker.com/compose/install/[TACC UI Patterns]: https://tacc.utexas.edu/static/ui/
[Build & Deploy Project]: https://tacc-main.atlassian.net/wiki/x/2AVv
[Django CMS User Guide]: https://tacc-main.atlassian.net/wiki/x/phdv[Develop a Custom Project]: ./docs/develop-custom-project.md
[Develop Project]: ./docs/develop-project.md
[Upgrade Project]: ./docs/upgrade-project.md
[Debug Project]: ./docs/debug-project.md
[Contributing]: ./docs/contributing.md