====== Information ====== * Piwigo ((https://piwigo.org/)) * Bootstrap Darkroom Theme ((https://github.com/Piwigo/piwigo-bootstrap-darkroom)) * [[Information:Realm of Espionage]] * https://media.realmofespionage.xyz ===== Prerequisites ===== * [[bsd:server:freebsd_14.2|FreeBSD 14.2]] * [[servers:bsd:mariadb|MariaDB]] * [[servers:bsd:nginx_php_php-fpm|nginx + PHP + PHP-FPM]] * [[servers:bsd:nginx:lets_encrypt|Let's Encrypt]] ====== Dependencies ====== * https://piwigo.org/guides/install/requirements * https://github.com/Piwigo/piwigo-videojs/wiki/How-to-add-videos * https://github.com/Piwigo/piwigo-videojs/wiki/Synchronize#requirement su - pkg install git-lite php84-exif php84-gd php84-mysqli php84-mbstring ====== Download Source ====== * https://github.com/Piwigo/Piwigo/commits/master/ * https://github.com/Piwigo/piwigo-bootstrap-darkroom/commits/master/ su - git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/Piwigo.git' '/usr/local/www/media' && chown -R 'www':'www' '/usr/local/www/media' && sync git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/piwigo-bootstrap-darkroom.git' '/usr/local/www/media/themes/bootstrap_darkroom' && chown -R 'www':'www' '/usr/local/www/media' && sync ====== Database ====== mariadb -u 'root' -p CREATE DATABASE piwigo; CREATE USER piwigo@localhost IDENTIFIED BY 'x'; GRANT ALL PRIVILEGES ON piwigo.* to piwigo@localhost; FLUSH PRIVILEGES; EXIT ====== nginx + PHP-FPM Configuration ====== ===== PHP-FPM Socket ===== su - ee '/usr/local/etc/php-fpm.d/media.conf' && service 'php_fpm' restart [media] ; User/Group user = www group = www ; Socket listen = 127.0.0.1:9003 listen.allowed_clients = 127.0.0.1 ; Process Management pm = ondemand pm.max_children = 4 pm.process_idle_timeout = 30 ; General php_value[date.timezone] = "America/New_York" php_value[max_execution_time] = "200" php_value[memory_limit] = "512M" php_value[post_max_size] = "100M" php_value[upload_max_filesize] = "20M" php_value[max_file_uploads] = "100" ; End ===== FastCGI ===== su - ee '/usr/local/etc/nginx/default.d/media.conf' # PHP-FPM location ~ \.(php|phar)(/.*)?$ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_pass 127.0.0.1:9003; } # End ===== Server Block ===== su - ee '/usr/local/etc/nginx/vhosts.d/media.conf' && service 'nginx' reload && sync server { listen '443' 'ssl'; # http2 'on'; server_name 'media.realmofespionage.xyz'; root '/usr/local/www/media'; index 'index.php'; include '/usr/local/etc/nginx/default.d/media.conf'; include '/usr/local/etc/nginx/default.d/headers.conf'; # add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always; # add_header Content-Security-Policy "default-src 'self' https://piwigo.org/ext/upload/; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always; # access_log /var/log/nginx/media-access.log; # error_log /var/log/nginx/media-error.log; location / { index index.php; try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/picture((/|$).*)$ /picture.php$1 last; rewrite ^/index((/|$).*)$ /index.php$1 last; rewrite ^/i((/|$).*)$ /i.php$1 last; } } # End ====== Initial Setup ====== * https://media.realmofespionage.xyz ====== Settings ====== * :!: Using a long password with symbols passed setup fine, but failed to log-in later; use less-complex password * :!: Use a relay or bogus email address during account creation to protect against potential spam ((the webmaster URL in the footer shows the email in plaintext and looks tasty to bots)) * :!: Disable ''Allow user registration'' **immediately** under Configuration -> Options -> General -> Permissions * Seemingly have to enable ''Activate comments'' in order to prevent broken CSS on the bottom of image pages, but can uncheck ''Comments for all'' so that nobody public can leave comments * Activate Boostrap Darkroom theme ===== Page Banner ===== ****

Tech, hardware, food, nature, and gaming pictures and videos!

===== config.inc.php ===== * [[https://piwigo.org/forum/viewtopic.php?pid=159584#p159584|nginx Rewrite source]] * [[https://piwigo.org/forum/viewtopic.php?pid=179504#p179504|Video Uploading source]] * [[https://github.com/Piwigo/Piwigo/blob/master/include/config_default.inc.php|More Settings]] su - ee '/usr/local/www/media/local/config/config.inc.php' && chown 'www':'www' '/usr/local/www/media/local/config/config.inc.php' 'Realm of Espionage', 'https://wiki.realmofespionage.xyz' => 'RoE | Wiki', 'https://blog.realmofespionage.xyz' => 'RoE | Blog', 'https://wiki.realmofespionage.xyz/user:espionage724' => 'Webmaster Info', 'https://wiki.realmofespionage.xyz/servers:bsd:nginx:piwigo' => 'Instance Configuration Notes', ); // Video Uploading $conf['upload_form_all_types'] = true; $conf['file_ext'] = array_merge( $conf['picture_ext'], array('tiff', 'tif', 'mpg','zip','avi','mp3','ogg','pdf','webm','mp4') ); // End ?> ====== Temp Commands ====== ===== Update ===== * https://github.com/Piwigo/Piwigo/commits/master/ * https://github.com/Piwigo/piwigo-bootstrap-darkroom/commits/master/ su - su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' pull origin 'master'" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' pull origin 'master'" ===== Maintenance ===== ==== Media ==== su - su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' reset --hard" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' pull origin 'master' --rebase" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' gc --aggressive --prune='all'" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' fsck --full --strict" mariadb-check -u 'root' -p -o -f -e --auto-repair 'piwigo' ==== Theme ==== su - su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' reset --hard" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' pull origin 'master' --rebase" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' gc --aggressive --prune='all'" su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' fsck --full --strict" ====== Backup ====== ===== Folder ===== su - cd '/usr/local/www' && tar -cvzf '/home/espionage724/piwigo-files-manual-'$(date +%Y-%m-%d)'.tar.gz' 'media' ===== Database ===== **** mariadb-dump -u root -p --single-transaction 'piwigo' -r '/home/espionage724/piwigo-database-manual-'$(date +%Y-%m-%d)'.sql' ===== scp ===== **** scp espionage724@192.168.1.152:~/'piwigo-files-'*'.tar.gz' espionage724@192.168.1.152:~/'piwigo-database-'*'.sql' ~/'Downloads' && sync ====== Restore ====== ===== scp ===== **** scp ~/'Downloads/piwigo-files-'*'.tar.gz' ~/'Downloads/piwigo-database-'*'.sql' espionage724@192.168.1.152:~ ===== Folder ===== su - rm -Rf '/usr/local/www/media' cd '/usr/local/www' && tar -xvzf '/home/espionage724/piwigo-files-'*'.tar.gz' 'media' && chown -R 'www':'www' '/usr/local/www/media' && cd ~ && sync ===== Database ===== * [[#database|Initial set-up]] mariadb -u 'root' -p --execute='CREATE DATABASE piwigo;' mariadb -u 'root' -p 'piwigo' < '/home/espionage724/piwigo-database-manual-'*'.sql'