Skip to content

Commit 0494f9a

Browse files
authored
Merge branch 'coollabsio:main' into service-getoutline
2 parents c402d7f + e42c7e2 commit 0494f9a

File tree

73 files changed

+2049
-644
lines changed

Some content is hidden

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

73 files changed

+2049
-644
lines changed

.github/ISSUE_TEMPLATE/BUG_REPORT.yml

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,65 @@
1-
name: Bug report
2-
description: "Create a new bug report."
1+
name: 🐞 Bug Report
2+
description: "File a new bug report."
33
title: "[Bug]: "
4+
labels: ["🐛 Bug", "🔍 Triage"]
45
body:
56
- type: markdown
67
attributes:
7-
value: >-
8-
# 💎 Bounty program (with
9-
[algora.io](https://console.algora.io/org/coollabsio/bounties/new))
8+
value: |
9+
> [!IMPORTANT]
10+
> **Please ensure you are using the latest version of Coolify before submitting an issue, as the bug may have already been fixed in a recent update.** (Of course, if you're experiencing an issue on the latest version that wasn't present in a previous version, please let us know.)
1011
12+
# 💎 Bounty Program (with [algora.io](https://console.algora.io/org/coollabsio/bounties/new))
13+
- If you would like to prioritize the issue resolution, consider adding a bounty to this issue through our [Bounty Program](https://console.algora.io/org/coollabsio/bounties/new).
1114
12-
If you would like to prioritize the issue resolution, you can add bounty
13-
to this issue.
14-
15-
16-
Click [here](https://console.algora.io/org/coollabsio/bounties/new) to
17-
get started.
1815
- type: textarea
1916
attributes:
20-
label: Description
21-
description: A clear and concise description of the problem
17+
label: Error Message and Logs
18+
description: Provide a detailed description of the error or exception you encountered, along with any relevant log output.
19+
validations:
20+
required: true
21+
2222
- type: textarea
2323
attributes:
24-
label: Minimal Reproduction (if possible, example repository)
25-
description: Please provide a step by step guide to reproduce the issue.
24+
label: Steps to Reproduce
25+
description: Please provide a step-by-step guide to reproduce the issue. Be as detailed as possible, otherwise we may not be able to assist you.
26+
value: |
27+
1.
28+
2.
29+
3.
30+
4.
2631
validations:
2732
required: true
28-
- type: textarea
33+
34+
- type: input
2935
attributes:
30-
label: Exception or Error
31-
description: Please provide error logs if possible.
36+
label: Example Repository URL
37+
description: If applicable, provide a URL to a repository demonstrating the issue.
38+
3239
- type: input
3340
attributes:
34-
label: Version
35-
description: Coolify's version (see top of your screen).
41+
label: Coolify Version
42+
description: Please provide the Coolify version you are using. This can be found in the top left corner of your Coolify dashboard.
43+
placeholder: "v4.0.0-beta.335"
3644
validations:
3745
required: true
38-
- type: checkboxes
46+
47+
- type: dropdown
3948
attributes:
40-
label: Cloud?
41-
description: "Are you using the cloud version of Coolify?"
49+
label: Are you using Coolify Cloud?
4250
options:
43-
- label: 'Yes'
44-
required: false
45-
- label: 'No'
46-
required: false
51+
- "No (self-hosted)"
52+
- "Yes (Coolify Cloud)"
53+
validations:
54+
required: true
55+
56+
- type: input
57+
attributes:
58+
label: Operating System and Version (self-hosted)
59+
description: Run `cat /etc/os-release` or `lsb_release -a` in your terminal and provide the operating system and version.
60+
placeholder: "Ubuntu 22.04"
61+
62+
- type: textarea
63+
attributes:
64+
label: Additional Information
65+
description: Any other relevant details about the issue.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: 💎 Enhancement Bounty
2+
description: "Propose a new feature, service, or improvement with an attached bounty."
3+
title: "[Enhancement]: "
4+
labels: ["✨ Enhancement", "🔍 Triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
> [!IMPORTANT]
10+
> **This issue template is exclusively for proposing new features, services, or improvements with an attached bounty.** Enhancements without a bounty can be discussed in the appropriate category of [Github Discussions](https://github.com/coollabsio/coolify/discussions).
11+
12+
# 💎 Add a Bounty (with [algora.io](https://console.algora.io/org/coollabsio/bounties/new))
13+
- [Click here to add the required bounty](https://console.algora.io/org/coollabsio/bounties/new)
14+
15+
- type: dropdown
16+
attributes:
17+
label: Request Type
18+
description: Select the type of request you are making.
19+
options:
20+
- New Feature
21+
- New Service
22+
- Improvement
23+
validations:
24+
required: true
25+
26+
- type: textarea
27+
attributes:
28+
label: Description
29+
description: Provide a detailed description of the feature, improvement, or service you are proposing.
30+
validations:
31+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
blank_issues_enabled: false
2+
23
contact_links:
3-
- name: 🤔 Community Support (Chat)
4+
- name: 🤔 Questions and Community Support
45
url: https://coollabs.io/discord
5-
about: Reach out to us on Discord.
6-
- name: 🙋‍♂️ Feature Requests
7-
url: https://github.com/coollabsio/coolify/discussions/categories/new-features
8-
about: All feature requests will be discussed here.
6+
about: If you have any questions, reach out to us on Discord inside the "#support" channel.
7+
8+
- name: 💡 Feature Request
9+
url: https://github.com/coollabsio/coolify/discussions/categories/feature-requests
10+
about: Suggest a new feature for Coolify.
11+
12+
- name: ⚙️ Service Request
13+
url: https://github.com/coollabsio/coolify/discussions/categories/service-requests
14+
about: Request a new service integration for Coolify.
15+
16+
- name: 🔧 Improvements
17+
url: https://github.com/coollabsio/coolify/discussions/categories/improvements
18+
about: Suggest improvements to existing features for Coolify.

.github/workflows/coolify-helper.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Coolify Helper Image (v4)
22

33
on:
44
push:
5-
branches: [ "main", "next" ]
5+
branches: [ "main" ]
66
paths:
77
- .github/workflows/coolify-helper.yml
88
- docker/coolify-helper/Dockerfile
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Coolify Realtime (v4)
2+
3+
on:
4+
push:
5+
branches: [ "main", "next" ]
6+
paths:
7+
- .github/workflows/coolify-realtime.yml
8+
- docker/coolify-realtime/Dockerfile
9+
- docker/coolify-realtime/terminal-server.js
10+
- docker/coolify-realtime/package.json
11+
- docker/coolify-realtime/soketi-entrypoint.sh
12+
13+
env:
14+
REGISTRY: ghcr.io
15+
IMAGE_NAME: "coollabsio/coolify-realtime"
16+
17+
jobs:
18+
amd64:
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
packages: write
23+
steps:
24+
- uses: actions/checkout@v4
25+
- name: Login to ghcr.io
26+
uses: docker/login-action@v3
27+
with:
28+
registry: ${{ env.REGISTRY }}
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
- name: Get Version
32+
id: version
33+
run: |
34+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
35+
- name: Build image and push to registry
36+
uses: docker/build-push-action@v5
37+
with:
38+
no-cache: true
39+
context: .
40+
file: docker/coolify-realtime/Dockerfile
41+
platforms: linux/amd64
42+
push: true
43+
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}
44+
labels: |
45+
coolify.managed=true
46+
aarch64:
47+
runs-on: [ self-hosted, arm64 ]
48+
permissions:
49+
contents: read
50+
packages: write
51+
steps:
52+
- uses: actions/checkout@v4
53+
- name: Login to ghcr.io
54+
uses: docker/login-action@v3
55+
with:
56+
registry: ${{ env.REGISTRY }}
57+
username: ${{ github.actor }}
58+
password: ${{ secrets.GITHUB_TOKEN }}
59+
- name: Get Version
60+
id: version
61+
run: |
62+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
63+
- name: Build image and push to registry
64+
uses: docker/build-push-action@v5
65+
with:
66+
no-cache: true
67+
context: .
68+
file: docker/coolify-realtime/Dockerfile
69+
platforms: linux/aarch64
70+
push: true
71+
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64
72+
labels: |
73+
coolify.managed=true
74+
merge-manifest:
75+
runs-on: ubuntu-latest
76+
permissions:
77+
contents: read
78+
packages: write
79+
needs: [ amd64, aarch64 ]
80+
steps:
81+
- name: Checkout
82+
uses: actions/checkout@v4
83+
- name: Set up QEMU
84+
uses: docker/setup-qemu-action@v3
85+
- name: Set up Docker Buildx
86+
uses: docker/setup-buildx-action@v3
87+
- name: Login to ghcr.io
88+
uses: docker/login-action@v3
89+
with:
90+
registry: ${{ env.REGISTRY }}
91+
username: ${{ github.actor }}
92+
password: ${{ secrets.GITHUB_TOKEN }}
93+
- name: Get Version
94+
id: version
95+
run: |
96+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
97+
- name: Create & publish manifest
98+
run: |
99+
docker buildx imagetools create --append ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-aarch64 --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
100+
- uses: sarisia/actions-status-discord@v1
101+
if: always()
102+
with:
103+
webhook: ${{ secrets.DISCORD_WEBHOOK_PROD_RELEASE_CHANNEL }}

.github/workflows/pr-build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
packages: write
2222
attestations: write
2323
id-token: write
24+
actions: write
2425
steps:
2526
- uses: actions/checkout@v4
2627
- name: Login to ghcr.io
@@ -44,6 +45,7 @@ jobs:
4445
packages: write
4546
attestations: write
4647
id-token: write
48+
actions: write
4749
steps:
4850
- uses: actions/checkout@v4
4951
- name: Login to ghcr.io
@@ -67,6 +69,7 @@ jobs:
6769
packages: write
6870
attestations: write
6971
id-token: write
72+
actions: write
7073
needs: [amd64, aarch64]
7174
steps:
7275
- name: Checkout
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Remove Labels and Assignees on Issue Close
2+
3+
on:
4+
issues:
5+
types: [closed]
6+
pull_request:
7+
types: [closed]
8+
pull_request_target:
9+
types: [closed]
10+
11+
jobs:
12+
remove-labels-and-assignees:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Remove labels and assignees
16+
uses: actions/github-script@v7
17+
with:
18+
github-token: ${{ secrets.GITHUB_TOKEN }}
19+
script: |
20+
const { owner, repo } = context.repo;
21+
22+
async function processIssue(issueNumber) {
23+
try {
24+
const { data: currentLabels } = await github.rest.issues.listLabelsOnIssue({
25+
owner,
26+
repo,
27+
issue_number: issueNumber
28+
});
29+
30+
const labelsToKeep = currentLabels
31+
.filter(label => label.name === '⏱︎ Stale')
32+
.map(label => label.name);
33+
34+
await github.rest.issues.setLabels({
35+
owner,
36+
repo,
37+
issue_number: issueNumber,
38+
labels: labelsToKeep
39+
});
40+
41+
const { data: issue } = await github.rest.issues.get({
42+
owner,
43+
repo,
44+
issue_number: issueNumber
45+
});
46+
47+
if (issue.assignees && issue.assignees.length > 0) {
48+
await github.rest.issues.removeAssignees({
49+
owner,
50+
repo,
51+
issue_number: issueNumber,
52+
assignees: issue.assignees.map(assignee => assignee.login)
53+
});
54+
}
55+
} catch (error) {
56+
if (error.status !== 404) {
57+
console.error(`Error processing issue ${issueNumber}:`, error);
58+
}
59+
}
60+
}
61+
62+
if (context.eventName === 'issues' || context.eventName === 'pull_request' || context.eventName === 'pull_request_target') {
63+
const issue = context.payload.issue || context.payload.pull_request;
64+
await processIssue(issue.number);
65+
}
66+
67+
if (context.eventName === 'pull_request' || context.eventName === 'pull_request_target') {
68+
const { data: closedIssues } = await github.rest.search.issuesAndPullRequests({
69+
q: `repo:${owner}/${repo} is:issue is:closed linked:${context.payload.pull_request.number}`,
70+
per_page: 100
71+
});
72+
for (const issue of closedIssues.items) {
73+
await processIssue(issue.number);
74+
}
75+
}

0 commit comments

Comments
 (0)