🖥️ Migrating to Nearly Free Speech

Table of Contents


Intro

Earlier this year, I moved my sites off of Neocities and onto Nearly Free Speech and posted my notes about doing it to cohost (RIP). john videogames on Bluesky was very kind to send me a cached copy of that post, and here it is!


Uploading your site

  1. If you didn’t already do this for Neocities, download something like FileZilla or Cyberduck.
  2. Make a new connection profile for your site. In the “Protocol” drop-down menu, select SFTP - SSH File Transfer Protocol. (Your program might call this field something else, but in any case look for something that lets you connect with SFTP aka SSH File Transfer Protocol.)
  3. Go to your NFS.net Member Login > Sites > whatever site you are setting up. Make a note of your username, password, and the SSH/SFTP Hostname.

The "SSH/SFTP Information" box in the NearlyFreeSpeech.net site settings

Also make sure that SSH/SFTP Access Enabled is toggled on.

  1. Back in your file transfer program, enter the NFS SSH/SFTP Hostname in the Host field, then your username and password. I highly recommend creating a Site Manager profile for your site (it may be called something else in your program) so that you can connect easily in the future.
  2. When you connect for the first time, it will ask if you allow the SSH fingerprint. Click “Allow,” and if available, check the “Always Allow” box so it won’t ask again.
  3. Now you can upload your files to your site!

FileZilla's Site Manager open showing a new site with the 'Protocol' setting at 'SFTP - SSH File Transfer Protocol,' the 'host' field filled in with the NearlyFreeSpeech server, and the username and password fields filled out

This is what my FileZilla Site Manager looks like on Linux. It might be different for you, but generally look for these fields and fill them in.

The Site Manager in FileZilla showing the settings for renkotsuban.com open to the Advanced tab, highlighting the "Default local directory" field

Pro-tip: In FileZilla (and probably also Cyberduck) you can go to the Site Manager, click on the Advanced Tab, and set your connection to open to a default local directory. This way you won't mix up which files to upload to which site.

FileZilla connected to renkotsuban.com and showing both the local files and server files mirroring each other

From there, just upload all your files into your site!


Set up SSL

EDIT: NFS does this automatically for users now, so you don’t need to do this step! Keeping this section in for posterity.

This is so you can have https:// for your domain name.

  1. Go to NFS.net Member Login > Sites > whatever site you are setting up. Make a note of your username, password, and the SSH/SFTP Hostname.
  2. If you are on Windows, hit Win+R, type in cmd and hit Enter. (If you are not on Windows, open whatever terminal you use.)
  3. Type in ssh USERNAME@SSH_HOSTNAME. It should ask for your password, enter that in.
  4. Type tls-script.sh and then Enter. It should ask if you agree to the user license, type Y and then Enter again.
  5. It should install a .well-known folder with all the proper SSL files on your site that will let you connect to your domain with https:// instead of only http://.

Set up domain alias

This is so that https://www.yoursite.com and https://yoursite.com both work for your site.

  1. Go to NFS.net Member Login > Sites > whatever site you’re setting up.
  2. Near the top, it should list your NFS subdomain and your www.yoursite.com domain name. Click “Add a New Alias.”
  3. Enter in yoursite.com.

Site information for renkotsuban.com

You will have yoursite.nfshost.com as its default, and can add your domain and domain aliases here.


Set up error pages

  1. Open a text editor and create a file named .htaccess.
  2. In that file, paste in ErrorDocument 404 /not_found.html (or whatever your error page’s filename).
  3. If you want, you can do the same for 401, 403, and 500 errors.
  4. Save it, then upload the .htaccess and error pages to the root of your site.

Enable MultiViews

This is to have URLs point to pages even without the .html at the end, which is how Neocities does it.

  1. Open your .htaccess file in your text editor.
  2. Paste in Options +MultiViews.
  3. Save and upload the .htaccess to the root of your site.

A .htaccess file opened in a text editor with the ErrorDocument and MultiViews codes added in from this and the previous section

My .htaccess with both the error pages and MultiViews set up.


Set up custom Bluesky username

  1. In your text editor, create a new file named atproto-did.
  2. In Bluesky, go to Settings > Account > Handle, then click “I have my own domain.”
  3. Click the “No DNS Panel” tab and then copy the contents of “That contains the following:”. Paste that code into your atproto-did file (without a file extension!), and save it.
  4. Upload the atproto-did file into your site’s .well-known folder.
  5. Back in Bluesky, click “Verify Text File,” and if that was successful, “Update to (domain name)”

The Bluesky Handle page with the 'No DNS Panel' tab opened, the desired domain name entered in, as well as arrows pointing at a blocked-out bit of code in the 'That contains the following' field and another arrow pointing at the 'Verify Text File' button at the bottom

If you don't already have it, just make a folder in your site that's named ".well-known" and upload your "atproto-did" file into there.


Comments