MediaCMS
cd /srv/path/Files
git clone https://github.com/mediacms-io/mediacms
cd /homesrv/path/Files/mediacms
mkdir postgres_data \
&& chmod -R 755 postgres_data
nano docker-compose.yaml
and only change port, username, mail and password
version: "3"
services:
redis:
image: "redis:alpine"
restart: always
healthcheck:
test: ["CMD", "redis-cli","ping"]
interval: 30s
timeout: 10s
retries: 3
migrations:
image: mediacms/mediacms:latest
volumes:
- ./deploy/docker/local_settings.srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
- /srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
- /srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
- /srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/deploy/docker/local_settings.cms/settings.py
environment:
ENABLE_UWSGI: 'no'
ENABLE_NGINX: 'no'
ENABLE_CELERY_SHORT: 'no'
ENABLE_CELERY_LONG: 'no'
ENABLE_CELERY_BEAT: 'no'
ADMIN_USER: 'xxxxxxxxx'admin'
ADMIN_EMAIL: 'xxxxxxxxx'admin@localhost'
ADMIN_PASSWORD: 'xxxxxxxxx'
command: "./deploy/docker/prestart.sh"complicatedpassword'
restart: on-failure
depends_on:
redis:
condition: service_healthy
db:
condition: service_healthy
web:
image: mediacms/mediacms:latest
deploy:
replicas: 1
ports:
- "xxxx:8870:80" #whatever:80
volumes:
- media_store:/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/media_files/deploy
- static_store:/srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/static/logs
- ./deploy/docker/local_settings.srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
- /srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/deploy/docker/local_settings.cms/settings.py
environment:
# ENABLE_UWSGI: 'no' #keep commented
ENABLE_CELERY_BEAT: 'no'
ENABLE_CELERY_SHORT: 'no'
ENABLE_CELERY_LONG: 'no'
ENABLE_MIGRATIONS: 'no'
depends_on:
- migrations
celery_beat:
image: mediacms/mediacms:latest
volumes:
- ./deploy/docker/local_settings.py:/home/mediacms.io/mediacms/deploy/docker/local_settings.py
environment:
ENABLE_UWSGI: 'no'
ENABLE_NGINX: 'no'
ENABLE_CELERY_SHORT: 'no'
ENABLE_CELERY_LONG: 'no'
ENABLE_MIGRATIONS: 'no'
depends_on:
- redis
celery_worker:
image: mediacms/mediacms:latest
deploy:
replicas: 1
volumes:
- media_store:/home/mediacms.io/mediacms/media_files/
- static_store:/home/mediacms.io/mediacms/static/
- ./deploy/docker/local_settings.py:/home/mediacms.io/mediacms/deploy/docker/local_settings.py
environment:
ENABLE_UWSGI: 'no'
ENABLE_NGINX: 'no'
ENABLE_CELERY_BEAT: 'no'
ENABLE_MIGRATIONS: 'no'
depends_on:
- migrations
db:
image: postgres:15.2-alpine
volumes:
- /srv/path/Files/mediacms/postgres_data:/var/lib/postgresql/data/
restart: always
environment:
POSTGRES_USER: mediacms
POSTGRES_PASSWORD: mediacms
POSTGRES_DB: mediacms
TZ: Europe/LondonParis
healthcheck:
test: ["CMD-SHELL", "pg_isready", "--host=db", "--dbname=$POSTGRES_DB", "--username=$POSTGRES_USER"]
interval: 30s
timeout: 10s
retries: 5
redis:celery_beat:
image: "redis:alpine"
restart: always
healthcheck:
test: ["CMD", "redis-cli","ping"]
interval: 30s
timeout: 10s
retries: 3mediacms/mediacms:latest
volumes:
postgres_data:- media_store:/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
static_store:- /srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
- /srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
- /srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
environment:
ENABLE_UWSGI: 'no'
ENABLE_NGINX: 'no'
ENABLE_CELERY_SHORT: 'no'
ENABLE_CELERY_LONG: 'no'
ENABLE_MIGRATIONS: 'no'
celery_worker:
image: mediacms/mediacms:latest
deploy:
replicas: 1
volumes:
- /srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
- /srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
- /srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
- /srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
environment:
ENABLE_UWSGI: 'no'
ENABLE_NGINX: 'no'
ENABLE_CELERY_BEAT: 'no'
ENABLE_MIGRATIONS: 'no'
depends_on:
- migrations
docker-compose up -d
Then, be patient. Initial setup is LONG.Basically, service is working when container migrations is down.
When editing settings.py , just reload celery_worker, celery_beat and web containers
CSS will probably be missing because the docker support is absolute shit,reasons, so bash into web`web` container
docker exec -it mediacms_web_1 /bin/bash
Then
python manage.py collectstatic
No need to reboot
When editing settings.py
, just reload celery_worker
, celery_beat
and web
containers