Skip to content

Commit 819de5a

Browse files
authored
Merge pull request #677 from Dokploy/canary
v0.11.0
2 parents 5cd624c + e0fe4e4 commit 819de5a

File tree

40 files changed

+870
-77
lines changed

40 files changed

+870
-77
lines changed

.github/sponsors/mandarin.png

22.5 KB
Loading

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ Dokploy includes multiple features to make your life easier.
3939

4040
To get started, run the following command on a VPS:
4141

42+
Want to skip the installation process? [Try the Dokploy Cloud](https://app.dokploy.com).
43+
4244
```bash
4345
curl -sSL https://dokploy.com/install.sh | sh
4446
```
@@ -60,12 +62,15 @@ For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com).
6062
### Hero Sponsors 🎖
6163

6264
<div style="display: flex; align-items: center; gap: 20px;">
63-
<a href="https://www.hostinger.com/vps-hosting?ref=dokploy" target="_blank" style="display: inline-block;">
65+
<a href="https://www.hostinger.com/vps-hosting?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 10px;">
6466
<img src=".github/sponsors/hostinger.jpg" alt="Hostinger" height="50"/>
6567
</a>
66-
<a href="https://www.lxaer.com/?ref=dokploy" target="_blank" style="display: inline-block;">
68+
<a href="https://www.lxaer.com/?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 10px;">
6769
<img src=".github/sponsors/lxaer.png" alt="LX Aer" height="50"/>
6870
</a>
71+
<a href="https://mandarin3d.com/?ref=dokploy" target="_blank" style="display: inline-block;">
72+
<img src=".github/sponsors/mandarin.png" alt="Mandarin" height="50"/>
73+
</a>
6974
</div>
7075

7176
### Premium Supporters 🥇

apps/dokploy/__test__/compose/domain/labels.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,30 @@ describe("createDomainLabels", () => {
2626
"traefik.http.routers.test-app-1-web.entrypoints=web",
2727
"traefik.http.services.test-app-1-web.loadbalancer.server.port=8080",
2828
"traefik.http.routers.test-app-1-web.service=test-app-1-web",
29+
"traefik.http.routers.test-app-1-web.rule=PathPrefix(`/`)",
2930
]);
3031
});
3132

3233
it("should create labels for websecure entrypoint", async () => {
3334
const labels = await createDomainLabels(appName, baseDomain, "websecure");
35+
expect(labels).toEqual([
36+
"traefik.http.routers.test-app-1-websecure.rule=Host(`example.com`)",
37+
"traefik.http.routers.test-app-1-websecure.entrypoints=websecure",
38+
"traefik.http.services.test-app-1-websecure.loadbalancer.server.port=8080",
39+
"traefik.http.routers.test-app-1-websecure.service=test-app-1-websecure",
40+
"traefik.http.routers.test-app-1-websecure.rule=PathPrefix(`/`)",
41+
]);
42+
});
43+
44+
it("shouldn't add the path prefix if is empty", async () => {
45+
const labels = await createDomainLabels(
46+
appName,
47+
{
48+
...baseDomain,
49+
path: "",
50+
},
51+
"websecure",
52+
);
3453
expect(labels).toEqual([
3554
"traefik.http.routers.test-app-1-websecure.rule=Host(`example.com`)",
3655
"traefik.http.routers.test-app-1-websecure.entrypoints=websecure",

apps/dokploy/components/dashboard/application/advanced/ports/update-port.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ export const UpdatePort = ({ portId }: Props) => {
140140
<FormItem>
141141
<FormLabel>Target Port</FormLabel>
142142
<FormControl>
143-
<Input placeholder="1-65535" {...field} />
143+
<NumberInput placeholder="1-65535" {...field} />
144144
</FormControl>
145145

146146
<FormMessage />

apps/dokploy/components/dashboard/settings/git/github/add-github-provider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const AddGithubProvider = () => {
5353
<Dialog open={isOpen} onOpenChange={setIsOpen}>
5454
<DialogTrigger asChild>
5555
<Button variant="secondary" className="flex items-center space-x-1">
56-
<GithubIcon />
56+
<GithubIcon className="text-current fill-current" />
5757
<span>Github</span>
5858
</Button>
5959
</DialogTrigger>

apps/dokploy/components/dashboard/settings/servers/actions/toggle-docker-cleanup.tsx

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,27 @@ export const ToggleDockerCleanup = ({ serverId }: Props) => {
2323
const enabled = data?.enableDockerCleanup || server?.enableDockerCleanup;
2424

2525
const { mutateAsync } = api.settings.updateDockerCleanup.useMutation();
26+
27+
const handleToggle = async (checked: boolean) => {
28+
try {
29+
await mutateAsync({
30+
enableDockerCleanup: checked,
31+
serverId: serverId,
32+
});
33+
if (serverId) {
34+
await refetchServer();
35+
} else {
36+
await refetch();
37+
}
38+
toast.success("Docker Cleanup updated");
39+
} catch (error) {
40+
toast.error("Docker Cleanup Error");
41+
}
42+
};
43+
2644
return (
2745
<div className="flex items-center gap-4">
28-
<Switch
29-
checked={enabled}
30-
onCheckedChange={async (e) => {
31-
await mutateAsync({
32-
enableDockerCleanup: e,
33-
serverId: serverId,
34-
})
35-
.then(async () => {
36-
toast.success("Docker Cleanup Enabled");
37-
})
38-
.catch(() => {
39-
toast.error("Docker Cleanup Error");
40-
});
41-
42-
if (serverId) {
43-
refetchServer();
44-
} else {
45-
refetch();
46-
}
47-
}}
48-
/>
46+
<Switch checked={!!enabled} onCheckedChange={handleToggle} />
4947
<Label className="text-primary">Daily Docker Cleanup</Label>
5048
</div>
5149
);

apps/dokploy/components/icons/data-tools-icons.tsx

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -161,29 +161,27 @@ export const GitlabIcon = ({ className }: Props) => {
161161
return (
162162
<svg
163163
aria-label="gitlab"
164-
height="14"
165-
viewBox="0 0 24 22"
166164
width="14"
167-
className={cn("fill-white text-white", className)}
165+
height="14"
166+
viewBox="0 0 14 14"
167+
xmlns="http://www.w3.org/2000/svg"
168+
className={cn("text-white", className)}
168169
>
169170
<path
170-
d="M1.279 8.29L.044 12.294c-.117.367 0 .78.325 1.014l11.323 8.23-.009-.012-.03-.039L1.279 8.29zM22.992 13.308a.905.905 0 00.325-1.014L22.085 8.29 11.693 21.52l11.299-8.212z"
171-
fill="currentColor"
171+
d="m13.767 5.854-.02-.05L11.842.83a.5.5 0 0 0-.493-.312.5.5 0 0 0-.287.107.5.5 0 0 0-.169.257L9.607 4.819h-5.21L3.11.883A.5.5 0 0 0 2.162.83L.252 5.801l-.018.05a3.54 3.54 0 0 0 1.173 4.09l.007.005.017.012 2.903 2.174L5.77 13.22l.875.66a.59.59 0 0 0 .711 0l.875-.66 1.436-1.087 2.92-2.187.008-.006a3.54 3.54 0 0 0 1.172-4.085"
172+
fill="#E24329"
172173
/>
173174
<path
174-
d="M1.279 8.29l10.374 13.197.03.039.01-.006L22.085 8.29H1.28z"
175-
fill="currentColor"
176-
opacity="0.4"
175+
d="m13.767 5.854-.02-.05a6.4 6.4 0 0 0-2.562 1.152L7 10.12l2.666 2.015 2.92-2.187.007-.006a3.54 3.54 0 0 0 1.174-4.088"
176+
fill="#FC6D26"
177177
/>
178178
<path
179-
d="M15.982 8.29l-4.299 13.236-.004.011.014-.017L22.085 8.29h-6.103zM7.376 8.29H1.279l10.374 13.197L7.376 8.29z"
180-
fill="currentColor"
181-
opacity="0.6"
179+
d="m4.334 12.135 1.436 1.087.875.66a.59.59 0 0 0 .711 0l.875-.66 1.436-1.087S8.425 11.195 7 10.12c-1.425 1.075-2.666 2.015-2.666 2.015"
180+
fill="#FCA326"
182181
/>
183182
<path
184-
d="M18.582.308l-2.6 7.982h6.103L19.48.308c-.133-.41-.764-.41-.897 0zM1.279 8.29L3.88.308c.133-.41.764-.41.897 0l2.6 7.982H1.279z"
185-
fill="currentColor"
186-
opacity="0.4"
183+
d="M2.814 6.956A6.4 6.4 0 0 0 .253 5.8l-.02.05a3.54 3.54 0 0 0 1.174 4.09l.007.005.017.012 2.903 2.174L7 10.117z"
184+
fill="#FC6D26"
187185
/>
188186
</svg>
189187
);
@@ -200,7 +198,7 @@ export const GithubIcon = ({ className }: Props) => {
200198
>
201199
<path
202200
d="M7 .175c-3.872 0-7 3.128-7 7 0 3.084 2.013 5.71 4.79 6.65.35.066.482-.153.482-.328v-1.181c-1.947.415-2.363-.941-2.363-.941-.328-.81-.787-1.028-.787-1.028-.634-.438.044-.416.044-.416.7.044 1.071.722 1.071.722.635 1.072 1.641.766 2.035.59.066-.459.24-.765.437-.94-1.553-.175-3.193-.787-3.193-3.456 0-.766.262-1.378.721-1.881-.065-.175-.306-.897.066-1.86 0 0 .59-.197 1.925.722a6.754 6.754 0 0 1 1.75-.24c.59 0 1.203.087 1.75.24 1.335-.897 1.925-.722 1.925-.722.372.963.131 1.685.066 1.86.46.48.722 1.115.722 1.88 0 2.691-1.641 3.282-3.194 3.457.24.219.481.634.481 1.29v1.926c0 .197.131.415.481.328C11.988 12.884 14 10.259 14 7.175c0-3.872-3.128-7-7-7z"
203-
fill="#fff"
201+
fill="currentColor"
204202
fillRule="nonzero"
205203
/>
206204
</svg>
@@ -209,30 +207,34 @@ export const GithubIcon = ({ className }: Props) => {
209207

210208
export const BitbucketIcon = ({ className }: Props) => {
211209
return (
212-
<svg height="14" viewBox="-2 -2 65 59" width="14" className={className}>
210+
<svg
211+
width="14"
212+
height="13"
213+
viewBox="0 0 14 13"
214+
xmlns="http://www.w3.org/2000/svg"
215+
className={className}
216+
>
217+
<path
218+
d="M.454 0a.448.448 0 0 0-.448.52l1.903 11.556a.61.61 0 0 0 .597.509h9.132a.45.45 0 0 0 .448-.377L13.994.525a.448.448 0 0 0-.448-.52zM8.47 8.352H5.555l-.79-4.121h4.411z"
219+
fill="#2684FF"
220+
/>
221+
<path
222+
d="M13.384 4.23H9.176L8.47 8.353H5.555L2.113 12.44c.11.095.248.147.393.148h9.134a.45.45 0 0 0 .448-.377z"
223+
fill="url(#a)"
224+
/>
213225
<defs>
214226
<linearGradient
215-
id="bitbucket-:R7aq37rqjt7rrrmpjtuj7l9qjtsr:"
216-
x1="104.953%"
217-
x2="46.569%"
218-
y1="21.921%"
219-
y2="75.234%"
227+
id="a"
228+
x1="14.357"
229+
y1="5.383"
230+
x2="7.402"
231+
y2="10.814"
232+
gradientUnits="userSpaceOnUse"
220233
>
221-
<stop offset="7%" stopColor="currentColor" stopOpacity=".4" />
222-
<stop offset="100%" stopColor="currentColor" />
234+
<stop offset=".18" stop-color="#0052CC" />
235+
<stop offset="1" stop-color="#2684FF" />
223236
</linearGradient>
224237
</defs>
225-
<path
226-
d="M59.696 18.86h-18.77l-3.15 18.39h-13L9.426 55.47a2.71 2.71 0 001.75.66h40.74a2 2 0 002-1.68l5.78-35.59z"
227-
fill="url(#bitbucket-:R7aq37rqjt7rrrmpjtuj7l9qjtsr:)"
228-
fillRule="nonzero"
229-
transform="translate(-.026 .82)"
230-
/>
231-
<path
232-
d="M2 .82a2 2 0 00-2 2.32l8.49 51.54a2.7 2.7 0 00.91 1.61 2.71 2.71 0 001.75.66l15.76-18.88H24.7l-3.47-18.39h38.44l2.7-16.53a2 2 0 00-2-2.32L2 .82z"
233-
fill="currentColor"
234-
fillRule="nonzero"
235-
/>
236238
</svg>
237239
);
238240
};

apps/dokploy/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dokploy",
3-
"version": "v0.10.10",
3+
"version": "v0.11.0",
44
"private": true,
55
"license": "Apache-2.0",
66
"type": "module",
@@ -11,7 +11,7 @@
1111
"build-next": "next build",
1212
"setup": "tsx -r dotenv/config setup.ts && sleep 5 && pnpm run migration:run",
1313
"reset-password": "node -r dotenv/config dist/reset-password.mjs",
14-
"dev": "TURBOPACK=1 tsx -r dotenv/config ./server/server.ts --project tsconfig.server.json ",
14+
"dev": "tsx -r dotenv/config ./server/server.ts --project tsconfig.server.json ",
1515
"studio": "drizzle-kit studio --config ./server/db/drizzle.config.ts",
1616
"migration:generate": "drizzle-kit generate --config ./server/db/drizzle.config.ts",
1717
"migration:run": "tsx -r dotenv/config migration.ts",
Lines changed: 1 addition & 0 deletions
Loading
12.7 KB
Loading

0 commit comments

Comments
 (0)