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:
Mauricio Siu
2025-12-07 05:39:06 -06:00
parent 95682a01c2
commit f9bf220bb1
22 changed files with 674 additions and 67 deletions

View File

@@ -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}
/>

View File

@@ -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

View 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.

View 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 servers 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, youll 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, well 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 youre good to go! 🎊
{" "}
<ImageZoom
src="/assets/multi-server-finish.png"
alt="Finished setup"
width={1000}
height={600}
className="rounded-lg"
/>

View 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.

View 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} />