How to Deploy Yacht With Marketplace Apps

Traducciones al Español
Estamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.

Yacht Marketplace App

Yacht is a web interface for managing Docker containers, with an emphasis on templating to provide easy deployments. The ultimate goal of Yacht is to make Docker easy for anyone to use and manage with templates, template variables, and an intuitive UI.

Caution
Keep in mind, Yacht is still in alpha and is not recommended for production use.

Deploy a Yacht Marketplace App

Linode’s App Marketplace allows you to easily deploy software on a Linode using the Linode Cloud Manager. To access Linode’s App Marketplace:

  1. Log in to your Linode Cloud Manager account.

  2. From the Linode dashboard, click on the Marketplace button in the left-hand navigation menu.

  3. The Linode creation page appears, with the Marketplace tab pre-selected.

  4. Under the Select App section, select the app you would like to deploy:

    Select a Marketplace App to deploy

  5. Once you have selected the app, proceed to the app’s Options section and provide values for the required fields.

Yacht Options

You can configure your Yacht App by providing values for the following fields:

FieldDescription
Yacht EmailThe email address for your Yacht login. The default is [email protected]. Required.
Yacht PasswordThe password for your Yacht login. Required.
Yacht Compose SupportSupport for using Yacht with Docker Compose.
Yacht ThemeYacht theme options: Default, RED, and OMV.

Linode Options

After providing the App-specific options, provide configurations for your Linode server:

ConfigurationDescription
Select an ImageDebian 10 is currently the only image supported by the Yacht Marketplace App, and it is pre-selected on the Linode creation page. Required.
RegionThe region where you would like your Linode to reside. In general, it’s best to choose a location that’s closest to you. For more information on choosing a DC, review the How to Choose a Data Center guide. You can also generate MTR reports for a deeper look at the network routes between you and each of our data centers. Required.
Linode PlanYour Linode’s hardware resources. Yacht can be supported on any size Linode, but we suggest you deploy your Yacht App on a Linode plan that reflects how you plan on using it. If you decide that you need more or fewer hardware resources after you deploy your app, you can always resize your Linode to a different plan. Required.
Linode LabelThe name for your Linode, which must be unique between all of the Linodes on your account. This name is how you identify your server in the Cloud Manager Dashboard. Required.
Root PasswordThe primary administrative password for your Linode instance. This password must be provided when you log in to your Linode via SSH. The password must meet the complexity strength validation requirements for a strong password. Your root password can be used to perform any action on your server, so make it long, complex, and unique. Required.

After providing all required Linode Options, click on the Create button. Your Yacht App will complete installation anywhere between 2-5 minutes after your Linode has finished provisioning.

Getting Started after Deployment

Access your Yacht App

  1. After Yacht has finished installing, you can access your Yacht instance by visiting your Linode’s IP address at port 8000 (for example, http://192.0.2.0:8000) in a web browser.

    Caution
    By default Yacht is not configured to use SSL, meaning that your login credentials will be sent over plain text. See Additional Steps for SSL for guidance on how to encrypt your connection.
  2. Enter your Yacht email address and password:

    Yacht Login

    You should see the Yacht administration panel:

    Yacht Dashboard

Yacht provides elegant theme customization, templating, easy management of Docker resources (volumes, images, network), applications and projects. Click the page icon on the bottom-left corner to view a live demo and official Yacht documentation.

Yacht Demo

Additional Steps for SSL

Since Yacht is not configured for SSL, some additional steps are required to encrypt your connection. The following example uses self-signed SSL certificates, but this can also work with a commercially signed or Let’s Encrypt certificates if the server is configured with a FQDN.

  1. Login to the Linode’s IP over ssh. Replace 192.0.2.0 with your Linode’s IP address.

     ssh [email protected]
    
  2. Create two local directories for SSL and the modified nginx.conf.

     mkdir -p local/nginx
     mkdir local/ssl
    
  3. Create the self-signed certificate and key.

     openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out yacht.crt -keyout yacht.key
    

    You should see output similar to the following:

    Generating a RSA private key
    ...............................................................................................................................................+
    ......................++++
    writing new private key to 'yacht.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:US
    State or Province Name (full name) [Some-State]:Pennsylvania
    Locality Name (eg, city) []:Philadelphia
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:yacht.local
    Email Address []:[email protected]
  4. Move the newly generated certificate and key into the local/ssl directory.

     mv yacht.* local/ssl
    
  5. Dump the Yacht nginx.conf to the local/nginx directory.

     docker exec -it yacht /bin/sh -c "cat /etc/nginx/nginx.conf" > local/nginx/nginx.conf
    
  6. Open the local/nginx/nginx.conf file using vim or another text editor of your choice and locate the server block for port 8000 (around line 30).

    File: local/nginx/nginx.conf
    ...
    server {
         listen *:8000;
    ...

    Add the ssl parameter and paths for the certificate and key.

    File: local/nginx/nginx.conf
    ...
    
    server {
         listen *:8000 ssl;
         ssl_certificate /etc/nginx/ssl/yacht.crt;
         ssl_certificate_key /etc/nginx/ssl/yacht.key;
    
    ...
  7. Copy local/nginx/nginx.conf and local/ssl to the /etc/nginx/ directory in the Yacht container, and then reload Nginx.

    docker cp local/nginx/nginx.conf yacht:/etc/nginx/
    docker cp local/ssl yacht:/etc/nginx/
    
    # remove ^M characters
    docker exec -it yacht /bin/sh -c "sed -ie 's/\r//g' /etc/nginx/nginx.conf"
    
    # reload nginx
    docker exec -it yacht /bin/sh -c "nginx -s reload"
    

Your browser may give warnings because the certificate is not signed by a Certificate Authority, and require you to add a security exception, but the connection is now encrypted.

Note
Currently, Linode does not manage software and systems updates for Marketplace Apps. It is up to the user to perform routine maintenance on software deployed in this fashion.

More Information

You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

This page was originally published on

Create a Linode account to try this guide with a $100 credit.
This credit will be applied to any valid services used during your first 60 days.

Your Feedback Is Important

Let us know if this guide made it easy to get the answer you needed.


Join the conversation.
Read other comments or post your own below. Comments must be respectful, constructive, and relevant to the topic of the guide. Do not post external links or advertisements. Before posting, consider if your comment would be better addressed by contacting our Support team or asking on our Community Site.