User Tools

Site Tools


servers:linux:nginx:friendica

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
servers:linux:nginx:friendica [2025/09/11 18:04] – [Timer] TODO: FIgure out how often daemon running affects anything realistically Sean Rhoneservers:linux:nginx:friendica [2025/09/11 18:19] (current) Sean Rhone
Line 303: Line 303:
  
 # End</code> # End</code>
- 
-===== Maintenance ===== 
- 
-==== Service ==== 
- 
-  sudo -e '/etc/systemd/system/social-m.service' 
- 
-<code> 
-[Service] 
-User=nginx 
-Group=nginx 
-Type=oneshot 
-ExecStart='/usr/bin/git' -C '/var/www/social' gc --aggressive --prune='all' 
-ExecStart='/usr/bin/git' -C '/var/www/social' fsck --full --strict 
-ExecStart='/usr/bin/git' -C '/var/www/social/addon' gc --aggressive --prune='all' 
-ExecStart='/usr/bin/git' -C '/var/www/social/addon' fsck --full --strict 
-ExecStartPost='/usr/bin/sync'</code> 
- 
-==== Timer ==== 
- 
-  * ''01'' day of every month at ''03:20:00'' 
- 
-  sudo -e '/etc/systemd/system/social-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'social-m.timer' --now && sudo systemctl start 'social-m' && sudo systemctl status 'social-up' -l 
- 
-<code> 
-[Unit] 
-Description=friendica Maintenance 
-After=network-online.target 
-Wants=network-online.target 
- 
-[Timer] 
-OnCalendar=*-*-01 03:20:00 
-Persistent=true 
- 
-[Install] 
-WantedBy=timers.target</code> 
  
 ===== Backup ===== ===== Backup =====
Line 351: Line 315:
 [Service] [Service]
 Type=oneshot Type=oneshot
-WorkingDirectory=/var/www + 
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/friendica-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" "social"' +ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/friendica-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/srv/www" "social"' 
-ExecStartPost='/usr/bin/sync'</code>+ 
 +ExecStartPost='/usr/bin/sync' 
 + 
 +# End</code>
  
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''03:35:00''+  * ''01'' day of every month at ''04:15:00''
  
-  sudo -e '/etc/systemd/system/social-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'social-fb.timer' --now && sudo systemctl start 'social-fb' && sudo systemctl status 'social-fb' -l+  sudo -e '/etc/systemd/system/social-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'social-fb.timer' --now
  
 <code> <code>
 [Unit] [Unit]
-Description=friendica Files Backup+Description=Friendica Files Backup
  
 [Timer] [Timer]
-OnCalendar=*-*-01 03:35:00+OnCalendar=*-*-01 04:15:00
 Persistent=true Persistent=true
  
 [Install] [Install]
-WantedBy=timers.target</code>+WantedBy=timers.target 
 + 
 +# End</code> 
 + 
 +  sudo systemctl start 'social-fb' && sudo systemctl status 'social-fb' -l
  
 ==== Database ==== ==== Database ====
Line 376: Line 347:
 === Database Auth === === Database Auth ===
  
-  sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/friendica' && sudo chown -R 'mysql':'mysql' '/var/lib/mysql/auth/friendica' && sudo chmod '600' '/var/lib/mysql/auth/friendica' && sync+  sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/friendica' && sudo chown 'mysql':'mysql' '/var/lib/mysql/auth/friendica' && sudo chmod '0600' '/var/lib/mysql/auth/friendica'
  
 <code> <code>
 [mariadb-dump] [mariadb-dump]
 user=friendica user=friendica
-password=x</code>+password=x 
 + 
 +# End</code>
  
 === Service === === Service ===
Line 389: Line 362:
 <code> <code>
 [Service] [Service]
 +Group=mysql
 Type=oneshot Type=oneshot
-WorkingDirectory=/var/lib/mysql/tmp + 
-ExecStartPre='/usr/bin/mariadb-dump--defaults-extra-file='/var/lib/mysql/auth/friendica--single-transaction 'friendica' -r '/var/lib/mysql/tmp/friendica.sql' +ExecStart='/usr/bin/bash' -c '"/usr/bin/mariadb-dump--defaults-extra-file="/var/lib/mysql/auth/friendica--single-transaction --quick "friendica" -r "/home/CHANGEME/backups/friendica-database-auto-"$$(date +%%Y-%%m-%%d)".sql"' 
-ExecStart='/usr/bin/gzip' -f '/var/lib/mysql/tmp/friendica.sql' + 
-ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysql/tmp/friendica.sql.gz" "/home/CHANGEME/backups/friendica-database-auto-"$$(date +%%Y-%%m-%%d)".sql.gz"' +ExecStartPost='/usr/bin/sync' 
-ExecStartPost='/usr/bin/sync'</code>+ 
 +# End</code>
  
 === Timer === === Timer ===
  
-  * Every day at ''03:45:00''+  * ''01'' day of every month at ''01:10:00''
  
   sudo -e '/etc/systemd/system/social-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'social-db.timer' --now && sudo systemctl start 'social-db' && sudo systemctl status 'social-db' -l   sudo -e '/etc/systemd/system/social-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'social-db.timer' --now && sudo systemctl start 'social-db' && sudo systemctl status 'social-db' -l
Line 404: Line 379:
 <code> <code>
 [Unit] [Unit]
-Description=friendica Database Backup+Description=Friendica Database Backup
 After=mariadb.service After=mariadb.service
  
 [Timer] [Timer]
-OnCalendar=*-*-* 03:45:00+OnCalendar=*-*-01 04:10:00
 Persistent=true Persistent=true
  
 [Install] [Install]
-WantedBy=timers.target</code>+WantedBy=timers.target
  
-====== Backup ======+# End</code>
  
-  * Create backup archive on server and transfer to client computer+===== Maintenance =====
  
-===== Server =====+==== Service ====
  
-==== Stop Services ====+  sudo -e '/etc/systemd/system/social-m.service'
  
-****+<code> 
 +[Service] 
 +User=wwwrun 
 +Group=www 
 +Type=oneshot
  
-  sudo systemctl stop nginx php-fpm+ExecStart='/usr/bin/git' -C '/srv/www/social' gc --aggressive --prune='all' 
 +ExecStart='/usr/bin/git' -C '/srv/www/social' fsck --full --strict
  
-==== Backup Folder ====+ExecStart='/usr/bin/git' -C '/srv/www/social/addon' gc --aggressive --prune='all' 
 +ExecStart='/usr/bin/git' -C '/srv/www/social/addon' fsck --full --strict
  
-****+ExecStartPost='/usr/bin/sync'
  
-  cd '/var/www' && sudo tar -cvzf ~/'friendica-files-manual-'$(date +%Y-%m-%d)'.tar.gz' 'social' && cd ~ && sync+# End</code>
  
-==== Backup Database ====+==== Timer ====
  
-****+  ''01'' day of every month at ''04:30:00''
  
-  sudo mariadb-dump --defaults-extra-file='/var/lib/mysql/auth/friendica' --single-transaction 'friendica' -r ~/'friendica-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo -'/etc/systemd/system/social-m.timer&& sudo systemctl daemon-reload && sudo systemctl enable 'social-m.timer' --now
  
-==== Start Services ====+<code> 
 +[Unit] 
 +Description=Friendica Maintenance 
 +After=network-online.target 
 +Wants=network-online.target
  
-****+[Timer] 
 +OnCalendar=*-*-01 04:30:00 
 +Persistent=true
  
-  sudo systemctl start nginx php-fpm+[Install] 
 +WantedBy=timers.target
  
-===== Client =====+# End</code>
  
-==== Transfer Files To Client ====+  sudo systemctl start 'social-m' && sudo systemctl status 'social-m' -l
  
-****+====== Backup ======
  
-  scp espionage724@192.168.1.152:~/'friendica-files-'*'.tar.gz' espionage724@192.168.1.152:~/'friendica-database-'*'.sql' ~/'Downloads' && sync+===== Files =====
  
-====== Restore ======+****
  
-===== Client =====+  sudo tar -czf ~/'friendica-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/srv/www' 'social'
  
-==== Uncompress Database ====+====Database =====
  
-  This is only needed if restoring an **automated** database backup ((manual doesn't gzip))+****
  
-  gunzip ~/'Downloads/friendica-database-'*'.sql.gz'+  sudo mariadb-dump --single-transaction --quick 'friendica' -r ~/'friendica-database-manual-'$(date +%Y-%m-%d)'.sql'
  
-==== Transfer Files To Server ====+===== scp =====
  
-****+  scp espionage724@192.168.1.152:~/'friendica-files-'*'.tar.gz' ~/'Downloads'
  
-  scp ~/'Downloads/friendica-files-'*'.tar.gz' ~/'Downloads/friendica-database-'*'.sql' espionage724@192.168.1.152:~+  scp espionage724@192.168.1.152:~/'friendica-database-'*'.sql' ~/'Downloads'
  
-==== Remove Files ====+====== Restore ======
  
-****+===== scp =====
  
-  rm -f ~/'Downloads/friendica-files-'*'.tar.gz' ~/'Downloads/friendica-database-'*'.sql' && sync+  scp ~/'Downloads/friendica-files-'*'.tar.gz' espionage724@192.168.1.152:~
  
-===== Server =====+  scp ~/'Downloads/friendica-database-'*'.sql' espionage724@192.168.1.152:~
  
-==== Stop Services ====+===== Stop nginx =====
  
 **** ****
  
-  sudo systemctl stop nginx php-fpm+  sudo systemctl stop 'nginx'
  
-==== Remove Previous Folder ====+===== Remove Existing Files =====
  
 **** ****
  
-  sudo rm -Rf '/var/www/social'+  ls ~/'friendica-files-'*'.tar.gz' && sudo rm -Rf '/srv/www/social'
  
-==== Restore Friendica Folder ====+===== Restore Files =====
  
 **** ****
  
-  cd '/var/www' && sudo tar -xvzf ~/'friendica-files-'*'.tar.gz' 'social' && sudo semanage fcontext --add --type 'httpd_sys_rw_content_t' '/var/www/social(/.*)?' && sudo restorecon -F -I -R '/var/www/social' && sudo chown -R 'nginx':'nginx' '/var/www/social' && cd ~ && sync+  sudo tar -xzf ~/'friendica-files-'*'.tar.gz' -'/srv/www' 'social' && sudo chown -R 'wwwrun':'www' '/srv/www/social' && sudo chmod -R '0755' '/srv/www/social'
  
-==== Drop Previous Database ====+===== Restore Database =====
  
-  sudo mariadb+  * [[#database|Initial set-up]]
  
-  DROP DATABASE friendica;+  sudo mariadb --execute='DROP DATABASE friendica;'
  
-  FLUSH TABLES;+  sudo mariadb --execute='CREATE DATABASE friendica;'
  
-  EXIT+  sudo mariadb 'friendica' < ~/'friendica-database-'*'.sql'
  
-==== Re-create Databases ==== +===== Start nginx =====
- +
-  sudo mariadb +
- +
-  CREATE DATABASE friendica; +
- +
-  EXIT +
- +
-==== Restore Database ====+
  
 **** ****
  
-  sudo mariadb 'friendica< ~/'friendica-database-'*'.sql' && sync+  sudo systemctl start 'nginx'
  
-==== Reapply Permissions ==== +===== Clean-up =====
- +
-  sudo mariadb +
- +
-  GRANT ALL PRIVILEGES ON friendica.* to 'friendica'@'localhost' IDENTIFIED BY 'x'; +
- +
-  FLUSH PRIVILEGES; +
- +
-  EXIT +
- +
-==== Start Services ====+
  
 **** ****
  
-  sudo systemctl start nginx php-fpm +  rm -fv ~/'friendica-files-'*'.tar.gz' ~/'friendica-database-'*'.sql'
- +
-==== Remove Backups ==== +
- +
-  * Verify that Friendica works before running +
- +
-  rm ~/'friendica-files-'*'.tar.gz' ~/'friendica-database-'*'.sql' && sync+
  
/srv/www/wiki/data/pages/servers/linux/nginx/friendica.txt · Last modified: by Sean Rhone