servers:nginx:gnu_mediagoblin
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
servers:nginx:gnu_mediagoblin [2018/07/23 13:26] – [Dependencies] Sean Rhone | servers:nginx:gnu_mediagoblin [2018/09/18 13:31] (current) – [Download Source] Sean Rhone | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Information ====== | ||
+ | * GNU MediaGoblin ((http:// | ||
+ | * [[Information: | ||
+ | * https:// | ||
+ | |||
+ | ===== Prerequisites ===== | ||
+ | |||
+ | * [[distros: | ||
+ | * [[servers: | ||
+ | * [[servers: | ||
+ | |||
+ | ===== Notes ===== | ||
+ | |||
+ | * AudioLab isn't compatible with Python 3: https:// | ||
+ | * As of 2018/06/03, these notes support a picture-only instance ((no video, no audio)) | ||
+ | |||
+ | ====== Create Group and User ====== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo groupadd --force ' | ||
+ | |||
+ | ====== Dependencies ====== | ||
+ | |||
+ | **** | ||
+ | |||
+ | * opensuse | ||
+ | |||
+ | npm nodejs6 automake python2-numpy python2-scipy python2-SQLAlchemy | ||
+ | |||
+ | * deb MG site | ||
+ | |||
+ | sudo apt-get install nodejs-legacy | ||
+ | |||
+ | * Old notes | ||
+ | |||
+ | sudo apt install gstreamer1.0-libav gstreamer1.0-plugins-good python-gst-1.0 gir1.2-gst-plugins-base-1.0 python-gi gstreamer1.0-tools python-numpy python-scipy libsndfile1-dev libasound2-dev python-sqlalchemy | ||
+ | |||
+ | * TODO and eventually to be used | ||
+ | |||
+ | sudo apt install python3 python3-dev python3-lxml python3-pil python3-virtualenv npm nodejs automake rabbitmq-server uwsgi uwsgi-plugin-python3 | ||
+ | |||
+ | ====== Download Source ====== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo git clone --branch ' | ||
+ | |||
+ | ====== nginx + uWSGI Configuration ====== | ||
+ | |||
+ | ===== uWSGI Vassal ===== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [uwsgi] | ||
+ | master = true | ||
+ | |||
+ | enable-threads = true | ||
+ | |||
+ | plugin = python | ||
+ | |||
+ | uid = mediagoblin | ||
+ | gid = mediagoblin | ||
+ | |||
+ | socket = / | ||
+ | chown-socket = nginx:nginx | ||
+ | |||
+ | chdir = / | ||
+ | home = / | ||
+ | ini-paste = / | ||
+ | virtualenv = / | ||
+ | |||
+ | ===== uWSGI + nginx ===== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | location / { | ||
+ | include uwsgi_params; | ||
+ | uwsgi_param SCRIPT_NAME ""; | ||
+ | uwsgi_pass unix:/ | ||
+ | }</ | ||
+ | |||
+ | ===== Server Block ====== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | server { | ||
+ | listen ' | ||
+ | server_name ' | ||
+ | client_max_body_size 10240M; | ||
+ | |||
+ | include '/ | ||
+ | include '/ | ||
+ | |||
+ | #access_log / | ||
+ | #error_log / | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | ====== Install ====== | ||
+ | |||
+ | ===== Switch User ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo su ' | ||
+ | |||
+ | ===== Initialize Environment ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ==== Create Media Directory ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | mkdir -p '/ | ||
+ | |||
+ | ====== Settings ====== | ||
+ | |||
+ | ===== Change User ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo su ' | ||
+ | |||
+ | ===== Copy Configs ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cp -av '/ | ||
+ | |||
+ | ===== GNU MediaGoblin ===== | ||
+ | |||
+ | nano '/ | ||
+ | |||
+ | < | ||
+ | [mediagoblin] | ||
+ | html_title = RoE | Media | ||
+ | allow_comments = false | ||
+ | |||
+ | allow_registration = false | ||
+ | allow_reporting = false</ | ||
+ | |||
+ | ===== Initialize Plugins and Database ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ===== Create Account ===== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ====== RabbitMQ ====== | ||
+ | |||
+ | ===== Config ===== | ||
+ | |||
+ | * Fixes an error (('' | ||
+ | * Before running this, test if it "just works" by running '' | ||
+ | |||
+ | echo ' | ||
+ | |||
+ | ====== Services ====== | ||
+ | |||
+ | ===== Celery ===== | ||
+ | |||
+ | ==== Service ==== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=GNU MediaGoblin Celery Task Queue Service | ||
+ | After=network-online.target | ||
+ | Wants=network-online.target | ||
+ | |||
+ | [Service] | ||
+ | User=mediagoblin | ||
+ | Group=mediagoblin | ||
+ | Type=simple | ||
+ | Environment=MEDIAGOBLIN_CONFIG=/ | ||
+ | Environment=CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart='/ | ||
+ | Restart=always | ||
+ | RestartSec=5 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target</ | ||
+ | |||
+ | ===== Updater ===== | ||
+ | |||
+ | ==== Service ==== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Service] | ||
+ | User=mediagoblin | ||
+ | Group=mediagoblin | ||
+ | Type=oneshot | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart='/ | ||
+ | ExecStart='/ | ||
+ | ExecStart='/ | ||
+ | ExecStart='/ | ||
+ | ExecStartPost='/ | ||
+ | |||
+ | ==== Timer ==== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=GNU MediaGoblin and Submodules Git Updater | ||
+ | After=network-online.target | ||
+ | Wants=network-online.target | ||
+ | |||
+ | [Timer] | ||
+ | OnCalendar=*-*-* 05:00:00 | ||
+ | Persistent=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target</ | ||
+ | |||
+ | ===== Restarter ===== | ||
+ | |||
+ | ==== Service ==== | ||
+ | |||
+ | * This script restarts both '' | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | ExecStartPre='/ | ||
+ | ExecStart='/ | ||
+ | ExecStart='/ | ||
+ | ExecStart='/ | ||
+ | ExecStartPost='/ | ||
+ | ExecStartPost='/ | ||
+ | ExecStartPost='/ | ||
+ | ExecStartPost='/ | ||
+ | |||
+ | ==== Timer ==== | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=GNU MediaGoblin, | ||
+ | After=network-online.target | ||
+ | Wants=network-online.target | ||
+ | |||
+ | [Timer] | ||
+ | OnCalendar=*-*-* 05:30:00 | ||
+ | Persistent=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target</ | ||
+ | |||
+ | ===== Backup ===== | ||
+ | |||
+ | ==== User Directory ==== | ||
+ | |||
+ | === Service === | ||
+ | |||
+ | mkdir -p ~/' | ||
+ | |||
+ | < | ||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart='/ | ||
+ | ExecStartPost='/ | ||
+ | |||
+ | === Timer === | ||
+ | |||
+ | * This happens monthly | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=GNU MediaGoblin User Files Backup | ||
+ | |||
+ | [Timer] | ||
+ | OnCalendar=monthly | ||
+ | Persistent=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target</ | ||
+ | |||
+ | ==== Web Folder ==== | ||
+ | |||
+ | === Service === | ||
+ | |||
+ | mkdir -p ~/' | ||
+ | |||
+ | < | ||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | WorkingDirectory=/ | ||
+ | ExecStart='/ | ||
+ | ExecStartPost='/ | ||
+ | |||
+ | === Timer === | ||
+ | |||
+ | * This happens monthly since the files folder is large | ||
+ | |||
+ | sudo -e '/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=GNU MediaGoblin Web Files Backup | ||
+ | |||
+ | [Timer] | ||
+ | OnCalendar=monthly | ||
+ | Persistent=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target</ | ||
+ | |||
+ | ====== Backup ====== | ||
+ | |||
+ | * Create backup archive on server and transfer to client computer | ||
+ | |||
+ | ===== Server ===== | ||
+ | |||
+ | ==== Stop Services ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo systemctl stop nginx uwsgi media-c | ||
+ | |||
+ | ==== Backup User Folder ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ==== Backup Web Folder ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ==== Start Services ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo systemctl start nginx uwsgi media-c | ||
+ | |||
+ | ===== Client ===== | ||
+ | |||
+ | ==== Transfer Files To Client ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | scp espionage724@192.168.1.153: | ||
+ | |||
+ | ====== Restore ====== | ||
+ | |||
+ | ===== Client ===== | ||
+ | |||
+ | ==== Transfer Files To Server ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | scp ~/' | ||
+ | |||
+ | ==== Remove Files ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | rm -f ~/' | ||
+ | |||
+ | ===== Server ===== | ||
+ | |||
+ | ==== Stop Services ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo systemctl stop nginx uwsgi media-c | ||
+ | |||
+ | ==== Remove Previous Folders ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo rm -Rf '/ | ||
+ | |||
+ | ==== Restore GNU MediaGoblin User Folder ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ==== Restore GNU MediaGoblin Web Folder ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | cd '/ | ||
+ | |||
+ | ==== Start Services ==== | ||
+ | |||
+ | **** | ||
+ | |||
+ | sudo systemctl start nginx uwsgi media-c | ||
+ | |||
+ | ==== Remove Backups ==== | ||
+ | |||
+ | * Verify that GNU MediaGoblin works before running | ||
+ | |||
+ | rm ~/' |
/var/www/wiki/data/pages/servers/nginx/gnu_mediagoblin.txt · Last modified: 2018/09/18 13:31 by Sean Rhone