# NetSurf migration to Infrafish (DNS/Mail), Freelists (MLs), and NS infra (git/www) Things to migrate include: * DNS hosting * MX fronting * Mailing lists * Git server * Web hosting (www. as well as git.) * Wiki hosting * SSL certificate generation ## Infrafish approach Infrafish is limited to: DNS hosting, MX fronting, and static website serving As such, Daniel suggests that we move all websites to NS infra, along with the git server, as that gives the greatest chance that ikiwiki et al. can be made to "just work". Possible transition plan is: 1. Set up DNS and MX on infrafish with: - DNS set up so web etc. still points at pepperfish - Done - all main aliases in place - Done - mxc.pepperfish.net as remote-mx so that mailman lists continue to function to some extent - Done - no SPF record for now - Done/Removed - Worth noting we had a DMARC record of: `v=DMARC1; p=none; sp=none; fo=1; ri=3600` 2. Update whois records to push DNS and main MX over to infrafish - Done 3. Send an email to a mailing list, from outside of infrafish, to ensure that the lists continue to work. - Done(ish) I sent from infrafish, but all looks OK for now. ## Mailing lists Daniel has emailed Freelists staff to confirm that they think it'll be acceptable for NS mailing lists to be hosted there. Once they reply we'll look at moving there. If they say that it's not acceptable then there're other options though they cost money. Based on our subscriber numbers it'd be over 100 per year for mailmanlists.org for example. (they go on subscriber count, not throughput) All other options Daniel has explored are VPS/hosts which offer integrated mailman support, but the goal is to not have to run our own ML server. ### Freelists Freelists turns out to be perfect. Daniel has experimented with a list and the following is what we need in order to complete the process 1. Create each of the lists we need on freelists - Proposal: Daniel to create them since he's subscribed to them all - Recommendation: Once the membership is imported, jmb, tlsa, kyllikki all become marked as admins of the list 2. Daniel to supply to freelists staff the subscriber CSVs and links to where mbox files for the list archives will be placed 3. Once CSVs imported, admin settings are done - Someone needs to take ownership of setting up things like the welcome messages etc. But this doesn't have to happen immediately - For the commits list, we need to ensure that the commit mailer has the ability to post and nobody else does. 4. Daniel resets mail configs to point at freelists - From this point on, freelists is actually running the mailing lists 5. Daniel then creates the mboxes and signals freelists staff to begin archive importing. 6. Someone posts to the lists to let everyone know, to thank Freelists for hosting the lists, and to indicate how to unsubscribe if anyone is unhappy with the move. * jmb@netsurf-browser.org * tlsa@netsurf-browser.org * vince@kyllikki.org and vince@netsurf-browser.org ## Moving git et al. The git server, website, and wiki, are somewhat inextricably linked. And the git server expects to be able to ping CI as well. In order to process things cleanly, we should stop the access to the git server for writes on pepperfish *before* we proceed. A wholesale copy of the netsurf home directory from Pepperfish to a user on the relevant NS host seems the most sensible. If at all possible as the user `netsurf` though we can probably cope if the homedir paths change. (it is 3.3G currently, and does contain setuid-netsurf binaries, so rsync perhaps?) To make git work we will need: 1. Gitano et al. working - so long as the new host is sufficiently compatible this should be a no-brainer as it's entirely self-contained Daniel thinks 2. An `nsgit` user set up appropriately: `nsgit:x:1015:1015:NetSurf Git:/home/netsurf/gitano-root/:/bin/sh` is how it's done on Pepperfish 3. If we can confirm that gitano is then working; we can move on to ensuring that it can ping CI by pushing some null-ish commit 4. Once satisfied, we need to set up a cgit server or similar, before redirecting the DNS to the new host. The cgit site in the homedir has a cgit binary which might be the easiest thing for that. Next sort the rest of the static websites from ~/websites. For now Daniel suggests that we only actually implement: download, git, test, wiki, and www; and that we ignore www2, ipv6, staging-area, planet, download2. We can add those in later if they prove necessary. To make the wiki able to respond to pushes, we will need: 1. Ikiwiki installed. Platypus had 3.20150107 - no idea what is current or how that might affect things 2. Once installed, send some null commit to the wiki and see what happens