Guides - Deploy Yacht through the Linode Marketplace
Quickly deploy a Compute Instance with many various software applications pre-installed and ready to use.
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.
Deploying a Marketplace App
The Linode Marketplace allows you to easily deploy software on a Compute Instance using the Cloud Manager. See Get Started with Marketplace Apps for complete steps.
Log in to the Cloud Manager and select the Marketplace link from the left navigation menu. This displays the Linode Create page with the Marketplace tab pre-selected.
Under the Select App section, select the app you would like to deploy.
Complete the form by following the steps and advice within the Creating a Compute Instance guide. Depending on the Marketplace App you selected, there may be additional configuration options available. See the Configuration Options section below for compatible distributions, recommended plans, and any additional configuration options available for this Marketplace App.
Click the Create Linode button. Once the Compute Instance has been provisioned and has fully powered on, wait for the software installation to complete. If the instance is powered off or restarted before this time, the software installation will likely fail.
To verify that the app has been fully installed, see Get Started with Marketplace Apps > Verify Installation. Once installed, follow the instructions within the Getting Started After Deployment section to access the application and start using it.
Configuration Options
- Supported distributions: Debian 11, Ubuntu 22.04 LTS
- Recommended minimum plan: All plan types and sizes can be used.
Yacht Options
- Yacht Email: The email address for your Yacht login. The default is admin@yacht.local.
- Yacht Password (required) The password for your Yacht login.
- Yacht Compose Support: Support for using Yacht with Docker Compose. - Yacht Theme: Yacht theme options: Default, RED, and OMV.
"
) within any of the App-specific configuration fields, including user and database password fields. This special character may cause issues during deployment.Getting Started after Deployment
Access your Yacht App
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.Warning 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.Enter your Yacht email address and password:
You should see the Yacht administration panel:
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.
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.
Login to the Linode’s IP over
ssh
. Replace192.0.2.0
with your Linode’s IP address.ssh root@192.0.2.0
Create two local directories for SSL and the modified
nginx.conf
.mkdir -p local/nginx mkdir local/ssl
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 []:admin@yacht.local
Move the newly generated certificate and key into the
local/ssl
directory.mv yacht.* local/ssl
Dump the Yacht
nginx.conf
to thelocal/nginx
directory.docker exec -it yacht /bin/sh -c "cat /etc/nginx/nginx.conf" > local/nginx/nginx.conf
Open the
local/nginx/nginx.conf
file usingvim
or another text editor of your choice and locate the server block for port 8000 (around line 30).- File: local/nginx/nginx.conf
1 2 3 4
... server { listen *:8000; ...
Add the
ssl
parameter and paths for the certificate and key.- File: local/nginx/nginx.conf
1 2 3 4 5 6 7
... server { listen *:8000 ssl; ssl_certificate /etc/nginx/ssl/yacht.crt; ssl_certificate_key /etc/nginx/ssl/yacht.key; ...
Copy
local/nginx/nginx.conf
andlocal/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.
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