Primary Access to the hosting backend access is done via encrypted SSH or SFTP connections.

We run SSH/SFTP on a non-standard port of 22222. We also provide phpMyadmin access for web-based database debugging and administration.

We do not provide cPanel, Plesk, Webmin, or other web based control panels. This is because they do not meet our requirement for secure, fully open source software. If you are only used to cPanel and are not sure what to do, please see some of the recipes below for getting things done!

Hosting Backend Layout

Depending on your hosting plan, you may be on a shared or a private server. Regardless of which, you will find the same backend layout.

Your main login to a site will let you into a user account, usually named after the customer name or site name. When you connect to the server you will find yourself in the home directory for your user. This lives at the path: /home/yourusername .

Inside your home directory, you will find a folder for each website that lives there:

  • domains/yoursite.example.com
  • domains/anothersite.example.com

Each of those domains/ folders is a project directory for a different site we are hosting. All project directories have two folders in them and look like this:

  • logs/             (contains webserver access and PHP error logs)
  • web/             (contains the PHP and files for your website).

So the domains/yoursite.example.com/web folder is where you must upload files for them to show up on your site.

Initially this folder contains just one file, a “index.php” file that shows a phpinfo(); output page. You can replace this php file with the codebase you are uploading, or remove it and download a new codebase.

Typical Developer Workflows

We support developers of all sizes with varying workflows. However there are two major types of workflow that we see developers using:

1. SSH Command line with git-based workflow. Everything happens in command line, using tools such as WP CLI, Drush, Composer, git, tail, rsync, and so on. This is the most popular method for larger development shops and advanced developers. Database dumps are loaded and saved using command line scripts.

2. SFTP for file transfer of PHP files, and phpMyAdmin for database administration.

This is popular with less experienced developers and smaller dev shops. Git version control may or may not be used, depending on the developer’s approach. A file transfer client like FileZilla is used to connect.

Connecting via SSH

When your site was provisioned you should have received a secure note that contains login information (server, port, username, password, along with MySQL DB information)

Use that information for these instructions wherever a username, password, or server name is required.

From MacOS, Linux, BSD

With UNIX based OS’s (ie. everything but Windows), the “ssh “command should be built in. You can connect with:

ssh -p 22222 myusername@yourserver01.ct.coop

Enter your password and you will find yourself logged in in the home directory.

From Windows

In Windows you can install real OpenSSH and that is the best option.
There are two methods to get it.

  1. Install it as a windows component:
    https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
  2. Install Windows Subsystem for Linux (WSL) and your favourite Linux Distro:
    – choose Debian Linux or Ubuntu Linux or whatever you prefer from the Microsoft Store.
    – run the linux shortcut to get a shell and follow the Mac/Unix instructoins.

If you don’t want to use OpenSSH, you can also use a terminal emulator program such as PuTTy.exe , SecureCRT, etc. These will all work as well but you will have to configure them to use port 22222 when setting them up. You will need to enter: server name, server port (22222), username, and password in order to connect.

Connecting via SFTP

You can SFTP using command line SFTP or a program like FileZilla (free and available for Mac and Windows).
You will need to enter: server name, server protocol (SFTP), server port (22222), username, and password in order to connect.
You can also set your preferred folder after connect (e.g. domains/yoursite.example.com/web).Recipes

Recipes

These recipes cover some common operations and how best to perform them in our environment.  More recipes and a dedicated cookbook of recipes are coming soon!

Recipe: Updating a WordPress site via SSH / WP CLI

To update a wordpress site via SSH, the easiest way is using the WP CLI utility.

  1. SSH into the server (see “Connecting via SSH” above)
  2. change into the correct site’s directory, e.g.:    cd domains/example.com/web
  3. use WP CLI to see what plugins would update:     wp plugin update –all –dry-run
  4. and if that looks good, try again without the –dry-run to update for real:   wp plugin update –all
  5. Run any pending database updates:   wp core update-db
  6. Flush the cache:  wp cache flush
  7. Test your site still works correctly.

Recipe: Updating a WordPress site via SFTP

To update a WordPress site via STP, you must replace the wordpress and/or plugin files with new ones.

This is a very inefficient and accident-prone method and should only be used if for some reason you can’t update from within your site’s Update section (and also aren’t able to use SSH).

  1. SFTP into the server (See “Connecting via SFTP” above)
  2. change into the correct site’s directory, e.g.:    cd domains/example.com/web
  3. Taking care not to delete wp-content, use your SFTP program to delete and then recreate the core WordPress folders except for that.
  4. Now move into wp-content and delete and replace any plugins or theme folders you wish to update, one at a time.
  5. Log into your wordpress site with an Administrator user, and perform any pending database updates that are there.
  6. Clear your caches (in W3 Total Cache that’s Performance->Clear all caches)
  7. Test your site still works correctly.