Skip to content

Folder Structure

We like to focus on what’s important, and we suspect you do too. That’s why when you SSH into a container, the folder structure that you’ll see is simpler than a normal virtual machine. The platform lets you access what you need, and abstracts away everything else.

First, it’s important to understand that your files are not stored inside specific containers. Because they are separate you can replace or swap containers, or change the image that a container is running, without affecting your files. Handy!

The Directories

When you SSH/SFTP in, the home directory containers a symbolic container/ link, and inside you will a few things relevant to your container, it will look something like this:

username@ch-myserver — ssh username@example.com
container/
application/
backups/
config/
crontabs/
logs/
volumes/

While this is the standard structure, it can vary slightly, depending on the type of container, what features you’re using (such as volumes), or for example, if you have access to multiple containers – in which case you will see a directory for each container first, and the above struture one level deeper.

But what can you expect to find inside each directory?

/application

This is your primary directory and where your website or application will need to go.

For web containers, you’ll see an /application/public directory, which is the web root for your application. We don’t recommend creating a symlink of the /public directory to another folder, as it can be overwritten when the container image is upgraded, downgraded or switched. If your deployment process requires a soft link setup:

  1. Create a symbolic link either inside or outside the /public folder.
  2. Update the root or DocumentRoot settings in your Nginx or Apache configuration to match the created path.

/backups

As the name suggests, this is where you’ll find backups of your container, databases, and volumes.

On new containers this directory might not exist yet, but it will appear within 24 hours, after the first backup is taken. If you need a backup now for some reason you can take one manually.

You may also see a /migration directory here. This appears when your container has been migrated or updated to a new image (which can be an automatic process).

/config

No surprises what you’ll find here: configuration files. You’ll see subdirectories for webservers like Nginx or Apache.

When you create SSH users you will have the option to make this directory read-only. Those users won’t be able to make any changes to your config files.

While this directory lets you make changes to the configuration of the software that your container is running, like webservers, languages and databases, you cannot make configuration changes to the server itself.

/crontabs

This is the place for custom cron entries, which we cover in more detail in our Cron Jobs Overview article. New entries belong in the /crontab subdirectory.

/logs

Very self-explanatory. Whatever software your container is running (say Apache + PHP), you’ll find the logs here.

/volumes

Any Volumes that you have connected to the current container will appear here, so you can access their contents.