Deploy using Docker Compose on MacOS 14

Journey · May 1, 2024

Welcome to our tutorial on hosting your Journey Sync Drive using Docker Compose on MacOS Sonoma 14. This guide is designed to be easy to follow, with an estimated setup time of just 30 minutes.

Before we dive in, make sure you have the following:

  • Macintosh E.g. Mac Studio
  • Ngrok account

Install Docker Desktop

  1. Go to Docker to download the MacOS App. Choose between Intel chip and Apple chip depending on your Mac.

  2. Open the downloaded dmg file and drag it into the “Applications” folder.

  3. Open “Docker” app.

  4. Accept the terms. Select “Use recommended settings” > “Finish”.

  5. Click on “Continue without signing in”.

  6. Click on the red traffic light button to close the window. You should still see that the Docker app is running in the background.

Sign up for Dynamic DNS service

  1. In this example, we use Ngrok. Sign up a free account in ngrok.

  2. Head over to ngrok MacOS setup page.

Install Homebrew

  1. Open “Terminal” app from “LaunchPad”. Image

  2. Install Homebrew. Input your password when prompted and press ENTER. Press ENTER again to install command line tools.
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  3. Update the repository index of the Homebrew package installer.
    brew update
    
  4. Install ngrok.
    brew install ngrok/ngrok/ngrok
    
  5. From “ngrok” MacOS setup page, copy the authtoken shown. Enter the command below in your terminal:
    ngrok config add-authtoken <token>
    
  6. Under “Deploy your app online”, click “Static Domain”. Take note that <random>.ngrok-free.app is your domain.
    ngrok http --domain=<random>.ngrok-free.app 8080
    

Deploy Docker Images

  1. Visit the GitHub repository here and locate the docker-compose.yml file. Copy its contents and paste them into a text editor like TextEdit. Within the copied content, locate and modify the following fields:
    • DOMAIN: Replace both journey-sync-self-hosted-service & journey-sync-self-hosted-media services of this field with your domain name. Example: <random>.ngrok-free.app
    • SIGNED: Change this field to a unique value.
    • ADMIN_JS_COOKIE_PASSWORD: Modify this field with a unique password.

      Ensure that “Make Plain Text” is selected under “Format” menu in TextEdit app.

Image

  1. Save text file as docker-compose.yml in a designated directory. In this example, we save in ~/Documents/journey. Image

  2. Go to the designated directory and list the files in the fol der.
    cd ~/Documents/journey
    ls
    
  3. Ensure that docker-compose.yml is within the folder.
    johnappleseed@MacBook journey % ls
    docker-compose.yml
    
  4. Pull the images.
    docker compose pull
    
  5. Run the services.
    docker compose up -d
    
  6. Go to locahost:8080 in your browser. You should see that the Journey self-hosted server is installed. Image

  7. Go to <random>.ngrok-free.app in your browser. You should see that the Journey self-hosted server is installed. Image

  8. Log in to the admin panel by going to https://<random>.ngrok-free.app/admin. Image

  9. Now, you need to locate your credentials. On the menu, click “Go to the dashboard” to open Docker dashboard. Image

  10. In “Containers” tab, expand “journey” project. Click on the service with name that starts with journey-sync-self-hosted-service- running on port 8080. Image

  11. Scroll the logs to retrive the user name and password. Copy the user name and password into the admin login page. For OTP, use authenticator app such as Authy. Enter the secret code or scan the QR code. Image

  12. Done! You are in the admin dashboard.

  13. Change the admin password. You may also add new user.

  14. Follow the instructions here to add a new sync drive.

Update Journey Docker images

  1. Journey self-hosted is updated from time to time. To update, go to the folder where docker-compose.yml is located.
    cd ~/Documents/journey
    
  2. Pull the images.
    docker compose pull
    
  3. Load the new images.
    docker compose up -d