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 & 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
-
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. -
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
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" |
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 |