/Core-CMS

The Core CMS codebase used by TACC Portals.

Primary LanguagePython

TACC Core CMS

https://cep.tacc.utexas.edu/

The base CMS code for TACC WMA Workspace Portals & Websites

Table of Contents

Related Repositories

Project Architecture

directory contents
apps additional Django applications
bin scripts e.g. build CSS
taccsite_cms settings for Core CMS
taccsite_custom Git submodule of Core CMS Resources
taccsite_ui files to build TACC UI Patterns

Prerequisites

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.

  1. Clone this Repository.

  2. Enter the Repository Clone:

    cd Core-CMS
  3. Add Core CMS Settings & Secrets:

    Create a taccsite_cms/*.py for every *.example.py, e.g.

    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
  4. Build & Start the Docker Containers:

    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.

  5. Enter the CMS Docker Container:

    (This opens a command prompt within the container.)

    docker exec -it core_cms /bin/bash
    # This opens a command prompt within the container
  6. Update the Django Application:

    (Run these commands within the container.)

    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
    
  7. 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 copy a database.

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 and 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)

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.

Contributing

To contribute, first read How to Contirbute.

Resources

Commands

command reference
docker exec -it core_cms /bin/bash docker
python manage.py migrate django cms, django
python manage.py collectstatic django
python manage.py createsuperuser django cms, django