Skip to content

Commit fe22890

Browse files
authored
Merge pull request #156 from Dokploy/canary
v0.2.3
2 parents 2b7c763 + 3f2eeaf commit fe22890

File tree

24 files changed

+198
-55
lines changed

24 files changed

+198
-55
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Bug Report
2+
description: Create a bug report
3+
labels: ['bug']
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Before opening a new issue, please do a search of existing issues.
9+
10+
If you need help with your own project, you can start a discussion in the [Q&A Section](https://github.com/Dokploy/dokploy/discussions).
11+
- type: textarea
12+
attributes:
13+
label: To Reproduce
14+
description: A step-by-step description of how to reproduce the issue, or a link to the reproducible repository.
15+
placeholder: |
16+
1. Create a application
17+
2. Click X
18+
3. Y will happen
19+
validations:
20+
required: true
21+
- type: textarea
22+
attributes:
23+
label: Current vs. Expected behavior
24+
description: A clear and concise description of what the bug is, and what you expected to happen.
25+
placeholder: 'Following the steps from the previous section, I expected A to happen, but I observed B instead'
26+
validations:
27+
required: true
28+
- type: textarea
29+
attributes:
30+
label: Provide environment information
31+
description: Please provide the following information about your environment.
32+
render: bash
33+
placeholder: |
34+
Operating System:
35+
OS: Ubuntu 20.04
36+
Arch: arm64
37+
Dokploy version: 0.2.2'
38+
VPS Provider: DigitalOcean, Hetzner, Linode, etc.
39+
What applications/services are you tying to deploy?
40+
eg - Database, Nextjs App, laravel, etc.
41+
validations:
42+
required: true
43+
- type: dropdown
44+
attributes:
45+
label: Which area(s) are affected? (Select all that apply)
46+
multiple: true
47+
options:
48+
- 'Installation'
49+
- 'Application'
50+
- 'Databases'
51+
- 'Docker Compose'
52+
- 'Traefik'
53+
- 'Docker'
54+
validations:
55+
required: true
56+
- type: textarea
57+
attributes:
58+
label: Additional context
59+
description: |
60+
Any extra information that might help us investigate.
61+
placeholder: |
62+
I tested on a DigitalOcean VPS with Ubuntu 20.04 and Docker version 20.10.12.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Questions?
4+
url: https://github.com/Dokploy/dokploy/discussions
5+
about: Ask your questions here.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement to the project
3+
labels: ['enhancement']
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: What problem will this feature address?
8+
description: A clear and concise description of what the problem is.
9+
placeholder: |
10+
I'm always frustrated when I can't do X
11+
validations:
12+
required: true
13+
- type: textarea
14+
attributes:
15+
label: Describe the solution you'd like
16+
description: A clear and concise description of what you want to happen.
17+
placeholder: Add X to the core
18+
validations:
19+
required: true
20+
- type: textarea
21+
attributes:
22+
label: Describe alternatives you've considered
23+
description: A clear and concise description of any alternative solutions or features you've considered.
24+
placeholder: |
25+
Maybe use Y as a workaround?
26+
validations:
27+
required: true
28+
- type: textarea
29+
attributes:
30+
label: Additional context
31+
description: Add any other context or screenshots about the feature request here.
32+
validations:
33+
required: false

README.md

Lines changed: 60 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
11

2-
32
<div align="center">
43
<h1 align="center">Dokploy</h1>
5-
</div>
4+
<div>
5+
<img style="object-fit: cover; border-radius:20px;" align="center" width="50%"src="https://raw.githubusercontent.com/Dokploy/docs/main/public/logo.png" >
66

7-
<div align="center" style="width:100%;">
8-
<img src="https://raw.githubusercontent.com/Dokploy/dokploy/main/logo.png" alt="Reflex Logo" style="width:60%;">
97
</div>
10-
<hr>
11-
12-
138

14-
Dokploy is a free self-hostable Platform as a Service (PaaS) that simplifies the deployment and management of applications and databases using Docker and Traefik. Designed to enhance efficiency and security, Dokploy allows you to deploy your applications on any VPS.
9+
</div>
1510

11+
<br />
12+
Dokploy is a free self-hostable Platform as a Service (PaaS) that simplifies the deployment and management of applications and databases.
1613

1714

18-
## Explanation
19-
[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md)
15+
### Features
2016

17+
Dokploy include multiples features to make your life easier.
2118

2219

20+
* **Applications**: Deploy any type of application (Node.js, PHP, Python, Go, Ruby, etc.).
21+
* **Databases**: Create and manage databases with support for MySQL, PostgreSQL, MongoDB, MariaDB, Redis.
22+
* **Backups**: Automate backups for databases to a external storage destination.
23+
* **Docker Compose**: Native support for Docker Compose to manage complex applications.
24+
* **Multi Node**: Scale applications to multiples nodes using docker swarm to manage the cluster.
25+
* **Templates**: Deploy in a single click open source templates (Plausible, Pocketbase, Calcom, etc.).
26+
* **Traefik Integration**: Automatically integrates with Traefik for routing and load balancing.
27+
* **Real-time Monitoring**: Monitor CPU, memory, storage, and network usage, for every resource.
28+
* **Docker Management**: Easily deploy and manage Docker containers.
29+
* **CLI (Soon⌛)**: Manage your applications and databases using the command line.
30+
* **Self-Hosted**: Self-host Dokploy on your VPS.
2331

24-
## 🌟 Features
2532

26-
- **Applications**: Deploy any type of application (Node.js, PHP, Python, Go, Ruby, etc.) with ease.
27-
- **Databases**: Create and manage databases with support for MySQL, PostgreSQL, MongoDB, MariaDB, Redis, and more.
28-
- **Docker Management**: Easily deploy and manage Docker containers.
29-
- **Traefik Integration**: Automatically integrates with Traefik for routing and load balancing.
30-
- **Real-time Monitoring**: Monitor CPU, memory, storage, and network usage.
31-
- **Database Backups**: Automate backups with support for multiple storage destinations.
3233

3334

3435
## 🚀 Getting Started
@@ -40,20 +41,54 @@ To get started run the following command in a VPS:
4041
curl -sSL https://dokploy.com/install.sh | sh
4142
```
4243

43-
Tested Systems:
4444

45-
- Ubuntu 24.04 LTS (Noble Numbat)
46-
- Ubuntu 23.10 (Mantic Minotaur)
47-
- Ubuntu 22.04 LTS (Jammy Jellyfish)
48-
- Ubuntu 20.04 LTS (Focal Fossa)
49-
- Ubuntu 18.04 LTS (Bionic Beaver)
45+
## 📄 Documentation
46+
47+
For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com).
48+
49+
50+
## Video Tutorial
51+
<a href="https://youtu.be/mznYKPvhcfw">
52+
<img src="https://dokploy.com/banner.webp" alt="Watch the video" width="400" style="border-radius:20px;"/>
53+
</a>
54+
55+
56+
## Donations
57+
58+
If you like dokploy, and want to support the project to cover the costs of hosting, testing and development new features, you can donate to the project using the following link:
59+
60+
Thanks to all the supporters!
61+
62+
https://opencollective.com/dokploy
63+
64+
65+
<a href="https://opencollective.com/dokploy"><img src="https://opencollective.com/dokploy/individuals.svg?width=890"></a>
66+
67+
68+
## Contributors
69+
70+
<a href="https://github.com/dokploy/dokploy/graphs/contributors">
71+
<img src="https://contrib.rocks/image?repo=dokploy/dokploy" />
72+
</a>
73+
74+
75+
76+
## Support OS
77+
78+
- Ubuntu 24.04 LTS
79+
- Ubuntu 23.10
80+
- Ubuntu 22.04 LTS
81+
- Ubuntu 20.04 LTS
82+
- Ubuntu 18.04 LTS
5083
- Debian 12
5184
- Debian 11
5285
- Fedora 40
5386
- Centos 9
5487
- Centos 8
5588

56-
## 📄 Documentation
5789

58-
For detailed documentation, visit [docs.dokploy.com/docs](https://docs.dokploy.com).
90+
91+
## Explanation
92+
[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md)
93+
5994

components/dashboard/application/advanced/traefik/update-traefik-config.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
import { api } from "@/utils/api";
2020
import { AlertBlock } from "@/components/shared/alert-block";
2121
import { zodResolver } from "@hookform/resolvers/zod";
22-
import { useEffect } from "react";
22+
import { useEffect, useState } from "react";
2323
import { useForm } from "react-hook-form";
2424
import { toast } from "sonner";
2525
import { z } from "zod";
@@ -58,6 +58,7 @@ export const validateAndFormatYAML = (yamlText: string) => {
5858
};
5959

6060
export const UpdateTraefikConfig = ({ applicationId }: Props) => {
61+
const [open, setOpen] = useState(false);
6162
const { data, refetch } = api.application.readTraefikConfig.useQuery(
6263
{
6364
applicationId,
@@ -81,7 +82,7 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => {
8182
traefikConfig: data || "",
8283
});
8384
}
84-
}, [form, form.reset, data]);
85+
}, [data]);
8586

8687
const onSubmit = async (data: UpdateTraefikConfig) => {
8788
const { valid, error } = validateAndFormatYAML(data.traefikConfig);
@@ -100,14 +101,21 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => {
100101
.then(async () => {
101102
toast.success("Traefik config Updated");
102103
refetch();
104+
setOpen(false);
105+
form.reset();
103106
})
104107
.catch(() => {
105108
toast.error("Error to update the traefik config");
106109
});
107110
};
108111

109112
return (
110-
<Dialog>
113+
<Dialog open={open} onOpenChange={(open) => {
114+
setOpen(open)
115+
if (!open) {
116+
form.reset();
117+
}
118+
}}>
111119
<DialogTrigger asChild>
112120
<Button isLoading={isLoading}>Modify</Button>
113121
</DialogTrigger>
@@ -122,7 +130,7 @@ export const UpdateTraefikConfig = ({ applicationId }: Props) => {
122130
<form
123131
id="hook-form-update-traefik-config"
124132
onSubmit={form.handleSubmit(onSubmit)}
125-
className="grid w-full py-4 overflow-auto"
133+
className="w-full space-y-4 overflow-auto"
126134
>
127135
<div className="flex flex-col">
128136
<FormField

components/dashboard/application/advanced/volumes/add-volumes.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ export const AddVolumes = ({
189189
/>
190190
<Label
191191
htmlFor="bind"
192-
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary"
192+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary cursor-pointer"
193193
>
194194
Bind Mount
195195
</Label>
@@ -209,7 +209,7 @@ export const AddVolumes = ({
209209
/>
210210
<Label
211211
htmlFor="volume"
212-
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary"
212+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary cursor-pointer"
213213
>
214214
Volume Mount
215215
</Label>
@@ -233,7 +233,7 @@ export const AddVolumes = ({
233233
/>
234234
<Label
235235
htmlFor="file"
236-
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary"
236+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground peer-data-[state=checked]:border-primary [&:has([data-state=checked])]:border-primary cursor-pointer"
237237
>
238238
File Mount
239239
</Label>

components/dashboard/application/environment/show.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export const ShowEnvironment = ({ applicationId }: Props) => {
124124
<form
125125
id="hook-form"
126126
onSubmit={form.handleSubmit(onSubmit)}
127-
className="grid w-full gap-4 "
127+
className="w-full space-y-4"
128128
>
129129
<FormField
130130
control={form.control}

components/dashboard/compose/enviroment/show.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export const ShowEnvironmentCompose = ({ composeId }: Props) => {
124124
<form
125125
id="hook-form"
126126
onSubmit={form.handleSubmit(onSubmit)}
127-
className="grid w-full gap-4 "
127+
className="w-full space-y-4"
128128
>
129129
<FormField
130130
control={form.control}

components/dashboard/compose/general/compose-file-editor.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export const ComposeFileEditor = ({ composeId }: Props) => {
8787
<Form {...form}>
8888
<form
8989
onSubmit={form.handleSubmit(onSubmit)}
90-
className="grid w-full relative gap-4"
90+
className="w-full relative space-y-4"
9191
>
9292
<FormField
9393
control={form.control}
@@ -99,8 +99,8 @@ export const ComposeFileEditor = ({ composeId }: Props) => {
9999
<CodeEditor
100100
// disabled
101101
value={field.value}
102-
className="font-mono min-h-[20rem] compose-file-editor"
103-
wrapperClassName="min-h-[20rem]"
102+
className="font-mono"
103+
wrapperClassName="compose-file-editor"
104104
placeholder={`version: '3'
105105
services:
106106
web:

components/dashboard/file-system/show-traefik-file.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const ShowTraefikFile = ({ path }: Props) => {
9090
<Form {...form}>
9191
<form
9292
onSubmit={form.handleSubmit(onSubmit)}
93-
className="grid w-full relative z-[5]"
93+
className="w-full relative z-[5]"
9494
>
9595
<div className="flex flex-col overflow-auto">
9696
<FormField

0 commit comments

Comments
 (0)