ACMS is a simple, modular, headless CMS.
It is centered around JSON files which contain the content including asset links as well as templates defining the content structure. It is composed of four modules:
Module | Task | Github |
---|---|---|
ACMS Config | git repository to store JSON files | acms-config |
ACMS API | HTTP methods to modify JSON files | acms-api |
ACMS Assets | Webdav asset server to store media files | acms-assets |
ACMS UI | Webapp to edit ACMS content with a UI | acms-ui |
This repository provides docker-compose files to setup the ACMS. It orchestrates the services above in containers as well as an optional gateway
to access them.
- docker (>= 24.0.6)
- docker compose CLI plugin (>= 2.23.0)
- download the UI static files inside the
acms-compose
folderwget https://github.com/artcom/acms-ui/releases/download/v2.17.8/acms-ui-v2.17.8.tar.gz mkdir ui tar -xvzf acms-ui-v2.17.8.tar.gz -C ui
- edit the
ui/config.json
file{ "acmsAssetsUri": "https://<hostname>/services/acms-assets", "acmsApiUri": "https://<hostname>/services/acms-api", "acmsConfigPath": "acmsConfig" }
- edit the
.env.http.example
file - deploy with
docker compose --env-file .env.http.example -f docker-compose.yml -f docker-compose-gateway-http.yml up
- browse to the ACMS UI:
http://127.0.0.1
- create an SSL certificate and key
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
- create a
dhparam.pem
fileopenssl dhparam -out dhparam.pem 2048
- update the
.env.https.example
file - deploy with
docker compose --env-file .env.https.example -f docker-compose.yml -f docker-compose-gateway-https.yml up
- browse to the ACMS UI:
https://localhost
- create a
.htpasswd
file
htpasswd -c .htpasswd username
- edit the
AUTH_FILE
variable in.env.https.example
- deploy with
docker compose --env-file .env.https.example -f docker-compose.yml -f docker-compose-gateway.yml -f docker-compose-gateway-basic-auth.yml up
- to support cross origin requests uncomment the
CORS
section ingateway/nginx.conf
The content repository will be setup with some sample data. To modify the content structure you can clone the config repository:
if you're usting http
git clone http://localhost/services/acms-config
if you're using https
git clone https://localhost/services/acms-config
- Edit the template/content files according to the documentation
- Commit and push your changes
- Reload the ACMS UI
- use the
--force-recreate
flag when any configurations ingateway
have changed