Skip to content

Commit 02f2829

Browse files
committed
Merge branch 'canary' into chore/bump-mongo
2 parents ab69d78 + b2ca51c commit 02f2829

663 files changed

Lines changed: 295232 additions & 37631 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Dockerfile for DevContainer
2+
FROM node:24.4.0-bullseye-slim
3+
4+
# Install essential packages
5+
RUN apt-get update && apt-get install -y \
6+
curl \
7+
bash \
8+
git \
9+
&& apt-get clean \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
# Set up PNPM
13+
ENV PNPM_HOME="/pnpm"
14+
ENV PATH="$PNPM_HOME:$PATH"
15+
RUN corepack enable && corepack prepare pnpm@10.22.0 --activate
16+
17+
# Create workspace directory
18+
WORKDIR /workspaces/dokploy
19+
20+
# Set up user permissions
21+
USER node

.devcontainer/devcontainer.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"name": "Dokploy development container",
3+
"build": {
4+
"dockerfile": "Dockerfile",
5+
"context": ".."
6+
},
7+
"features": {
8+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
9+
"moby": true,
10+
"version": "latest"
11+
},
12+
"ghcr.io/devcontainers/features/git:1": {
13+
"ppa": true,
14+
"version": "latest"
15+
},
16+
"ghcr.io/devcontainers/features/go:1": {
17+
"version": "1.20"
18+
}
19+
},
20+
"customizations": {
21+
"vscode": {
22+
"extensions": [
23+
"ms-vscode.vscode-typescript-next",
24+
"bradlc.vscode-tailwindcss",
25+
"ms-vscode.vscode-json",
26+
"biomejs.biome",
27+
"golang.go",
28+
"redhat.vscode-xml",
29+
"github.vscode-github-actions",
30+
"github.copilot",
31+
"github.copilot-chat"
32+
]
33+
}
34+
},
35+
"forwardPorts": [3000, 5432, 6379],
36+
"portsAttributes": {
37+
"3000": {
38+
"label": "Dokploy App",
39+
"onAutoForward": "notify"
40+
},
41+
"5432": {
42+
"label": "PostgreSQL",
43+
"onAutoForward": "silent"
44+
},
45+
"6379": {
46+
"label": "Redis",
47+
"onAutoForward": "silent"
48+
}
49+
},
50+
"remoteUser": "node",
51+
"workspaceFolder": "/workspaces/dokploy",
52+
"runArgs": ["--name", "dokploy-devcontainer"]
53+
}

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Before submitting this PR, please make sure that:
88

99
- [ ] You created a dedicated branch based on the `canary` branch.
1010
- [ ] You have read the suggestions in the CONTRIBUTING.md file https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#pull-request
11-
- [ ] You have tested this PR in your local instance.
11+
- [ ] You have tested this PR in your local instance. If you have not tested it yet, please do so before submitting. This helps avoid wasting maintainers' time reviewing code that has not been verified by you.
1212

1313
## Issues related (if applicable)
1414

.github/workflows/deploy.yml

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ jobs:
1313
- name: Checkout repository
1414
uses: actions/checkout@v3
1515

16+
- name: Set tag and version
17+
id: meta-cloud
18+
run: |
19+
VERSION=$(jq -r .version apps/dokploy/package.json)
20+
echo "version=$VERSION" >> $GITHUB_OUTPUT
21+
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
22+
echo "tags=siumauricio/cloud:latest,siumauricio/cloud:${VERSION}" >> $GITHUB_OUTPUT
23+
else
24+
echo "tags=siumauricio/cloud:canary" >> $GITHUB_OUTPUT
25+
fi
26+
1627
- name: Log in to Docker Hub
1728
uses: docker/login-action@v2
1829
with:
@@ -25,8 +36,7 @@ jobs:
2536
context: .
2637
file: ./Dockerfile.cloud
2738
push: true
28-
tags: |
29-
siumauricio/cloud:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
39+
tags: ${{ steps.meta-cloud.outputs.tags }}
3040
platforms: linux/amd64
3141
build-args: |
3242
NEXT_PUBLIC_UMAMI_HOST=${{ secrets.NEXT_PUBLIC_UMAMI_HOST }}
@@ -40,6 +50,16 @@ jobs:
4050
- name: Checkout repository
4151
uses: actions/checkout@v3
4252

53+
- name: Set tag and version
54+
id: meta-schedule
55+
run: |
56+
VERSION=$(jq -r .version apps/dokploy/package.json)
57+
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
58+
echo "tags=siumauricio/schedule:latest,siumauricio/schedule:${VERSION}" >> $GITHUB_OUTPUT
59+
else
60+
echo "tags=siumauricio/schedule:canary" >> $GITHUB_OUTPUT
61+
fi
62+
4363
- name: Log in to Docker Hub
4464
uses: docker/login-action@v2
4565
with:
@@ -52,8 +72,7 @@ jobs:
5272
context: .
5373
file: ./Dockerfile.schedule
5474
push: true
55-
tags: |
56-
siumauricio/schedule:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
75+
tags: ${{ steps.meta-schedule.outputs.tags }}
5776
platforms: linux/amd64
5877

5978
build-and-push-server-image:
@@ -63,6 +82,16 @@ jobs:
6382
- name: Checkout repository
6483
uses: actions/checkout@v3
6584

85+
- name: Set tag and version
86+
id: meta-server
87+
run: |
88+
VERSION=$(jq -r .version apps/dokploy/package.json)
89+
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
90+
echo "tags=siumauricio/server:latest,siumauricio/server:${VERSION}" >> $GITHUB_OUTPUT
91+
else
92+
echo "tags=siumauricio/server:canary" >> $GITHUB_OUTPUT
93+
fi
94+
6695
- name: Log in to Docker Hub
6796
uses: docker/login-action@v2
6897
with:
@@ -75,6 +104,5 @@ jobs:
75104
context: .
76105
file: ./Dockerfile.server
77106
push: true
78-
tags: |
79-
siumauricio/server:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
107+
tags: ${{ steps.meta-server.outputs.tags }}
80108
platforms: linux/amd64

.github/workflows/pr-quality.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
name: PR Quality
3+
4+
permissions:
5+
contents: read
6+
issues: read
7+
pull-requests: write
8+
9+
on:
10+
pull_request_target:
11+
types: [opened, reopened]
12+
13+
jobs:
14+
anti-slop:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: peakoss/anti-slop@v0
18+
with:
19+
blocked-commit-authors: "claude,copilot"
20+
require-description: true
21+
min-account-age: 5

.github/workflows/pull-request.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ jobs:
1818
- uses: pnpm/action-setup@v4
1919
- uses: actions/setup-node@v4
2020
with:
21-
node-version: 20.16.0
21+
node-version: 24.4.0
2222
cache: "pnpm"
2323

2424
- name: Install Nixpacks
2525
if: matrix.job == 'test'
2626
run: |
27-
export NIXPACKS_VERSION=1.39.0
27+
export NIXPACKS_VERSION=1.41.0
2828
curl -sSL https://nixpacks.com/install.sh | bash
2929
echo "Nixpacks installed $NIXPACKS_VERSION"
30-
30+
3131
- name: Install Railpack
3232
if: matrix.job == 'test'
3333
run: |
34-
export RAILPACK_VERSION=0.15.0
34+
export RAILPACK_VERSION=0.15.4
3535
curl -sSL https://railpack.com/install.sh | bash
3636
echo "Railpack installed $RAILPACK_VERSION"
3737

.github/workflows/sync-openapi-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: pnpm/action-setup@v4
2525
- uses: actions/setup-node@v4
2626
with:
27-
node-version: 20.16.0
27+
node-version: 24.4.0
2828
cache: "pnpm"
2929

3030
- name: Install dependencies

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20.16.0
1+
24.4.0

CONTRIBUTING.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Hey, thanks for your interest in contributing to Dokploy! We appreciate your help and taking your time to contribute.
44

5-
Before you start, please first discuss the feature/bug you want to add with the owners and comunity via github issues.
5+
Before you start, please first discuss the feature/bug you want to add with the owners and community via github issues.
66

77
We have a few guidelines to follow when contributing to this project:
88

@@ -11,6 +11,7 @@ We have a few guidelines to follow when contributing to this project:
1111
- [Development](#development)
1212
- [Build](#build)
1313
- [Pull Request](#pull-request)
14+
- [Important Considerations](#important-considerations-for-pull-requests)
1415

1516
## Commit Convention
1617

@@ -52,7 +53,7 @@ feat: add new feature
5253

5354
Before you start, please make the clone based on the `canary` branch, since the `main` branch is the source of truth and should always reflect the latest stable release, also the PRs will be merged to the `canary` branch.
5455

55-
We use Node v20.16.0 and recommend this specific version. If you have nvm installed, you can run `nvm install 20.16.0 && nvm use` in the root directory.
56+
We use Node v24.4.0 and recommend this specific version. If you have nvm installed, you can run `nvm install 24.4.0 && nvm use` in the root directory.
5657

5758
```bash
5859
git clone https://github.com/dokploy/dokploy.git
@@ -98,7 +99,14 @@ pnpm run dokploy:build
9899

99100
## Docker
100101

101-
To build the docker image
102+
To build the docker image first run commands to copy .env files
103+
104+
```bash
105+
cp apps/dokploy/.env.production.example .env.production
106+
cp apps/dokploy/.env.production.example apps/dokploy/.env.production
107+
```
108+
109+
then run build command
102110

103111
```bash
104112
pnpm run docker:build
@@ -148,7 +156,7 @@ curl -sSL https://railpack.com/install.sh | sh
148156

149157
```bash
150158
# Install Buildpacks
151-
curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.35.0/pack-v0.35.0-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
159+
curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.39.1/pack-v0.39.1-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
152160
```
153161

154162
## Pull Request
@@ -162,11 +170,13 @@ curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.35.0/pack-v0.
162170
- If your pull request fixes an open issue, please reference the issue in the pull request description.
163171
- Once your pull request is merged, you will be automatically added as a contributor to the project.
164172

165-
**Important Considerations for Pull Requests:**
173+
### Important Considerations for Pull Requests
166174

175+
- **Testing is Mandatory:** All Pull Requests **must be tested** by the PR author before submission. You must verify that your changes work as expected in a local development environment (see [Setup](#setup)). **Pull Requests that have not been tested by their creator will be rejected.** This policy keeps the PR history clean and values contributors who submit verified, working code. Untested PRs are often recognizable by disproportionately large or scattered changes for simple tasks—please test first.
167176
- **Focus and Scope:** Each Pull Request should ideally address a single, well-defined problem or introduce one new feature. This greatly facilitates review and reduces the chances of introducing unintended side effects.
168177
- **Avoid Unfocused Changes:** Please avoid submitting Pull Requests that contain only minor changes such as whitespace adjustments, IDE-generated formatting, or removal of unused variables, unless these are part of a larger, clearly defined refactor or a dedicated "cleanup" Pull Request that addresses a specific `good first issue` or maintenance task.
169178
- **Issue Association:** For any significant change, it's highly recommended to open an issue first to discuss the proposed solution with the community and maintainers. This ensures alignment and avoids duplicated effort. If your PR resolves an existing issue, please link it in the description (e.g., `Fixes #123`, `Closes #456`).
179+
- **Large Features:** Pull Requests that introduce very large or broad features **will not be accepted** unless the idea is first outlined and discussed in a GitHub issue. Large features should be designed together with the Dokploy team so the project stays coherent and moves in the same direction. Open an issue to propose and align on the design before implementing.
170180

171181
Thank you for your contribution!
172182

Dockerfile

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# syntax=docker/dockerfile:1
2-
FROM node:20.16.0-slim AS base
2+
FROM node:24.4.0-slim AS base
33
ENV PNPM_HOME="/pnpm"
44
ENV PATH="$PNPM_HOME:$PATH"
55
RUN corepack enable
6-
RUN corepack prepare pnpm@9.12.0 --activate
6+
RUN corepack prepare pnpm@10.22.0 --activate
77

88
FROM base AS build
99
COPY . /usr/src/app
@@ -20,7 +20,7 @@ ENV NODE_ENV=production
2020
RUN pnpm --filter=@dokploy/server build
2121
RUN pnpm --filter=./apps/dokploy run build
2222

23-
RUN pnpm --filter=./apps/dokploy --prod deploy /prod/dokploy
23+
RUN pnpm --filter=./apps/dokploy --prod deploy --legacy /prod/dokploy
2424

2525
RUN cp -R /usr/src/app/apps/dokploy/.next /prod/dokploy/.next
2626
RUN cp -R /usr/src/app/apps/dokploy/dist /prod/dokploy/dist
@@ -51,18 +51,22 @@ RUN curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh --ver
5151
# Install Nixpacks and tsx
5252
# | VERBOSE=1 VERSION=1.21.0 bash
5353

54-
ARG NIXPACKS_VERSION=1.39.0
54+
ARG NIXPACKS_VERSION=1.41.0
5555
RUN curl -sSL https://nixpacks.com/install.sh -o install.sh \
5656
&& chmod +x install.sh \
5757
&& ./install.sh \
5858
&& pnpm install -g tsx
5959

6060
# Install Railpack
61-
ARG RAILPACK_VERSION=0.2.2
61+
ARG RAILPACK_VERSION=0.15.4
6262
RUN curl -sSL https://railpack.com/install.sh | bash
6363

6464
# Install buildpacks
65-
COPY --from=buildpacksio/pack:0.35.0 /usr/local/bin/pack /usr/local/bin/pack
65+
COPY --from=buildpacksio/pack:0.39.1 /usr/local/bin/pack /usr/local/bin/pack
6666

6767
EXPOSE 3000
68-
CMD [ "pnpm", "start" ]
68+
69+
HEALTHCHECK --interval=10s --timeout=3s --retries=10 \
70+
CMD curl -fs http://localhost:3000/api/trpc/settings.health || exit 1
71+
72+
CMD ["sh", "-c", "pnpm run wait-for-postgres && exec pnpm start"]

0 commit comments

Comments
 (0)