The base CMS code for TACC WMA Workspace Portals & Websites
- Related Repositories
- Project Architecture
- Prerequisites
- Getting Started
- Update Project
- Develop Project
- Debug Project
- Build & Deploy Project
- Contributing
- Resources
- 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
| 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 |
- 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.
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.
-
Enter the Repository Clone:
cd Core-CMS -
Add Core CMS Settings:
Create a
taccsite_cms/settings_local.pywith content fromsettings_local.example.py, e.g.cp taccsite_cms/settings_local.example.py taccsite_cms/settings_local.py
-
Build & Start the Docker Containers:
For Testing For Developing & Testing make startdocker-compose -f ./docker-compose.dev.yml upNote 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 --detachinstead. -
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
-
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
-
Open Django CMS:
- Open http://localhost:8000/.
- Login with the credentials you defined in step 2.
- 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.
To update an existing CMS instance.
Read Upgrade Project for developer instructions.
make stop
make build
make start| If this changed | Run this command | |
|---|---|---|
| 0 | Dockerfile | make build then re-start the container |
| 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" |
Read Django CMS User Guide for CMS user instructions.
Read Develop Project for developer instructions.
To develop a new or existing custom CMS website for a client, read Develop a Custom Project.
Read Debug Project for miscellaneous tips.
Follow "Core-CMS" section of How To Build & Deploy.
To contribute, first read How to Contirbute.
| 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 |