From 2c1f27c0be57dcff85e5a4c2fb9f876854b9aea3 Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Thu, 8 Jan 2026 17:30:33 +0200 Subject: [PATCH] remove --- HISTORY.md | 23 ---- install-rhel.sh | 302 ------------------------------------------------ install.sh | 140 ---------------------- 3 files changed, 465 deletions(-) delete mode 100644 HISTORY.md delete mode 100644 install-rhel.sh delete mode 100644 install.sh diff --git a/HISTORY.md b/HISTORY.md deleted file mode 100644 index 427d3a80..00000000 --- a/HISTORY.md +++ /dev/null @@ -1,23 +0,0 @@ -# History - -## 3.0.0 - -### Features -- Updates Python/Django requirements and Dockerfile to use latest 3.11 Python - https://github.com/mediacms-io/mediacms/pull/826/files. This update requires some manual steps, for existing (not new) installations. Check the update section under the [Admin docs](https://github.com/mediacms-io/mediacms/blob/main/docs/admins_docs.md#2-server-installation), either for single server or for Docker Compose installations -- Upgrade postgres on Docker Compose - https://github.com/mediacms-io/mediacms/pull/749 - -### Fixes -- video player options for HLS - https://github.com/mediacms-io/mediacms/pull/832 -- AVI videos not correctly recognised as videos - https://github.com/mediacms-io/mediacms/pull/833 - -## 2.1.0 - -### Fixes -- Increase uwsgi buffer-size parameter. This prevents an error by uwsgi with large headers - [#5b60](https://github.com/mediacms-io/mediacms/commit/5b601698a41ad97f08c1830e14b1c18f73ab8315) -- Fix issues with comments. These were not reported on the tracker but it is certain that they would not show comments on media files (non videos but also videos). Unfortunately this reverts work done with Timestamps on comments + Mentions on comments, more on PR [#802](https://github.com/mediacms-io/mediacms/pull/802) - -### Features -- Allow tags to contains other characters too, not only English alphabet ones [#801](https://github.com/mediacms-io/mediacms/pull/801) -- Add simple cookie consent code [#799](https://github.com/mediacms-io/mediacms/pull/799) -- Allow password reset & email verify pages on global login required [#790](https://github.com/mediacms-io/mediacms/pull/790) -- Add api_url field to search api [#692](https://github.com/mediacms-io/mediacms/pull/692) \ No newline at end of file diff --git a/install-rhel.sh b/install-rhel.sh deleted file mode 100644 index 635913e4..00000000 --- a/install-rhel.sh +++ /dev/null @@ -1,302 +0,0 @@ -#!/bin/bash -# should be run as root on a rhel8-like system - -function update_permissions -{ - # fix permissions of /srv/mediacms directory - chown -R nginx:root $1 -} - -echo "Welcome to the MediacMS installation!"; - -if [ `id -u` -ne 0 ]; then - echo "Please run as root user" - exit -fi - - -while true; do - read -p " -This script will attempt to perform a system update, install required dependencies, 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 y or n -" yn - case $yn in - [Yy]* ) echo "OK!"; break;; - [Nn]* ) echo "Have a great day"; exit;; - * ) echo "Please answer y or n.";; - esac -done - -# update configuration files - -sed -i 's/\/home\/mediacms\.io\/mediacms\/Bento4-SDK-1-6-0-637\.x86_64-unknown-linux\/bin\/mp4hls/\/srv\/mediacms\/bento4\/bin\/mp4hls/g' cms/settings.py -sed -i 's/www-data/nginx/g;s/\/home\/mediacms\.io\/mediacms\/logs/\/var\/log\/mediacms/g;s/\/home\/mediacms\.io\/mediacms/\/srv\/mediacms/g;s/\/home\/mediacms\.io\/bin/\/srv\/mediacms\/virtualenv\/bin/g' deploy/local_install/celery_*.service -sed -i 's/\/home\/mediacms\.io\/mediacms/\/srv\/mediacms/g' deploy/local_install/mediacms.io -sed -i 's/\/home\/mediacms\.io\/bin/\/srv\/mediacms\/virtualenv\/bin/g;s/\/home\/mediacms\.io\/mediacms/\/srv\/mediacms/g' deploy/local_install/mediacms.service -sed -i 's/\/home\/mediacms\.io\/mediacms/\/var\/log\/mediacms/g' deploy/local_install/mediacms_logrorate -sed -i 's/www-data/nginx/g' deploy/local_install/nginx.conf -sed -i 's/www-data/nginx/g;s/\/home\/mediacms\.io\/mediacms\/logs/\/var\/log\/mediacms/g;s/\/home\/mediacms\.io\/mediacms/\/srv\/mediacms/g;s/\/home\/mediacms\.io/\/srv\/mediacms\/virtualenv/g' deploy/local_install/uwsgi.ini - -osVersion= - -if [[ -f /etc/os-release ]]; then - osVersion=$(grep ^ID /etc/os-release) -fi - -if [[ $osVersion == *"fedora"* ]] || [[ $osVersion == *"rhel"* ]] || [[ $osVersion == *"centos"* ]] || [[ *"rocky"* ]]; then - dnf install -y epel-release https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm yum-utils - yum-config-manager --enable powertools - dnf install -y python3-virtualenv python39-devel redis postgresql postgresql-server nginx git gcc vim unzip ImageMagick python3-certbot-nginx certbot wget xz ffmpeg policycoreutils-devel cmake gcc gcc-c++ wget git bsdtar -else - echo "unsupported or unknown os" - exit -1 -fi - -# fix permissions of /srv/mediacms directory -update_permissions /srv/mediacms/ - -read -p "Enter portal URL, or press enter for localhost : " FRONTEND_HOST -read -p "Enter portal name, or press enter for 'MediaCMS : " PORTAL_NAME - -[ -z "$PORTAL_NAME" ] && PORTAL_NAME='MediaCMS' -[ -z "$FRONTEND_HOST" ] && FRONTEND_HOST='localhost' - -echo "Configuring postgres" -if [ ! command -v postgresql-setup > /dev/null 2>&1 ]; then - echo "Something went wrong, the command 'postgresql-setup' was not found in the system path." - exit -1 -fi - -postgresql-setup --initdb - -# set authentication method for mediacms user to scram-sha-256 -sed -i 's/.*password_encryption.*/password_encryption = scram-sha-256/' /var/lib/pgsql/data/postgresql.conf -sed -i '/# IPv4 local connections:/a host\tmediacms\tmediacms\t127.0.0.1/32\tscram-sha-256' /var/lib/pgsql/data/pg_hba.conf - -systemctl enable postgresql.service --now - -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 - -echo 'Creating python virtualenv on /srv/mediacms/virtualenv/' - -mkdir /srv/mediacms/virtualenv/ -cd /srv/mediacms/virtualenv/ -virtualenv . --python=python3 -source /srv/mediacms/virtualenv/bin/activate -cd /srv/mediacms/ -pip install -r requirements.txt - -systemctl enable redis.service --now - -SECRET_KEY=`python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'` - -# remove http or https prefix -FRONTEND_HOST=`echo "$FRONTEND_HOST" | sed -r 's/http:\/\///g'` -FRONTEND_HOST=`echo "$FRONTEND_HOST" | sed -r 's/https:\/\///g'` - -FRONTEND_HOST_HTTP_PREFIX='http://'$FRONTEND_HOST - -echo 'FRONTEND_HOST='\'"$FRONTEND_HOST_HTTP_PREFIX"\' >> cms/local_settings.py -echo 'PORTAL_NAME='\'"$PORTAL_NAME"\' >> cms/local_settings.py -echo "SSL_FRONTEND_HOST = FRONTEND_HOST.replace('http', 'https')" >> cms/local_settings.py - -echo 'SECRET_KEY='\'"$SECRET_KEY"\' >> cms/local_settings.py -echo "LOCAL_INSTALL = True" >> cms/local_settings.py - -mkdir /var/log/mediacms/ -mkdir pids - -update_permissions /var/log/mediacms/ - -python manage.py migrate -python manage.py loaddata fixtures/encoding_profiles.json -python manage.py loaddata fixtures/categories.json -python manage.py collectstatic --noinput - -ADMIN_PASS=`python -c "import secrets;chars = 'abcdefghijklmnopqrstuvwxyz0123456789';print(''.join(secrets.choice(chars) for i in range(10)))"` -echo "from users.models import User; User.objects.create_superuser('admin', 'admin@example.com', '$ADMIN_PASS')" | python manage.py shell - -echo "from django.contrib.sites.models import Site; Site.objects.update(name='$FRONTEND_HOST', domain='$FRONTEND_HOST')" | python manage.py shell - -update_permissions /srv/mediacms/ - -cp deploy/local_install/celery_long.service /etc/systemd/system/celery_long.service -cp deploy/local_install/celery_short.service /etc/systemd/system/celery_short.service -cp deploy/local_install/celery_beat.service /etc/systemd/system/celery_beat.service -cp deploy/local_install/mediacms.service /etc/systemd/system/mediacms.service - -mkdir -p /etc/letsencrypt/live/$FRONTEND_HOST -mkdir -p /etc/nginx/sites-enabled -mkdir -p /etc/nginx/sites-available -mkdir -p /etc/nginx/dhparams/ -rm -rf /etc/nginx/conf.d/default.conf -rm -rf /etc/nginx/sites-enabled/default -cp deploy/local_install/mediacms.io_fullchain.pem /etc/letsencrypt/live/$FRONTEND_HOST/fullchain.pem -cp deploy/local_install/mediacms.io_privkey.pem /etc/letsencrypt/live/$FRONTEND_HOST/privkey.pem -cp deploy/local_install/mediacms.io /etc/nginx/sites-available/mediacms.io -ln -s /etc/nginx/sites-available/mediacms.io /etc/nginx/sites-enabled/mediacms.io -cp deploy/local_install/uwsgi_params /etc/nginx/sites-enabled/uwsgi_params -cp deploy/local_install/nginx.conf /etc/nginx/ - -# attempt to get a valid certificate for specified domain -while true ; do - echo "Would you like to run [c]ertbot, or [s]kip?" - read -p " : " certbotConfig - - case $certbotConfig in - [cC*] ) - if [ "$FRONTEND_HOST" != "localhost" ]; then - systemctl start - echo 'attempt to get a valid certificate for specified url $FRONTEND_HOST' - certbot --nginx -n --agree-tos --register-unsafely-without-email -d $FRONTEND_HOST - certbot --nginx -n --agree-tos --register-unsafely-without-email -d $FRONTEND_HOST - # unfortunately for some reason it needs to be run two times in order to create the entries - # and directory structure!!! - systemctl stop nginx - - # Generate individual DH params - openssl dhparam -out /etc/nginx/dhparams/dhparams.pem 4096 - fi - - break - ;; - [sS*] ) - echo "will not call certbot utility to update ssl certificate for url 'localhost', using default ssl certificate" - cp deploy/local_install/dhparams.pem /etc/nginx/dhparams/dhparams.pem - - break - ;; - * ) - echo "Unknown option: $certbotConfig" - ;; - esac -done - -# configure bento4 utility installation, for HLS -while true ; do - echo "Configuring Bento4" - echo "Would you like to [d]ownload a pre-compiled bento4 binary, or [b]uild it now?" - read -p "b/d : " bentoConfig - - case $bentoConfig in - [bB*] ) - echo "Building bento4 from source" - git clone -b v1.6.0-640 https://github.com/axiomatic-systems/Bento4 /srv/mediacms/bento4 - cd /srv/mediacms/bento4/ - mkdir bin - cd /srv/mediacms/bento4/bin/ - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j$(nproc) - - chmod +x ../Source/Python/utils/mp4-hls.py - - echo -e '#!/bin/bash' >> mp4hls - echo -e 'BASEDIR=$(pwd)' >> mp4hls - echo -e 'exec python3 "$BASEDIR/../Source/Python/utils/mp4-hls.py"' >> mp4hls - - chmod +x mp4hls - - break - ;; - [dD*] ) - cd /srv/mediacms/ - wget http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip - bsdtar -xf Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip -s '/Bento4-SDK-1-6-0-637.x86_64-unknown-linux/bento4/' - - break - ;; - * ) - echo "Unknown option: $bentoConfig" - ;; - esac -done - -mkdir /srv/mediacms/media_files/hls - -# update permissions - -update_permissions /srv/mediacms/ - -# configure selinux - -while true ; do - echo "Configuring SELinux" - echo "Would you like to [d]isable SELinux until next reboot, [c]onfigure our SELinux module, or [s]kip and not do any SELinux confgiguration?" - read -p "d/c/s : " seConfig - - case $seConfig in - [Dd]* ) - echo "Disabling SELinux until next reboot" - break - ;; - [Cc]* ) - echo "Configuring custom mediacms selinux module" - - semanage fcontext -a -t bin_t /srv/mediacms/virtualenv/bin/ - semanage fcontext -a -t httpd_sys_content_t "/srv/mediacms(/.*)?" - restorecon -FRv /srv/mediacms/ - - sebools=(httpd_can_network_connect httpd_graceful_shutdown httpd_can_network_relay nis_enabled httpd_setrlimit domain_can_mmap_files) - - for bool in "${sebools[@]}" - do - setsebool -P $bool 1 - done - - cd /srv/mediacms/deploy/local_install/ - make -f /usr/share/selinux/devel/Makefile selinux-mediacms.pp - semodule -i selinux-mediacms.pp - - break - ;; - [Ss]* ) - echo "Skipping SELinux configuration" - break - ;; - * ) - echo "Unknown option: $seConfig" - ;; - esac -done - -# configure firewall -if command -v firewall-cmd > /dev/null 2>&1 ; then - while true ; do - echo "Configuring firewall" - echo "Would you like to configure http, https, or skip and not do any firewall configuration?" - read -p "http/https/skip : " fwConfig - - case $fwConfig in - http ) - echo "Opening port 80 until next reboot" - firewall-cmd --add-port=80/tcp - break - ;; - https ) - echo "Opening port 443 permanently" - firewall-cmd --add-port=443/tcp --permanent - firewall-cmd --reload - break - ;; - skip ) - echo "Skipping firewall configuration" - break - ;; - * ) - echo "Unknown option: $fwConfig" - ;; - esac - done - -fi - -systemctl daemon-reload -systemctl start celery_long.service -systemctl start celery_short.service -systemctl start celery_beat.service -systemctl start mediacms.service -systemctl start nginx.service - -echo 'MediaCMS installation completed, open browser on http://'"$FRONTEND_HOST"' and login with user admin and password '"$ADMIN_PASS"'' diff --git a/install.sh b/install.sh deleted file mode 100644 index 65b50538..00000000 --- a/install.sh +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/bash -# should be run as root and only on Ubuntu 20/22, Debian 10/11 (Buster/Bullseye) versions! -echo "Welcome to the MediacMS installation!"; - -if [ `id -u` -ne 0 ] - then echo "Please run as root" - exit -fi - - -while true; do - read -p " -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;; - [Nn]* ) echo "Have a great day"; exit;; - * ) echo "Please answer yes or no.";; - esac -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 - -# install ffmpeg -echo "Downloading and installing ffmpeg" -wget -q https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz -mkdir -p tmp -tar -xf ffmpeg-release-amd64-static.tar.xz --strip-components 1 -C tmp -cp -v tmp/{ffmpeg,ffprobe,qt-faststart} /usr/local/bin -rm -rf tmp ffmpeg-release-amd64-static.tar.xz -echo "ffmpeg installed to /usr/local/bin" - -read -p "Enter portal URL, or press enter for localhost : " FRONTEND_HOST -read -p "Enter portal name, or press enter for 'MediaCMS : " PORTAL_NAME - -[ -z "$PORTAL_NAME" ] && PORTAL_NAME='MediaCMS' -[ -z "$FRONTEND_HOST" ] && FRONTEND_HOST='localhost' - -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' - -cd /home/mediacms.io -virtualenv . --python=python3 -source /home/mediacms.io/bin/activate -cd mediacms -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())'` - -# remove http or https prefix -FRONTEND_HOST=`echo "$FRONTEND_HOST" | sed -r 's/http:\/\///g'` -FRONTEND_HOST=`echo "$FRONTEND_HOST" | sed -r 's/https:\/\///g'` - -sed -i s/localhost/$FRONTEND_HOST/g deploy/local_install/mediacms.io - -FRONTEND_HOST_HTTP_PREFIX='http://'$FRONTEND_HOST - -echo 'FRONTEND_HOST='\'"$FRONTEND_HOST_HTTP_PREFIX"\' >> cms/local_settings.py -echo 'PORTAL_NAME='\'"$PORTAL_NAME"\' >> cms/local_settings.py -echo "SSL_FRONTEND_HOST = FRONTEND_HOST.replace('http', 'https')" >> cms/local_settings.py - -echo 'SECRET_KEY='\'"$SECRET_KEY"\' >> cms/local_settings.py -echo "LOCAL_INSTALL = True" >> cms/local_settings.py - -mkdir logs -mkdir pids -python manage.py migrate -python manage.py loaddata fixtures/encoding_profiles.json -python manage.py loaddata fixtures/categories.json -python manage.py collectstatic --noinput - -ADMIN_PASS=`python -c "import secrets;chars = 'abcdefghijklmnopqrstuvwxyz0123456789';print(''.join(secrets.choice(chars) for i in range(10)))"` -echo "from users.models import User; User.objects.create_superuser('admin', 'admin@example.com', '$ADMIN_PASS')" | python manage.py shell - -echo "from django.contrib.sites.models import Site; Site.objects.update(name='$FRONTEND_HOST', domain='$FRONTEND_HOST')" | python manage.py shell - -chown -R www-data. /home/mediacms.io/ -cp deploy/local_install/celery_long.service /etc/systemd/system/celery_long.service && systemctl enable celery_long && systemctl start celery_long -cp deploy/local_install/celery_short.service /etc/systemd/system/celery_short.service && systemctl enable celery_short && systemctl start celery_short -cp deploy/local_install/celery_beat.service /etc/systemd/system/celery_beat.service && systemctl enable celery_beat &&systemctl start celery_beat -cp deploy/local_install/mediacms.service /etc/systemd/system/mediacms.service && systemctl enable mediacms.service && systemctl start mediacms.service - -mkdir -p /etc/letsencrypt/live/mediacms.io/ -mkdir -p /etc/letsencrypt/live/$FRONTEND_HOST -mkdir -p /etc/nginx/sites-enabled -mkdir -p /etc/nginx/sites-available -mkdir -p /etc/nginx/dhparams/ -rm -rf /etc/nginx/conf.d/default.conf -rm -rf /etc/nginx/sites-enabled/default -cp deploy/local_install/mediacms.io_fullchain.pem /etc/letsencrypt/live/$FRONTEND_HOST/fullchain.pem -cp deploy/local_install/mediacms.io_privkey.pem /etc/letsencrypt/live/$FRONTEND_HOST/privkey.pem -cp deploy/local_install/dhparams.pem /etc/nginx/dhparams/dhparams.pem -cp deploy/local_install/mediacms.io /etc/nginx/sites-available/mediacms.io -ln -s /etc/nginx/sites-available/mediacms.io /etc/nginx/sites-enabled/mediacms.io -cp deploy/local_install/uwsgi_params /etc/nginx/sites-enabled/uwsgi_params -cp deploy/local_install/nginx.conf /etc/nginx/ -systemctl stop nginx -systemctl start nginx - -# attempt to get a valid certificate for specified domain - -if [ "$FRONTEND_HOST" != "localhost" ]; then - echo 'attempt to get a valid certificate for specified url $FRONTEND_HOST' - certbot --nginx -n --agree-tos --register-unsafely-without-email -d $FRONTEND_HOST - certbot --nginx -n --agree-tos --register-unsafely-without-email -d $FRONTEND_HOST - # unfortunately for some reason it needs to be run two times in order to create the entries - # and directory structure!!! - systemctl restart nginx -else - echo "will not call certbot utility to update ssl certificate for url 'localhost', using default ssl certificate" -fi - -# Generate individual DH params -if [ "$FRONTEND_HOST" != "localhost" ]; then - # Only generate new DH params when using "real" certificates. - openssl dhparam -out /etc/nginx/dhparams/dhparams.pem 4096 - systemctl restart nginx -else - echo "will not generate new DH params for url 'localhost', using default DH params" -fi - -# Bento4 utility installation, for HLS - -cd /home/mediacms.io/mediacms -wget http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip -unzip Bento4-SDK-1-6-0-637.x86_64-unknown-linux.zip -mkdir /home/mediacms.io/mediacms/media_files/hls - -# last, set default owner -chown -R www-data. /home/mediacms.io/ - -echo 'MediaCMS installation completed, open browser on http://'"$FRONTEND_HOST"' and login with user admin and password '"$ADMIN_PASS"''