Compare commits

..

3 Commits

Author SHA1 Message Date
Markos Gogoulos
a5acce4ab1 fix: single server install issues 2025-06-15 11:19:29 +03:00
Ofek
a4e9309350 (FEAT) Add Hebrew Translation (#1295) 2025-06-14 11:08:17 +03:00
Casper Tollund
6beaf0bbe2 Add support for Danish translation (#1293)
Co-authored-by: Casper Tollund <casto@mac.ait.clients.local>
2025-06-12 17:35:37 +03:00
8 changed files with 233 additions and 32 deletions

View File

@@ -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
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
############ RUNTIME IMAGE ############
FROM python:3.13-bookworm AS runtime_image
FROM python:3.13.5-bookworm AS runtime_image
SHELL ["/bin/bash", "-c"]
@@ -37,7 +37,7 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Install runtime system dependencies
RUN apt-get update -y && \
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/* && \
apt-get purge --auto-remove && \
apt-get clean
@@ -58,7 +58,7 @@ COPY requirements.txt requirements-dev.txt ./
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 \
echo "Installing development dependencies..." && \
pip install --no-cache-dir -r requirements-dev.txt; \

View File

@@ -453,6 +453,7 @@ DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
LANGUAGES = [
('ar', _('Arabic')),
('bn', _('Bengali')),
('da', _('Danish')),
('nl', _('Dutch')),
('en', _('English')),
('fr', _('French')),
@@ -470,6 +471,7 @@ LANGUAGES = [
('tr', _('Turkish')),
('el', _('Greek')),
('ur', _('Urdu')),
('he', _('Hebrew')),
]
LANGUAGE_CODE = 'en' # default language

View File

@@ -1 +1 @@
VERSION = "6.0.0"
VERSION = "6.0.1"

View File

@@ -2,7 +2,7 @@
## Table of contents
- [1. Welcome](#1-welcome)
- [2. Server Installaton](#2-server-installation)
- [2. Single Server Installaton](#2-single-server-installation)
- [3. Docker Installation](#3-docker-installation)
- [4. Docker Deployment options](#4-docker-deployment-options)
- [5. Configuration](#5-configuration)
@@ -31,14 +31,14 @@
## 1. Welcome
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.
Automated script - tested on Ubuntu 20, Ubuntu 22 and Debian Buster
```bash
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
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
curl -fsSL https://get.docker.com -o 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
@@ -111,7 +109,7 @@ If you want to explore more options (including setup of https with letsencrypt c
Run
```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
@@ -131,8 +129,8 @@ Get latest MediaCMS image and stop/start containers
```bash
cd /path/to/mediacms/installation
docker pull mediacms/mediacms
docker-compose down
docker-compose up
docker compose down
docker compose up
```
### 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`
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
@@ -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`
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
@@ -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
```bash
#docker-compose restart web celery_worker celery_beat
#docker compose restart web celery_worker celery_beat
```
### 5.1 Change portal logo

View File

@@ -0,0 +1,104 @@
translation_strings = {
"ABOUT": "OM",
"AUTOPLAY": "Automatisk afspilning",
"About": "Om",
"Add a ": "Tilføj en ",
"COMMENT": "KOMMENTAR",
"Categories": "Kategorier",
"Category": "Kategori",
"Change Language": "Skift sprog",
"Change password": "Skift adgangskode",
"Comment": "Kommentar",
"Comments": "Kommentarer",
"Comments are disabled": "Kommentarer er slået fra",
"Contact": "Kontakt",
"DELETE MEDIA": "SLET MEDIE",
"DOWNLOAD": "HENT",
"EDIT MEDIA": "REDIGER MEDIE",
"EDIT PROFILE": "REDIGER PROFIL",
"EDIT SUBTITLE": "REDIGER UNDERTEKSTER",
"Edit media": "Rediger medie",
"Edit profile": "Rediger profil",
"Edit subtitle": "Rediger undertekster",
"Featured": "Fremhævede",
"Go": "Vælg",
"History": "Historik",
"Home": "Hjem",
"Language": "Sprog",
"Latest": "Nyeste",
"Liked media": "Medier du har liket",
"Manage comments": "Administrer kommentarer",
"Manage media": "Administrer medier",
"Manage users": "Administrer brugere",
"Media": "Medier",
"Media was edited": "Mediet er blevet redigeret",
"Members": "Medlemmer",
"My media": "Mine medier",
"My playlists": "Mine playlister",
"No": "Nej",
"No comment yet": "Ingen kommentar endnu",
"No comments yet": "Ingen komentarer endnu",
"No results for": "Ingen resultater for",
"PLAYLISTS": "PLAYLISTER",
"Playlists": "Playlister",
"Powered by": "Drevet af",
"Published on": "Udgivet på",
"Recommended": "Anbefalet",
"Register": "Registrer",
"SAVE": "GEM",
"SEARCH": "SØG",
"SHARE": "DEL",
"SHOW MORE": "VIS MERE",
"SUBMIT": "INDSEND",
"Search": "Søg",
"Select": "Vælg",
"Sign in": "Log ind",
"Sign out": "Log ud",
"Subtitle was added": "Undertekster tilføjet",
"Tags": "Tags",
"Terms": "Vilkår",
"UPLOAD": "UPLOAD",
"Up next": "Næste",
"Upload": "Upload",
"Upload media": "Upload medie",
"Uploads": "Uploads",
"VIEW ALL": "SE ALLE",
"View all": "Se alle",
"comment": "kommentar",
"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": "er et moderne, fuldt udstyret open source video og medie CMS. Det er udviklet til at imødekomme behovene for moderne webplatforme til visning og deling af medier.",
"media in category": "medier i kategori",
"media in tag": "medier i tag",
"view": "visning",
"views": "visninger",
"yet": "endnu",
}
replacement_strings = {
"Apr": "Apr",
"Aug": "Aug",
"Dec": "Dec",
"Feb": "Feb",
"Jan": "Jan",
"Jul": "Jul",
"Jun": "Jun",
"Mar": "Mar",
"May": "Maj",
"Nov": "Nov",
"Oct": "Okt",
"Sep": "Sep",
"day ago": "dag siden",
"days ago": "dage siden",
"hour ago": "time siden",
"hours ago": "timer siden",
"just now": "lige nu",
"minute ago": "minut siden",
"minutes ago": "minutter siden",
"month ago": "måned siden",
"months ago": "måneder siden",
"second ago": "sekund siden",
"seconds ago": "sekunder siden",
"week ago": "uge siden",
"weeks ago": "uger siden",
"year ago": "år siden",
"years ago": "år siden",
}

View File

@@ -0,0 +1,104 @@
translation_strings = {
'ABOUT': 'על אודות',
'AUTOPLAY': 'ניגון אוטומטי',
'About': 'על אודות',
'Add a ': 'הוסף',
'COMMENT': 'תגובה',
'Categories': 'קטגוריות',
'Category': 'קטגוריה',
'Change Language': 'שנה שפה',
'Change password': 'שנה סיסמה',
'Comment': 'תגובה',
'Comments': 'תגובות',
'Comments are disabled': 'התגובות מושבתות',
'Contact': 'צור קשר',
'DELETE MEDIA': 'מחק מדיה',
'DOWNLOAD': 'הורד',
'EDIT MEDIA': 'ערוך מדיה',
'EDIT PROFILE': 'ערוך פרופיל',
'EDIT SUBTITLE': 'ערוך כתוביות',
'Edit media': 'ערוך מדיה',
'Edit profile': 'ערוך פרופיל',
'Edit subtitle': 'ערוך כתוביות',
'Featured': 'מומלצים',
'Go': 'בצע', # in context of "execution"
'History': 'היסטוריה',
'Home': 'דף הבית',
'Language': 'שפה',
'Latest': 'העדכונים האחרונים',
'Liked media': 'מדיה שאהבתי',
'Manage comments': 'ניהול תגובות',
'Manage media': 'ניהול מדיה',
'Manage users': 'ניהול משתמשים',
'Media': 'מדיה',
'Media was edited': 'המדיה נערכה',
'Members': 'משתמשים',
'My media': 'המדיה שלי',
'My playlists': 'הפלייליסטים שלי',
'No': 'לא', # in context of "no comments", etc.
'No comment yet': 'עדיין אין תגובות',
'No comments yet': 'עדיין אין תגובות',
'No results for': 'אין תוצאות עבור',
'PLAYLISTS': 'פלייליסטים',
'Playlists': 'פלייליסטים',
'Powered by': 'מופעל על ידי',
'Published on': 'פורסם בתאריך',
'Recommended': 'מומלץ',
'Register': 'הרשמה',
'SAVE': 'שמור',
'SEARCH': 'חפש',
'SHARE': 'שתף',
'SHOW MORE': 'הצג עוד',
'SUBMIT': 'שלח',
'Search': 'חפש',
'Select': 'בחר',
'Sign in': 'התחבר',
'Sign out': 'התנתק',
'Subtitle was added': 'הכתובית נוספה',
'Tags': 'תגיות',
'Terms': 'תנאים',
'UPLOAD': 'העלה',
'Up next': 'הבא בתור',
'Upload': 'העלה',
'Upload media': 'העלה מדיה',
'Uploads': 'העלאות',
'VIEW ALL': 'הצג הכל',
'View all': 'הצג הכל',
'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': 'מערכת ניהול מדיה ווידאו מודרנית, פתוחה ומלאה בפיצ׳רים. פותחה כדי לענות על הצרכים של פלטפורמות אינטרנט מודרניות לצפייה ושיתוף מדיה.',
'media in category': 'מדיה בקטגוריה',
'media in tag': 'מדיה בתגית',
'view': 'צפיות',
'views': 'צפיות',
'yet': 'עדיין',
}
replacement_strings = {
'Apr': 'אפריל',
'Aug': 'אוגוסט',
'Dec': 'דצמבר',
'Feb': 'פברואר',
'Jan': 'ינואר',
'Jul': 'יולי',
'Jun': 'יוני',
'Mar': 'מרץ',
'May': 'מאי',
'Nov': 'נובמבר',
'Oct': 'אוקטובר',
'Sep': 'ספטמבר',
'day ago': 'לפני יום',
'days ago': 'לפני ימים',
'hour ago': 'לפני שעה',
'hours ago': 'לפני שעות',
'just now': 'הרגע',
'minute ago': 'לפני דקה',
'minutes ago': 'לפני דקות',
'month ago': 'לפני חודש',
'months ago': 'לפני חודשים',
'second ago': 'לפני שנייה',
'seconds ago': 'לפני שניות',
'week ago': 'לפני שבוע',
'weeks ago': 'לפני שבועות',
'year ago': 'לפני שנה',
'years ago': 'לפני שנים',
}

View File

@@ -10,8 +10,9 @@ fi
while true; do
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.
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
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**.
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
case $yn in
[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
done
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
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
# install 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 USER mediacms WITH ENCRYPTED PASSWORD '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'
@@ -57,7 +51,7 @@ cd /home/mediacms.io
virtualenv . --python=python3
source /home/mediacms.io/bin/activate
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())'`

View File

@@ -1,6 +1,5 @@
Django==5.1.6
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
django-allauth==65.4.1
psycopg==3.2.4