mirror of
https://github.com/Dokploy/website.git
synced 2026-07-20 21:35:25 +02:00
feat: enhance documentation site with new components and styles
- Added new dependencies including @radix-ui/react-dropdown-menu, class-variance-authority, clsx, tailwind-merge, and tw-animate-css. - Introduced new JSON configuration for components and updated layout with logo and navigation links. - Created new MDX files for remote server documentation, including setup instructions and security recommendations. - Updated global CSS to include new styles and themes. - Removed outdated home layout and page components to streamline the documentation structure.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: Deployments
|
||||
description: "Configure and set up your remote server deployment"
|
||||
---
|
||||
|
||||
import { ImageZoom } from "fumadocs-ui/components/image-zoom";
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
To get started with remote servers, you'll need to configure the initial setup for your remote server.
|
||||
|
||||
## Server Setup
|
||||
|
||||
The server setup process prepares the necessary environment for securely and efficiently deploying applications.
|
||||
|
||||
<Callout title="Important" type="info">
|
||||
Root access to the server is required. We currently do not support non-root deployments.
|
||||
</Callout>
|
||||
|
||||
<Callout type="warning">
|
||||
If your remote server is configured with a different shell (other than bash), you must configure bash as the default shell, as Dokploy has been developed and tested with bash.
|
||||
</Callout>
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/images/server-deploy.png"
|
||||
alt="Remote Server Setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
/>
|
||||
|
||||
We provide two main actions to configure your server:
|
||||
|
||||
- **Modify Script**: Allows you to view and customize the installation script that will be executed on your server. You can adjust it according to your specific needs.
|
||||
- **Setup Server**: Initiates the configuration process on the remote server. When clicked, it will open a modal window showing real-time logs of the script execution.
|
||||
|
||||
Example of the server setup logs:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/images/server-drawer.png"
|
||||
alt="Remote Server Setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
/>
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: EC2 Instructions
|
||||
description: "Instructions for setting up a remote server on EC2"
|
||||
---
|
||||
|
||||
When using EC2 instances, by default you don't have root access, and Dokploy needs root access to install the necessary packages without restrictions.
|
||||
|
||||
To do this, you need to make manual modifications to the instance:
|
||||
|
||||
1. **Click on launch instance**
|
||||
|
||||
2. **Select the distribution of your choice** (we recommend Ubuntu, Debian or Amazon Linux)
|
||||
|
||||
3. **Choose your instance type** and all the other settings you want
|
||||
|
||||
4. **In the Network settings**, click on:
|
||||
- `Allow SSH traffic from the internet`
|
||||
- `Allow HTTPS traffic from the internet`
|
||||
- `Allow HTTP traffic from the internet`
|
||||
|
||||
5. **Click on `Launch instance`** (If you see a warning about adding a new key pair, just skip it)
|
||||
|
||||
6. **Now go to your instance and click on `Connect`**
|
||||
|
||||
7. **Type this command** `sudo nano /etc/ssh/sshd_config` and find the line `#PermitRootLogin prohibit-password` and change it to `PermitRootLogin yes`. Save and exit.
|
||||
|
||||
8. **Restart the SSH service** by typing this command:
|
||||
```bash
|
||||
sudo systemctl restart sshd
|
||||
```
|
||||
|
||||
9. **Go back to the EC2 instance and click on `Connect`** but instead of using the default username `ec2-user`, type `root`
|
||||
|
||||
10. **Connect using the `root` user**
|
||||
|
||||
11. **Create a server in the Dokploy dashboard** in the remote server section
|
||||
|
||||
12. **Specify the server details**:
|
||||
- **IP field**: IPv4 public address of the instance
|
||||
- **Username field**: `root`
|
||||
- **SSH key**: Select the SSH key you created earlier
|
||||
- Click on `Create Server`
|
||||
|
||||
13. **Click on action `Setup Server`** in the `SSH Keys` tab, follow the manual process (Copy the Command and paste in the server manually)
|
||||
|
||||
14. **Connect to the server** - you should now be able to setup the server properly and deploy your applications
|
||||
|
||||
26
apps/docs-new/content/docs/core/remote-servers/index.mdx
Normal file
26
apps/docs-new/content/docs/core/remote-servers/index.mdx
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Remote Servers
|
||||
description: "Deploy your apps to multiple servers remotely."
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Remote servers allows you to deploy your apps remotely to different servers without needing to build and run them where the Dokploy UI is installed.
|
||||
|
||||
To use the remote servers feature, you need to have Dokploy UI installed either locally or on a remote server. We recommend using a remote server for better connectivity, security, and isolation, for remote instances we install only a traefik instance.
|
||||
|
||||
If you plan to only deploy apps to remote servers and use Dokploy UI for managing deployments, Dokploy will use around 250 MB of RAM and minimal CPU, so a low-resource server should be sufficient.
|
||||
|
||||
All the features we have documented previously are supported by Dokploy Remote Servers. The only feature not supported is remote server monitoring, due to performance reasons. However, all functionalities should work the same as when deploying on the same server where Dokploy UI is installed.
|
||||
|
||||
## Features
|
||||
|
||||
1. **Enter the terminal**: Allows you to access the terminal of the remote server.
|
||||
2. **Setup Server**: Allows you to configure the remote server.
|
||||
- **SSH Keys**: Steps to add SSH keys to the remote server.
|
||||
- **Deployments**: Steps to configure the remote server for deploying applications.
|
||||
3. **Edit Server**: Allows you to modify the remote server's details, such as SSH key, name, description, IP, etc.
|
||||
4. **View Actions**: Lets you perform actions like managing the Traefik instance, storage, and activating Docker cleanup.
|
||||
5. **Show Traefik File System**: Displays the contents of the remote server's directory.
|
||||
6. **Show Docker Containers**: Shows the Docker containers running on the remote server.
|
||||
7. **Show Docker Swarm Overview**: Shows the Docker Swarm overview of the remote server.
|
||||
121
apps/docs-new/content/docs/core/remote-servers/instructions.mdx
Normal file
121
apps/docs-new/content/docs/core/remote-servers/instructions.mdx
Normal file
@@ -0,0 +1,121 @@
|
||||
---
|
||||
title: Instructions
|
||||
description: "Example to setup a remote server and deploy application in a VPS."
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Remote servers allows you to deploy your apps remotely to different servers without needing to build and run them where the Dokploy UI is installed.
|
||||
|
||||
## Requirements
|
||||
|
||||
1. To install Dokploy UI, follow the [installation guide](en/docs/core/get-started/installation).
|
||||
|
||||
<Callout type="warning">
|
||||
If your remote server is configured with a different shell (other than bash), you must configure bash as the default shell, as Dokploy has been developed and tested with bash.
|
||||
</Callout>
|
||||
|
||||
2. Create an SSH key by going to `/dashboard/settings/ssh-keys` and add a new key. Be sure to copy the public key.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/ssh-keys.png"
|
||||
alt="Architecture Diagram"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
3. Decide which remote server to deploy your apps on. We recommend these reliable providers:
|
||||
|
||||
- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% off with this [referral link](https://www.hostinger.com/vps-hosting?REFERRALCODE=1SIUMAURICI97).
|
||||
- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) Get $200 credits for free with this [referral link](https://m.do.co/c/db24efd43f35).
|
||||
- [Hetzner](https://www.hetzner.com/cloud/) Get €20 credits with this [referral link](https://hetzner.cloud/?ref=vou4fhxJ1W2D).
|
||||
- [Vultr](https://www.vultr.com/pricing/#cloud-compute) Referral Link: [Referral Link](https://www.vultr.com/?ref=9679828)
|
||||
- [Linode](https://www.linode.com/es/pricing/#compute-shared).
|
||||
- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available).
|
||||
- [Google Cloud](https://cloud.google.com/).
|
||||
- [AWS](https://aws.amazon.com/ec2/pricing/).
|
||||
|
||||
4. When creating the server, it should ask for SSH keys. Ideally, use your computer's public key and the key you generated in the previous step. Here's how to add the public key in Hostinger:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/hostinger-add-sshkey.png"
|
||||
alt="Adding SSH key"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
<Callout>The steps are similar across other providers.</Callout>
|
||||
|
||||
5. Copy the server’s IP address and ensure you know the username (often `root`). Fill in all fields and click `Create`.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-add-server.png"
|
||||
alt="Add server"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
6. To test connectivity, open the server dropdown and click `Enter Terminal`. If everything is correct, you should be able to interact with the remote server.
|
||||
|
||||
7. Click `Setup Server` to proceed. There are two tabs: SSH Keys and Deployments. This guide explains the easy way, but you can follow the manual process via the Dokploy UI if you prefer.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-2.png"
|
||||
alt="Setup process"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
8. Click `Deployments`, then `Setup Server`. If everything is correct, you should see output similar to this:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-3.png"
|
||||
alt="Server setup output"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
<Callout>
|
||||
You only need to run this setup once. If Dokploy updates later, check the
|
||||
release notes to see if rerunning this command is required.
|
||||
</Callout>
|
||||
|
||||
9. You're ready to deploy your apps! Let's test it out:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-add-app.png"
|
||||
alt="Add app"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
10. To check which server an app belongs to, you’ll see the server name at the top. If no server is selected, it defaults to `Dokploy Server`. Click `Deploy` to start building your app on the remote server. You can check the `Logs` tab to see the build process. For this example, we’ll use a test repo:
|
||||
Repo: `https://github.com/Dokploy/examples.git`
|
||||
Branch: `main`
|
||||
Build Path: `/astro`
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-app.png"
|
||||
alt="App setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
11. Once the build is done, go to `Domains` and create a free domain. Just click `Create` and you’re good to go! 🎊
|
||||
|
||||
{" "}
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-finish.png"
|
||||
alt="Finished setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
56
apps/docs-new/content/docs/core/remote-servers/security.mdx
Normal file
56
apps/docs-new/content/docs/core/remote-servers/security.mdx
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: Security
|
||||
description: "Security features of Dokploy"
|
||||
---
|
||||
|
||||
Dokploy provides comprehensive security recommendations to protect your remote server. Our security checks ensure your server follows best practices for a secure deployment environment.
|
||||
|
||||
## Security Recommendations
|
||||
|
||||
### Operating System
|
||||
- Currently supports Ubuntu/Debian OS (Experimental)
|
||||
- Regular system updates recommended
|
||||
|
||||
### UFW (Uncomplicated Firewall)
|
||||
UFW is an essential security component that manages incoming and outgoing network traffic.
|
||||
|
||||
**Recommended Configuration:**
|
||||
- ✅ UFW should be installed
|
||||
- ✅ UFW should be active
|
||||
- ✅ Default incoming policy should be set to 'deny'
|
||||
- ✅ Only necessary ports should be opened
|
||||
|
||||
### SSH Security
|
||||
Secure Shell (SSH) configuration is crucial for safe remote server access.
|
||||
|
||||
**Best Practices:**
|
||||
- ✅ SSH service should be enabled
|
||||
- ✅ Key-based authentication should be enabled
|
||||
- ❌ Password authentication should be disabled
|
||||
- ❌ PAM should be disabled when using key-based authentication
|
||||
- ✅ Use non-standard SSH port (optional)
|
||||
|
||||
### Fail2Ban Protection
|
||||
Fail2Ban helps prevent brute force attacks by temporarily banning IPs that show malicious behavior.
|
||||
|
||||
**Recommended Setup:**
|
||||
- ✅ Fail2Ban should be installed
|
||||
- ✅ Service should be enabled and running
|
||||
- ✅ SSH protection should be enabled
|
||||
- ✅ Use aggressive mode for enhanced security
|
||||
|
||||
## Security Status Check
|
||||
|
||||
Dokploy automatically validates these security configurations and provides recommendations:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/images/server-security.png"
|
||||
alt="Security"
|
||||
width={1000}
|
||||
height={600}
|
||||
/>
|
||||
|
||||
|
||||
## Warning
|
||||
|
||||
These security measures are essential baseline recommendations. Depending on your specific use case, additional security measures might be necessary.
|
||||
22
apps/docs-new/content/docs/core/remote-servers/validate.mdx
Normal file
22
apps/docs-new/content/docs/core/remote-servers/validate.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Validate
|
||||
description: "Validate your remote server deployment"
|
||||
---
|
||||
|
||||
Dokploy requires the following 7 components to be properly configured for the multi-server feature:
|
||||
|
||||
1. **Docker Installed**: Docker must be installed on the remote server.
|
||||
2. **RClone Installed**: RClone must be installed on the remote server.
|
||||
3. **Nixpacks Installed**: Nixpacks must be installed on the remote server.
|
||||
4. **Buildpacks Installed**: Buildpacks must be installed on the remote server.
|
||||
5. **Docker Swarm Initialized**: Docker Swarm must be initialized on the remote server.
|
||||
6. **Dokploy Network Created**: A Docker network for Dokploy must be created on the remote server.
|
||||
7. **Main Directory Created**: A directory must be created on the remote server to store applications.
|
||||
|
||||
Once all requirements are met, you will see a green checkmark next to each item in the validation section.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/images/server-validate.png"
|
||||
alt="Multi-Server Setup"
|
||||
width={1000}
|
||||
height={600} />
|
||||
Reference in New Issue
Block a user