Self Hosting with Docker

These instructions make the following assumptions:

  • You've just finished setting up a Linux server (say, Ubuntu 16.04 64-bit) and have installed Docker on it.
  • You've configured your security groups to allow for incoming SSH connections from your local IP.
  • You've configured a domain name (or subdomain) to point to your server's IP address.
  • You've configured the DNS to enable HTTPS for your domain (say, using Cloudflare).

Getting started

  1. SSH into your new server:

    $ ssh -l {user} {IP to the server}
  2. Update your system:

    $ sudo apt-get update
    $ sudo apt-get upgrade
  3. Install Git:

    $ sudo apt-get update
    $ sudo apt-get install -y git
  4. Make sure you are in your home directory and clone the Standard Notes Server syncing-server project:

    $ cd ~
    $ git clone
    $ cd syncing-server
  5. Create .env.production file in the project's directory:

    $ cp env.sample .env.production

    Generate the SECRET_KEY_BASE with:

    $ bundle exec rake secret
  6. Simply run:

    $ docker-compose up -d

    This should load the syncing-server and MySQL database containers and run the necessary migrations.

  7. Test your access to the server locally:

    $ curl {domain name}
    <!doctype html>
        <h1> Hi! You're not supposed to be here. </h1>
        <p> You might be looking for the <a href=""> Standard Notes Web App</a> or the main <a href=""> Standard Notes Website</a>. </p>
  8. You're done!

Using your new server

You can immediately start using your new server by using the Standard Notes app at

In the account menu, choose Advanced Options when signing in to specify your server.

Then, register for a new account, and begin using your private new secure Standard Notes server!