Slide 1

Slide 1 text

Developing for MLP Forums ...or, at least, trying to.

Slide 2

Slide 2 text

2 Needless to say... This talk is not endorsed by or representative of my employer or Poniverse. The images contained in this talk are probably property of their artist, their owner, or Hasbro.

Slide 3

Slide 3 text

3 Who am I? MLPF: Discord: IRC:

Slide 4

Slide 4 text

4 Why am I the admin? (No, seriously, why am I the admin?) - Drinking? - Right person, right place. - I met one of the main guys behind Poniverse, Feld0. - Not a lot of competition for the job. - Skilled, yet unpaid and unexciting.

Slide 5

Slide 5 text

5 So I'm the admin. But I don't know anything about running MLPF. Nor does our wiki:

Slide 6

Slide 6 text

6 So I'm the admin. But I don't know anything about running MLPF. Step 1: Get the forums running locally on my machine.

Slide 7

Slide 7 text

7 So I'm the admin. But I don't know anything about running MLPF. Step 1: Get the forums running locally on my machine. Step 2: Fix things on my local machine, then fix things in production after I've figured them out.

Slide 8

Slide 8 text

8 So I'm the admin. But I don't know anything about running MLPF. Step 1: Get the forums running locally on my machine. Step 2: Fix things on my local machine, then fix things in production after I've figured them out. Step 3: Ponies?

Slide 9

Slide 9 text

9 The First Attempt Let's install MariaDB!

Slide 10

Slide 10 text

10 The First Attempt Let's install MariaDB! > sudo apt install mariadb-common

Slide 11

Slide 11 text

11 The First Attempt Let's install MariaDB! > sudo apt install mariadb-common

Slide 12

Slide 12 text

12 The First Attempt Let's uninstall MariaDB!

Slide 13

Slide 13 text

13 The First Attempt Let's uninstall MariaDB. And, a mere four hours later, we had.

Slide 14

Slide 14 text

14 The Second Attempt

Slide 15

Slide 15 text

15 The Second Attempt Let's install a VM! - They're safer. Everything's contained. - Smaller chance of taking out the host OS.

Slide 16

Slide 16 text

16 The Second Attempt Time to install - Ubuntu - Linux, Nginx, MariaDB, PHP - The requirements for IP.Board. - and, finally, IP.Board itself.

Slide 17

Slide 17 text

17 The Second Attempt Time to install - ubuntu package manager: installed the synaptic package manager - synaptic: installed mysql-server, nginx, php-fpm (as opposed to php-cgi), and available updates. - mysql password is same as server - tweaked nginx, roughly according to https://www.digitalocean.com/community/tutorials/how-to - installed gksu for properly-permissioned graphical shell sudo powers - ran sudo chmod 644 * -R in /var/www/html, since the files couldn't be read by www-data (which i - now the site runs, displaying a 'down for maintenance' message. - commented out ~/index.php's 'remote addr' check, which forces the maintenance page - Installed PHP extensions required by ips4.php, IPS Community Suite compatability checker. Usin - link: https://invisioncommunity.com/files/file/7046-get-ready-for-ips-4/ - synaptic: installed php-curl, php-xml, php-gd, php-mbstring, php-mysql, and php-zip. - > sudo apt install php-curl php-xml php-gd php-mbstring php-mysql php-zip

Slide 18

Slide 18 text

18 The Second Attempt Now the base thing works. - We've got a vanilla installation of IP.Board. - Install the addons, we can load the DB up with some data and we're good right?

Slide 19

Slide 19 text

19 The Second Attempt Now the base thing works. - We've got a vanilla installation of IP.Board. - Install the addons, we can load the DB up with some data and we're good right? - Wrong.

Slide 20

Slide 20 text

20 The Second Attempt Now the base thing works. - We've got a vanilla installation of IP.Board. - Install the addons, we can load the DB up with some data and we're good right? - Wrong. - Install the MLPF-tweaked PHP files, and we're good right? - Wrong. - But not tooo wrong... - On to the next problem!

Slide 21

Slide 21 text

21 The Second Attempt Time to get all the database in there. - We only have a small sample right now.

Slide 22

Slide 22 text

22 The Second Attempt Time to get all the database in there. - We only have a small sample right now. We'll get the data from the server... - And take down the server for 20 minutes.

Slide 23

Slide 23 text

23 The Second Attempt Time to get all the database in there. - We only have a small sample right now. We'll get the data from the server... - And take down the server for 20 minutes. ... and load it in the database.

Slide 24

Slide 24 text

24 The Second Attempt So, we talk a lot.

Slide 25

Slide 25 text

25 The Second Attempt So, we talk a lot. - Like, a lot.

Slide 26

Slide 26 text

26 The Second Attempt So, we talk a lot. - Like, a lot. - Like, more than a default VirtualBox VM's hard disk can hold.

Slide 27

Slide 27 text

27 The Second Attempt We must go bigger! - Resize the virtual disk drive! - No. The VM mysteriously won't load now. - Delete the snapshots, then resize the VDD!

Slide 28

Slide 28 text

28 The Second Attempt So, we talk a lot.

Slide 29

Slide 29 text

29 The Second Attempt So, we talk a lot. - Like, a lot.

Slide 30

Slide 30 text

30 The Second Attempt So, we talk a lot. - Like, a lot. - Like, more than my computer's SSD can hold.

Slide 31

Slide 31 text

31 The Second Attempt We must go elsewhere! - Ctrl-c ctrl-v to the main disk drive from the SSD. - Slower, but it works! - md5sums match. Can never be too paranoid... - Delete the copy on the SSD so my stuff works again. - Ctrl-c ctrl-v a backup. - $ cp Poniverse-MLP-Forums.vdi Poniverse-MLP-Forums.vdi.bak

Slide 32

Slide 32 text

32 The Second Attempt We must go elsewhere! - Ctrl-c ctrl-v to the main disk drive. - Slower, but it works! - md5sums match. Can never be too paranoid... - Delete the copy on the SSD so my stuff works again. - Ctrl-c ctrl-v a backup. - $ cp Poniverse-MLP-Forums.vdi Poniverse-MLP-Forums.vdi.bak - cp: error reading 'Poniverse-MLP-Forums.vdi': Input/output error

Slide 33

Slide 33 text

33 The Second Attempt We must go elsewhere! - Ctrl-c ctrl-v to the main disk drive. - Slower, but it works! - md5sums match. Can never be too paranoid... - Delete the copy on the SSD so my stuff works again. - Ctrl-c ctrl-v a backup. - $ cp Poniverse-MLP-Forums.vdi Poniverse-MLP-Forums.vdi.bak - cp: error reading 'Poniverse-MLP-Forums.vdi': Input/output error

Slide 34

Slide 34 text

34 The Second Attempt OK, try to back up again. - $ rm Poniverse-MLP-Forums\ Clone\ 2 -r - rm: cannot remove 'Poniverse-MLP-Forums Clone 2': Read-only file system

Slide 35

Slide 35 text

35 The Second Attempt OK, try to back up again. - $ rm Poniverse-MLP-Forums\ Clone\ 2 -r - rm: cannot remove 'Poniverse-MLP-Forums Clone 2': Read-only file system Uh oh.

Slide 36

Slide 36 text

36 The Second Attempt The drive is dead. - It's truly not coming back. - A solid month's work is down the drain. - And my computer won't boot.

Slide 37

Slide 37 text

37 The Second Attempt At least we have backups... - Of everything but the VM. - It was so big... - So, buy a new HDD. - Redo the work on the MLPF VM quickly, from the notes in the backup. - About two weeks later, we're back to where we were. - Things are working a little better now, at least. I was able to correct some of my previous mistakes, like installing wrong DB again.

Slide 38

Slide 38 text

38 The Second Attempt So now we've got everything working? - Yes.

Slide 39

Slide 39 text

39 The Second Attempt So now we've got everything working? - Yes. Ish.

Slide 40

Slide 40 text

40 The Second Attempt So now we've got everything working? - Yes. Ish. - The VM dev install is still flakey enough that I can't be sure whether an upgrade has broken anything, or if it's just the dev install being flakey.

Slide 41

Slide 41 text

41 The Second Attempt So now we've got everything working? - Yes. Ish. - The VM dev install is still flakey enough that I can't be sure whether an upgrade has broken anything, or if it's just the dev install being flakey. So it's basically useless.

Slide 42

Slide 42 text

42 The Third Attempt Coming soon: I try to install Docker. - We have an old image I can use. It was known to work at the time it was made.

Slide 43

Slide 43 text

43 The Third Attempt Coming soon: I try to install Docker. - We have an old image I can use. It was known to work at the time it was made. - I've never used Docker; and this is a fairly complex, mostly undocumented project.

Slide 44

Slide 44 text

44 The Third Attempt Coming soon: I try to install Docker. - We have an old image I can use. It was known to work at the time it was made. - I've never used Docker; and this is a fairly complex, mostly undocumented project. - So, basically, wish me luck and I'll tell you all how this went next year!

Slide 45

Slide 45 text

45 Thanks for watching!