FoolFuuka: Difference between revisions

From Bibliotheca Anonoma
(Created page with "**FoolFuuka** == Installation == * Installing on Debian/Ubuntu")
 
No edit summary
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
**FoolFuuka**
[[File:FoolFuuka-and-Asagi.png|thumb]]
 
'''FoolFuuka''' is a PHP web viewer paired with the Asagi archiver. It was developed by the FoolCode team who originally made this fork for archive.foolz.us. Currently, it is maintained by 4plebs.


== Installation ==
== Installation ==


* [[FoolFuuka/Install/Debian|Installing on Debian/Ubuntu]]
<!-- * [[FoolFuuka/Install/Debian|Installing on Debian Jessie]] - This won't work -->
* [[FoolFuuka/Install/Ubuntu16|Installing on Ubuntu 16.04 LTS]]
* [[FoolFuuka/Install/Centos7|Installing on RHEL7/CentOS 7]] - We prefer to use CentOS 7 with SELinux in the future.
* [[FoolFuuka/Install/Windows|Installing on Windows, Apache, Mysql, PHP]] - Not recommended but it can work.
 
== Administration ==
 
* [[FoolFuuka/Start]] - Start up Asagi, Sphinxsearch, and FoolFuuka.
* [[FoolFuuka/Import]] - Import data from the dumps.
* [[FoolFuuka/Housekeeping]] - You may be ordered by the provider, by the state, or by a plea from the person themselves to clean up data. Here's how.
* [[FoolFuuka/Troubleshooting]] - Restart the site if its down or troubleshoot if there are problems.
* [[FoolFuuka/Upgrading]] - Upgrade FoolFuuka to the latest version.
* [[FoolFuuka/Plugins]] - Plugins and extensions you could use.
 
== Architecture ==
 
An advanced section for setting up the architecture needed to run FoolFuuka/Asagi/SphinxSearch at scale.
 
* [[FoolFuuka/Nginx]]
* [[FoolFuuka/MySQL]] - We use Percona MariaDB, a version of MySQL. It is also tokudb.
* [[FoolFuuka/Sphinx/Advanced]] - At Desuarchive the search server serves both Desuarchive and Rbt.asia, and is hosted on a server seperate from the frontend, database, and scraper with OpenVPN connecting the two.
 
== Backups ==
 
FoolFuuka/Asagi is notorious for their large and unwieldy database. We use this command to do daily and weekly dumps without getting locking problems.
 
<pre>
mysqldump -u $DB_user -h $DB_host -p$DB_pass --opt --single-transaction --quick --lock-tables=false $DB $t | gzip > $DIR/$DB-$t.sql.gz
</pre>
 
=== Dumping FoolFuuka Tables without leaking IPs or Passwords ===
 
Don't just release the bare SQL dump into the wild. This script will dump to CSV, which is actually quite easy to import back.
 
{{bc|<nowiki>
SELECT `doc_id`, `media_id`, `num`, `subnum`, `thread_num`, `op`, `timestamp`, `timestamp_expired`, `preview_orig`, `preview_w`, `preview_h`, `media_filename`, `media_w`, `media_h`, `media_size`, `media_hash`, `media_orig`, `spoiler`, `deleted`, `capcode`, `email`, `name`, `trip`, `title`, `comment`, `sticky`, `locked`, `poster_hash`, `poster_country`, `exif`
FROM `pol`
INTO OUTFILE "/tmp/a.csv"
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY "\n";
</nowiki>}}
 
=== Automatic Full SQL DB Backups ===
 
crontab -e
 
    0 3 * * * /bin/bash /home/atc/sql/full.sh
 
That script back up foolfuuka rbt_foolfuuka asagi
 
Iterates through each DB
 
/home/atc/sql/desu - Writes gzip’d SQL files here (normal to be empty)
 
Uploads to encrypted RClone folder
 
=== Automatic CSV Dumps as seen on Internet Archive ===
 
    php /home/atc/backup.php
 
==== Backupbot Database ====
 
```
CREATE DATABASE backupbot DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
  GRANT ALL PRIVILEGES ON `backupbot`. * TO 'backupbot'@'localhost';
  GRANT FILE ON *.* TO 'backupbot'@'localhost';
  GRANT SELECT ON `asagi`.* TO 'backupbot'@'localhost';
  GRANT SELECT ON `foolfuuka`.* TO 'backupbot'@'localhost';
  GRANT SELECT ON `rbt_foolfuuka`.* TO 'backupbot'@'localhost';
  flush privileges;
 
  use backupbot;
  create table backupstats (
      board VARCHAR(20) PRIMARY KEY,
      lastid INT
  );
```

Revision as of 03:26, 28 January 2019

FoolFuuka-and-Asagi.png

FoolFuuka is a PHP web viewer paired with the Asagi archiver. It was developed by the FoolCode team who originally made this fork for archive.foolz.us. Currently, it is maintained by 4plebs.

Installation

Administration

Architecture

An advanced section for setting up the architecture needed to run FoolFuuka/Asagi/SphinxSearch at scale.

  • FoolFuuka/Nginx
  • FoolFuuka/MySQL - We use Percona MariaDB, a version of MySQL. It is also tokudb.
  • FoolFuuka/Sphinx/Advanced - At Desuarchive the search server serves both Desuarchive and Rbt.asia, and is hosted on a server seperate from the frontend, database, and scraper with OpenVPN connecting the two.

Backups

FoolFuuka/Asagi is notorious for their large and unwieldy database. We use this command to do daily and weekly dumps without getting locking problems.

mysqldump -u $DB_user -h $DB_host -p$DB_pass --opt --single-transaction --quick --lock-tables=false $DB $t | gzip > $DIR/$DB-$t.sql.gz

Dumping FoolFuuka Tables without leaking IPs or Passwords

Don't just release the bare SQL dump into the wild. This script will dump to CSV, which is actually quite easy to import back.

SELECT `doc_id`, `media_id`, `num`, `subnum`, `thread_num`, `op`, `timestamp`, `timestamp_expired`, `preview_orig`, `preview_w`, `preview_h`, `media_filename`, `media_w`, `media_h`, `media_size`, `media_hash`, `media_orig`, `spoiler`, `deleted`, `capcode`, `email`, `name`, `trip`, `title`, `comment`, `sticky`, `locked`, `poster_hash`, `poster_country`, `exif`
FROM `pol`
INTO OUTFILE "/tmp/a.csv"
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY "\n";

Automatic Full SQL DB Backups

crontab -e

   0 3 * * * /bin/bash /home/atc/sql/full.sh

That script back up foolfuuka rbt_foolfuuka asagi

Iterates through each DB

/home/atc/sql/desu - Writes gzip’d SQL files here (normal to be empty)

Uploads to encrypted RClone folder

Automatic CSV Dumps as seen on Internet Archive

   php /home/atc/backup.php

Backupbot Database

``` CREATE DATABASE backupbot DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

 GRANT ALL PRIVILEGES ON `backupbot`. * TO 'backupbot'@'localhost';
 GRANT FILE ON *.* TO 'backupbot'@'localhost';
 GRANT SELECT ON `asagi`.* TO 'backupbot'@'localhost';
 GRANT SELECT ON `foolfuuka`.* TO 'backupbot'@'localhost';
 GRANT SELECT ON `rbt_foolfuuka`.* TO 'backupbot'@'localhost';
 flush privileges;
 use backupbot;
 create table backupstats (
     board VARCHAR(20) PRIMARY KEY,
     lastid INT
 );

```