mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-05 23:18:53 -05:00
fix: single server install issues
This commit is contained in:
parent
a4e9309350
commit
a5acce4ab1
@ -1,4 +1,4 @@
|
|||||||
FROM python:3.13-bookworm AS build-image
|
FROM python:3.13.5-bookworm AS build-image
|
||||||
|
|
||||||
# Install system dependencies needed for downloading and extracting
|
# Install system dependencies needed for downloading and extracting
|
||||||
RUN apt-get update -y && \
|
RUN apt-get update -y && \
|
||||||
@ -24,7 +24,7 @@ RUN mkdir -p /home/mediacms.io/bento4 && \
|
|||||||
rm Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip
|
rm Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip
|
||||||
|
|
||||||
############ RUNTIME IMAGE ############
|
############ RUNTIME IMAGE ############
|
||||||
FROM python:3.13-bookworm AS runtime_image
|
FROM python:3.13.5-bookworm AS runtime_image
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-c"]
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|||||||
# Install runtime system dependencies
|
# Install runtime system dependencies
|
||||||
RUN apt-get update -y && \
|
RUN apt-get update -y && \
|
||||||
apt-get -y upgrade && \
|
apt-get -y upgrade && \
|
||||||
apt-get install --no-install-recommends supervisor nginx imagemagick procps libxml2-dev libxmlsec1-dev libxmlsec1-openssl -y && \
|
apt-get install --no-install-recommends supervisor nginx imagemagick procps pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl -y && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
apt-get purge --auto-remove && \
|
apt-get purge --auto-remove && \
|
||||||
apt-get clean
|
apt-get clean
|
||||||
@ -58,7 +58,7 @@ COPY requirements.txt requirements-dev.txt ./
|
|||||||
|
|
||||||
ARG DEVELOPMENT_MODE=False
|
ARG DEVELOPMENT_MODE=False
|
||||||
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt && \
|
RUN pip install --no-cache-dir --no-binary lxml,xmlsec -r requirements.txt && \
|
||||||
if [ "$DEVELOPMENT_MODE" = "True" ]; then \
|
if [ "$DEVELOPMENT_MODE" = "True" ]; then \
|
||||||
echo "Installing development dependencies..." && \
|
echo "Installing development dependencies..." && \
|
||||||
pip install --no-cache-dir -r requirements-dev.txt; \
|
pip install --no-cache-dir -r requirements-dev.txt; \
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
VERSION = "6.0.0"
|
VERSION = "6.0.1"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Table of contents
|
## Table of contents
|
||||||
- [1. Welcome](#1-welcome)
|
- [1. Welcome](#1-welcome)
|
||||||
- [2. Server Installaton](#2-server-installation)
|
- [2. Single Server Installaton](#2-single-server-installation)
|
||||||
- [3. Docker Installation](#3-docker-installation)
|
- [3. Docker Installation](#3-docker-installation)
|
||||||
- [4. Docker Deployment options](#4-docker-deployment-options)
|
- [4. Docker Deployment options](#4-docker-deployment-options)
|
||||||
- [5. Configuration](#5-configuration)
|
- [5. Configuration](#5-configuration)
|
||||||
@ -31,14 +31,14 @@
|
|||||||
## 1. Welcome
|
## 1. Welcome
|
||||||
This page is created for MediaCMS administrators that are responsible for setting up the software, maintaining it and making modifications.
|
This page is created for MediaCMS administrators that are responsible for setting up the software, maintaining it and making modifications.
|
||||||
|
|
||||||
## 2. Server Installation
|
## 2. Single Server Installation
|
||||||
|
|
||||||
The core dependencies are Python3, Django3, Celery, PostgreSQL, Redis, ffmpeg. Any system that can have these dependencies installed, can run MediaCMS. But we strongly suggest installing on Linux Ubuntu (tested on versions 20, 22).
|
The core dependencies are python3, Django, celery, PostgreSQL, redis, ffmpeg. Any system that can have these dependencies installed, can run MediaCMS. But the install.sh is only tested in Linux Ubuntu 24 and 22 versions.
|
||||||
|
|
||||||
Installation on an Ubuntu system with git utility installed should be completed in a few minutes with the following steps.
|
Installation on an Ubuntu 22/24 system with git utility installed should be completed in a few minutes with the following steps.
|
||||||
Make sure you run it as user root, on a clear system, since the automatic script will install and configure the following services: Celery/PostgreSQL/Redis/Nginx and will override any existing settings.
|
Make sure you run it as user root, on a clear system, since the automatic script will install and configure the following services: Celery/PostgreSQL/Redis/Nginx and will override any existing settings.
|
||||||
|
|
||||||
Automated script - tested on Ubuntu 20, Ubuntu 22 and Debian Buster
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir /home/mediacms.io && cd /home/mediacms.io/
|
mkdir /home/mediacms.io && cd /home/mediacms.io/
|
||||||
@ -89,13 +89,11 @@ Database can be backed up with pg_dump and media_files on /home/mediacms.io/medi
|
|||||||
## Installation
|
## Installation
|
||||||
Install a recent version of [Docker](https://docs.docker.com/get-docker/), and [Docker Compose](https://docs.docker.com/compose/install/).
|
Install a recent version of [Docker](https://docs.docker.com/get-docker/), and [Docker Compose](https://docs.docker.com/compose/install/).
|
||||||
|
|
||||||
For Ubuntu 20/22 systems this is:
|
For Ubuntu systems this is:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||||
sudo sh get-docker.sh
|
sudo sh get-docker.sh
|
||||||
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
||||||
sudo chmod +x /usr/local/bin/docker-compose
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Then run as root
|
Then run as root
|
||||||
@ -111,7 +109,7 @@ If you want to explore more options (including setup of https with letsencrypt c
|
|||||||
Run
|
Run
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose up
|
docker compose up
|
||||||
```
|
```
|
||||||
|
|
||||||
This will download all MediaCMS related Docker images and start all containers. Once it finishes, MediaCMS will be installed and available on http://localhost or http://ip
|
This will download all MediaCMS related Docker images and start all containers. Once it finishes, MediaCMS will be installed and available on http://localhost or http://ip
|
||||||
@ -131,8 +129,8 @@ Get latest MediaCMS image and stop/start containers
|
|||||||
```bash
|
```bash
|
||||||
cd /path/to/mediacms/installation
|
cd /path/to/mediacms/installation
|
||||||
docker pull mediacms/mediacms
|
docker pull mediacms/mediacms
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker-compose up
|
docker compose up
|
||||||
```
|
```
|
||||||
|
|
||||||
### Update from version 2 to version 3
|
### Update from version 2 to version 3
|
||||||
@ -172,7 +170,7 @@ Also see the `Dockerfile` for other environment variables which you may wish to
|
|||||||
|
|
||||||
See example deployments in the sections below. These example deployments have been tested on `docker-compose version 1.27.4` running on `Docker version 19.03.13`
|
See example deployments in the sections below. These example deployments have been tested on `docker-compose version 1.27.4` running on `Docker version 19.03.13`
|
||||||
|
|
||||||
To run, update the configs above if necessary, build the image by running `docker-compose build`, then run `docker-compose run`
|
To run, update the configs above if necessary, build the image by running `docker compose build`, then run `docker compose run`
|
||||||
|
|
||||||
### Simple Deployment, accessed as http://localhost
|
### Simple Deployment, accessed as http://localhost
|
||||||
|
|
||||||
@ -189,7 +187,7 @@ Edit this file and set `VIRTUAL_HOST` as my_domain.com, `LETSENCRYPT_HOST` as my
|
|||||||
|
|
||||||
Edit `deploy/docker/local_settings.py` and set https://my_domain.com as `FRONTEND_HOST`
|
Edit `deploy/docker/local_settings.py` and set https://my_domain.com as `FRONTEND_HOST`
|
||||||
|
|
||||||
Now run docker-compose -f docker-compose-letsencrypt.yaml up, when installation finishes you will be able to access https://my_domain.com using a valid Letsencrypt certificate!
|
Now run `docker compose -f docker-compose-letsencrypt.yaml up`, when installation finishes you will be able to access https://my_domain.com using a valid Letsencrypt certificate!
|
||||||
|
|
||||||
### Advanced Deployment, accessed as http://localhost:8000
|
### Advanced Deployment, accessed as http://localhost:8000
|
||||||
|
|
||||||
@ -230,7 +228,7 @@ Single server installation: edit `cms/local_settings.py`, make a change and rest
|
|||||||
Docker Compose installation: edit `deploy/docker/local_settings.py`, make a change and restart MediaCMS containers
|
Docker Compose installation: edit `deploy/docker/local_settings.py`, make a change and restart MediaCMS containers
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#docker-compose restart web celery_worker celery_beat
|
#docker compose restart web celery_worker celery_beat
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5.1 Change portal logo
|
### 5.1 Change portal logo
|
||||||
|
|||||||
@ -65,13 +65,12 @@ translation_strings = {
|
|||||||
'VIEW ALL': 'הצג הכל',
|
'VIEW ALL': 'הצג הכל',
|
||||||
'View all': 'הצג הכל',
|
'View all': 'הצג הכל',
|
||||||
'comment': 'תגובה',
|
'comment': 'תגובה',
|
||||||
'is a modern, fully featured open source video and media CMS. It is developed to meet the needs of modern web platforms for viewing and sharing media':
|
'is a modern, fully featured open source video and media CMS. It is developed to meet the needs of modern web platforms for viewing and sharing media': 'מערכת ניהול מדיה ווידאו מודרנית, פתוחה ומלאה בפיצ׳רים. פותחה כדי לענות על הצרכים של פלטפורמות אינטרנט מודרניות לצפייה ושיתוף מדיה.',
|
||||||
'מערכת ניהול מדיה ווידאו מודרנית, פתוחה ומלאה בפיצ׳רים. פותחה כדי לענות על הצרכים של פלטפורמות אינטרנט מודרניות לצפייה ושיתוף מדיה.',
|
|
||||||
'media in category': 'מדיה בקטגוריה',
|
'media in category': 'מדיה בקטגוריה',
|
||||||
'media in tag': 'מדיה בתגית',
|
'media in tag': 'מדיה בתגית',
|
||||||
'view': 'צפיות',
|
'view': 'צפיות',
|
||||||
'views': 'צפיות',
|
'views': 'צפיות',
|
||||||
'yet': 'עדיין'
|
'yet': 'עדיין',
|
||||||
}
|
}
|
||||||
|
|
||||||
replacement_strings = {
|
replacement_strings = {
|
||||||
|
|||||||
18
install.sh
18
install.sh
@ -10,8 +10,9 @@ fi
|
|||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
read -p "
|
read -p "
|
||||||
This script will attempt to perform a system update, install required dependencies, install and configure PostgreSQL, NGINX, Redis and a few other utilities.
|
This script will attempt to perform a system update and install services including PostgreSQL, nginx and Django.
|
||||||
It is expected to run on a new system **with no running instances of any these services**. Make sure you check the script before you continue. Then enter yes or no
|
It is expected to run on a new system **with no running instances of any these services**.
|
||||||
|
This has been tested only in Ubuntu Linux 22 and 24. Make sure you check the script before you continue. Then enter yes or no
|
||||||
" yn
|
" yn
|
||||||
case $yn in
|
case $yn in
|
||||||
[Yy]* ) echo "OK!"; break;;
|
[Yy]* ) echo "OK!"; break;;
|
||||||
@ -20,15 +21,7 @@ It is expected to run on a new system **with no running instances of any these s
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
apt-get update && apt-get -y upgrade && apt-get install pkg-config python3-venv python3-dev virtualenv redis-server postgresql nginx git gcc vim unzip imagemagick procps libxml2-dev libxmlsec1-dev libxmlsec1-openssl python3-certbot-nginx certbot wget xz-utils -y
|
||||||
osVersion=$(lsb_release -d)
|
|
||||||
if [[ $osVersion == *"Ubuntu 20"* ]] || [[ $osVersion == *"Ubuntu 22"* ]] || [[ $osVersion == *"buster"* ]] || [[ $osVersion == *"bullseye"* ]]; then
|
|
||||||
echo 'Performing system update and dependency installation, this will take a few minutes'
|
|
||||||
apt-get update && apt-get -y upgrade && apt-get install python3-venv python3-dev virtualenv redis-server postgresql nginx git gcc vim unzip imagemagick python3-certbot-nginx certbot wget xz-utils -y
|
|
||||||
else
|
|
||||||
echo "This script is tested for Ubuntu 20/22 versions only, if you want to try MediaCMS on another system you have to perform the manual installation"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# install ffmpeg
|
# install ffmpeg
|
||||||
echo "Downloading and installing ffmpeg"
|
echo "Downloading and installing ffmpeg"
|
||||||
@ -50,6 +43,7 @@ echo 'Creating database to be used in MediaCMS'
|
|||||||
su -c "psql -c \"CREATE DATABASE mediacms\"" postgres
|
su -c "psql -c \"CREATE DATABASE mediacms\"" postgres
|
||||||
su -c "psql -c \"CREATE USER mediacms WITH ENCRYPTED PASSWORD 'mediacms'\"" postgres
|
su -c "psql -c \"CREATE USER mediacms WITH ENCRYPTED PASSWORD 'mediacms'\"" postgres
|
||||||
su -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE mediacms TO mediacms\"" postgres
|
su -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE mediacms TO mediacms\"" postgres
|
||||||
|
su -c "psql -d mediacms -c \"GRANT CREATE, USAGE ON SCHEMA public TO mediacms\"" postgres
|
||||||
|
|
||||||
echo 'Creating python virtualenv on /home/mediacms.io'
|
echo 'Creating python virtualenv on /home/mediacms.io'
|
||||||
|
|
||||||
@ -57,7 +51,7 @@ cd /home/mediacms.io
|
|||||||
virtualenv . --python=python3
|
virtualenv . --python=python3
|
||||||
source /home/mediacms.io/bin/activate
|
source /home/mediacms.io/bin/activate
|
||||||
cd mediacms
|
cd mediacms
|
||||||
pip install -r requirements.txt
|
pip install --no-binary lxml,xmlsec -r requirements.txt
|
||||||
|
|
||||||
SECRET_KEY=`python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'`
|
SECRET_KEY=`python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'`
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
Django==5.1.6
|
Django==5.1.6
|
||||||
djangorestframework==3.15.2
|
djangorestframework==3.15.2
|
||||||
lxml==5.0.0 # dont use later version, as theres a strange error "lxml & xmlsec libxml2 library version mismatch"
|
|
||||||
python3-saml==1.16.0
|
python3-saml==1.16.0
|
||||||
django-allauth==65.4.1
|
django-allauth==65.4.1
|
||||||
psycopg==3.2.4
|
psycopg==3.2.4
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user