mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
parent
346c6f5414
commit
a43dfc097d
152
.github/workflows/build-branch.yml
vendored
152
.github/workflows/build-branch.yml
vendored
@ -2,11 +2,6 @@ name: Branch Build
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
branch_name:
|
|
||||||
description: "Branch Name"
|
|
||||||
required: true
|
|
||||||
default: "preview"
|
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
@ -16,49 +11,71 @@ on:
|
|||||||
types: [released, prereleased]
|
types: [released, prereleased]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TARGET_BRANCH: ${{ inputs.branch_name || github.ref_name || github.event.release.target_commitish }}
|
TARGET_BRANCH: ${{ github.ref_name || github.event.release.target_commitish }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
branch_build_setup:
|
branch_build_setup:
|
||||||
name: Build-Push Web/Space/API/Proxy Docker Image
|
name: Build-Push Web/Space/API/Proxy Docker Image
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
|
||||||
- name: Check out the repo
|
|
||||||
uses: actions/checkout@v3.3.0
|
|
||||||
outputs:
|
outputs:
|
||||||
gh_branch_name: ${{ env.TARGET_BRANCH }}
|
gh_branch_name: ${{ steps.set_env_variables.outputs.TARGET_BRANCH }}
|
||||||
|
gh_buildx_driver: ${{ steps.set_env_variables.outputs.BUILDX_DRIVER }}
|
||||||
|
gh_buildx_version: ${{ steps.set_env_variables.outputs.BUILDX_VERSION }}
|
||||||
|
gh_buildx_platforms: ${{ steps.set_env_variables.outputs.BUILDX_PLATFORMS }}
|
||||||
|
gh_buildx_endpoint: ${{ steps.set_env_variables.outputs.BUILDX_ENDPOINT }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- id: set_env_variables
|
||||||
|
name: Set Environment Variables
|
||||||
|
run: |
|
||||||
|
if [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
|
||||||
|
echo "BUILDX_DRIVER=cloud" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_VERSION=lab:latest" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_PLATFORMS=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_ENDPOINT=makeplane/plane-dev" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "BUILDX_DRIVER=docker-container" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_VERSION=latest" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_PLATFORMS=linux/amd64" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILDX_ENDPOINT=local" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
echo "TARGET_BRANCH=${{ env.TARGET_BRANCH }}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
branch_build_push_frontend:
|
branch_build_push_frontend:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
needs: [branch_build_setup]
|
needs: [branch_build_setup]
|
||||||
env:
|
env:
|
||||||
FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
|
||||||
|
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
|
||||||
|
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
|
||||||
|
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
|
||||||
steps:
|
steps:
|
||||||
- name: Set Frontend Docker Tag
|
- name: Set Frontend Docker Tag
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ github.event.release.tag_name }}
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ github.event.release.tag_name }}
|
||||||
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
|
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:stable
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:stable
|
||||||
else
|
else
|
||||||
TAG=${{ env.FRONTEND_TAG }}
|
TAG=${{ env.FRONTEND_TAG }}
|
||||||
fi
|
fi
|
||||||
echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV
|
echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV
|
||||||
- name: Docker Setup QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3.0.0
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3.0.0
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v3.0.0
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: ${{ env.BUILDX_DRIVER }}
|
||||||
|
version: ${{ env.BUILDX_VERSION }}
|
||||||
|
endpoint: ${{ env.BUILDX_ENDPOINT }}
|
||||||
|
|
||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.1
|
||||||
|
|
||||||
@ -67,7 +84,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./web/Dockerfile.web
|
file: ./web/Dockerfile.web
|
||||||
platforms: linux/amd64
|
platforms: ${{ env.BUILDX_PLATFORMS }}
|
||||||
tags: ${{ env.FRONTEND_TAG }}
|
tags: ${{ env.FRONTEND_TAG }}
|
||||||
push: true
|
push: true
|
||||||
env:
|
env:
|
||||||
@ -80,33 +97,36 @@ jobs:
|
|||||||
needs: [branch_build_setup]
|
needs: [branch_build_setup]
|
||||||
env:
|
env:
|
||||||
SPACE_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
SPACE_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
|
||||||
|
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
|
||||||
|
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
|
||||||
|
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
|
||||||
steps:
|
steps:
|
||||||
- name: Set Space Docker Tag
|
- name: Set Space Docker Tag
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ github.event.release.tag_name }}
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ github.event.release.tag_name }}
|
||||||
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
|
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:stable
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:stable
|
||||||
else
|
else
|
||||||
TAG=${{ env.SPACE_TAG }}
|
TAG=${{ env.SPACE_TAG }}
|
||||||
fi
|
fi
|
||||||
echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV
|
echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Docker Setup QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3.0.0
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3.0.0
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v3.0.0
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: ${{ env.BUILDX_DRIVER }}
|
||||||
|
version: ${{ env.BUILDX_VERSION }}
|
||||||
|
endpoint: ${{ env.BUILDX_ENDPOINT }}
|
||||||
|
|
||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.1
|
||||||
|
|
||||||
@ -115,7 +135,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./space/Dockerfile.space
|
file: ./space/Dockerfile.space
|
||||||
platforms: linux/amd64
|
platforms: ${{ env.BUILDX_PLATFORMS }}
|
||||||
tags: ${{ env.SPACE_TAG }}
|
tags: ${{ env.SPACE_TAG }}
|
||||||
push: true
|
push: true
|
||||||
env:
|
env:
|
||||||
@ -128,33 +148,36 @@ jobs:
|
|||||||
needs: [branch_build_setup]
|
needs: [branch_build_setup]
|
||||||
env:
|
env:
|
||||||
BACKEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
BACKEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
|
||||||
|
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
|
||||||
|
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
|
||||||
|
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
|
||||||
steps:
|
steps:
|
||||||
- name: Set Backend Docker Tag
|
- name: Set Backend Docker Tag
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ github.event.release.tag_name }}
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ github.event.release.tag_name }}
|
||||||
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
|
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:stable
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:stable
|
||||||
else
|
else
|
||||||
TAG=${{ env.BACKEND_TAG }}
|
TAG=${{ env.BACKEND_TAG }}
|
||||||
fi
|
fi
|
||||||
echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV
|
echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Docker Setup QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3.0.0
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3.0.0
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v3.0.0
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: ${{ env.BUILDX_DRIVER }}
|
||||||
|
version: ${{ env.BUILDX_VERSION }}
|
||||||
|
endpoint: ${{ env.BUILDX_ENDPOINT }}
|
||||||
|
|
||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.1
|
||||||
|
|
||||||
@ -163,7 +186,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: ./apiserver
|
context: ./apiserver
|
||||||
file: ./apiserver/Dockerfile.api
|
file: ./apiserver/Dockerfile.api
|
||||||
platforms: linux/amd64
|
platforms: ${{ env.BUILDX_PLATFORMS }}
|
||||||
push: true
|
push: true
|
||||||
tags: ${{ env.BACKEND_TAG }}
|
tags: ${{ env.BACKEND_TAG }}
|
||||||
env:
|
env:
|
||||||
@ -171,38 +194,42 @@ jobs:
|
|||||||
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
|
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
|
||||||
branch_build_push_proxy:
|
branch_build_push_proxy:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
needs: [branch_build_setup]
|
needs: [branch_build_setup]
|
||||||
env:
|
env:
|
||||||
PROXY_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
PROXY_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
|
||||||
|
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
|
||||||
|
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
|
||||||
|
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
|
||||||
|
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
|
||||||
steps:
|
steps:
|
||||||
- name: Set Proxy Docker Tag
|
- name: Set Proxy Docker Tag
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ github.event.release.tag_name }}
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ github.event.release.tag_name }}
|
||||||
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
|
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
|
||||||
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:stable
|
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:stable
|
||||||
else
|
else
|
||||||
TAG=${{ env.PROXY_TAG }}
|
TAG=${{ env.PROXY_TAG }}
|
||||||
fi
|
fi
|
||||||
echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV
|
echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Docker Setup QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3.0.0
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3.0.0
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v3.0.0
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: ${{ env.BUILDX_DRIVER }}
|
||||||
|
version: ${{ env.BUILDX_VERSION }}
|
||||||
|
endpoint: ${{ env.BUILDX_ENDPOINT }}
|
||||||
|
|
||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.1.1
|
||||||
|
|
||||||
@ -211,10 +238,11 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
context: ./nginx
|
context: ./nginx
|
||||||
file: ./nginx/Dockerfile
|
file: ./nginx/Dockerfile
|
||||||
platforms: linux/amd64
|
platforms: ${{ env.BUILDX_PLATFORMS }}
|
||||||
tags: ${{ env.PROXY_TAG }}
|
tags: ${{ env.PROXY_TAG }}
|
||||||
push: true
|
push: true
|
||||||
env:
|
env:
|
||||||
DOCKER_BUILDKIT: 1
|
DOCKER_BUILDKIT: 1
|
||||||
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
|
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if the user has sudo access
|
||||||
if command -v curl &> /dev/null; then
|
if command -v curl &> /dev/null; then
|
||||||
sudo curl -sSL \
|
sudo curl -sSL \
|
||||||
-o /usr/local/bin/plane-app \
|
-o /usr/local/bin/plane-app \
|
||||||
@ -11,6 +12,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
sudo chmod +x /usr/local/bin/plane-app
|
sudo chmod +x /usr/local/bin/plane-app
|
||||||
sudo sed -i 's/export BRANCH=${BRANCH:-master}/export BRANCH='${BRANCH:-master}'/' /usr/local/bin/plane-app
|
sudo sed -i 's/export DEPLOY_BRANCH=${BRANCH:-master}/export DEPLOY_BRANCH='${BRANCH:-master}'/' /usr/local/bin/plane-app
|
||||||
|
|
||||||
sudo plane-app --help
|
plane-app --help
|
||||||
|
@ -17,7 +17,7 @@ Project management tool from the future
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
function update_env_files() {
|
function update_env_file() {
|
||||||
config_file=$1
|
config_file=$1
|
||||||
key=$2
|
key=$2
|
||||||
value=$3
|
value=$3
|
||||||
@ -25,14 +25,16 @@ function update_env_files() {
|
|||||||
# Check if the config file exists
|
# Check if the config file exists
|
||||||
if [ ! -f "$config_file" ]; then
|
if [ ! -f "$config_file" ]; then
|
||||||
echo "Config file not found. Creating a new one..." >&2
|
echo "Config file not found. Creating a new one..." >&2
|
||||||
touch "$config_file"
|
sudo touch "$config_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if the key already exists in the config file
|
# Check if the key already exists in the config file
|
||||||
if grep -q "^$key=" "$config_file"; then
|
if sudo grep "^$key=" "$config_file"; then
|
||||||
awk -v key="$key" -v value="$value" -F '=' '{if ($1 == key) $2 = value} 1' OFS='=' "$config_file" > "$config_file.tmp" && mv "$config_file.tmp" "$config_file"
|
sudo awk -v key="$key" -v value="$value" -F '=' '{if ($1 == key) $2 = value} 1' OFS='=' "$config_file" | sudo tee "$config_file.tmp" > /dev/null
|
||||||
|
sudo mv "$config_file.tmp" "$config_file" &> /dev/null
|
||||||
else
|
else
|
||||||
echo "$key=$value" >> "$config_file"
|
# sudo echo "$key=$value" >> "$config_file"
|
||||||
|
echo -e "$key=$value" | sudo tee -a "$config_file" > /dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function read_env_file() {
|
function read_env_file() {
|
||||||
@ -42,12 +44,12 @@ function read_env_file() {
|
|||||||
# Check if the config file exists
|
# Check if the config file exists
|
||||||
if [ ! -f "$config_file" ]; then
|
if [ ! -f "$config_file" ]; then
|
||||||
echo "Config file not found. Creating a new one..." >&2
|
echo "Config file not found. Creating a new one..." >&2
|
||||||
touch "$config_file"
|
sudo touch "$config_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if the key already exists in the config file
|
# Check if the key already exists in the config file
|
||||||
if grep -q "^$key=" "$config_file"; then
|
if sudo grep -q "^$key=" "$config_file"; then
|
||||||
value=$(awk -v key="$key" -F '=' '{if ($1 == key) print $2}' "$config_file")
|
value=$(sudo awk -v key="$key" -F '=' '{if ($1 == key) print $2}' "$config_file")
|
||||||
echo "$value"
|
echo "$value"
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
@ -55,19 +57,19 @@ function read_env_file() {
|
|||||||
}
|
}
|
||||||
function update_config() {
|
function update_config() {
|
||||||
config_file="$PLANE_INSTALL_DIR/config.env"
|
config_file="$PLANE_INSTALL_DIR/config.env"
|
||||||
update_env_files "$config_file" "$1" "$2"
|
update_env_file $config_file $1 $2
|
||||||
}
|
}
|
||||||
function read_config() {
|
function read_config() {
|
||||||
config_file="$PLANE_INSTALL_DIR/config.env"
|
config_file="$PLANE_INSTALL_DIR/config.env"
|
||||||
read_env_file "$config_file" "$1"
|
read_env_file $config_file $1
|
||||||
}
|
}
|
||||||
function update_env() {
|
function update_env() {
|
||||||
config_file="$PLANE_INSTALL_DIR/.env"
|
config_file="$PLANE_INSTALL_DIR/.env"
|
||||||
update_env_files "$config_file" "$1" "$2"
|
update_env_file $config_file $1 $2
|
||||||
}
|
}
|
||||||
function read_env() {
|
function read_env() {
|
||||||
config_file="$PLANE_INSTALL_DIR/.env"
|
config_file="$PLANE_INSTALL_DIR/.env"
|
||||||
read_env_file "$config_file" "$1"
|
read_env_file $config_file $1
|
||||||
}
|
}
|
||||||
function show_message() {
|
function show_message() {
|
||||||
print_header
|
print_header
|
||||||
@ -87,14 +89,14 @@ function prepare_environment() {
|
|||||||
show_message "Prepare Environment..." >&2
|
show_message "Prepare Environment..." >&2
|
||||||
|
|
||||||
show_message "- Updating OS with required tools ✋" >&2
|
show_message "- Updating OS with required tools ✋" >&2
|
||||||
sudo apt-get update -y &> /dev/null
|
sudo "$PACKAGE_MANAGER" update -y
|
||||||
sudo apt-get upgrade -y &> /dev/null
|
sudo "$PACKAGE_MANAGER" upgrade -y
|
||||||
|
|
||||||
required_tools=("curl" "awk" "wget" "nano" "dialog" "git")
|
local required_tools=("curl" "awk" "wget" "nano" "dialog" "git" "uidmap")
|
||||||
|
|
||||||
for tool in "${required_tools[@]}"; do
|
for tool in "${required_tools[@]}"; do
|
||||||
if ! command -v $tool &> /dev/null; then
|
if ! command -v $tool &> /dev/null; then
|
||||||
sudo apt install -y $tool &> /dev/null
|
sudo "$PACKAGE_MANAGER" install -y $tool
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -103,11 +105,30 @@ function prepare_environment() {
|
|||||||
# Install Docker if not installed
|
# Install Docker if not installed
|
||||||
if ! command -v docker &> /dev/null; then
|
if ! command -v docker &> /dev/null; then
|
||||||
show_message "- Installing Docker ✋" >&2
|
show_message "- Installing Docker ✋" >&2
|
||||||
sudo curl -o- https://get.docker.com | bash -
|
# curl -o- https://get.docker.com | bash -
|
||||||
|
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$PACKAGE_MANAGER" == "yum" ]; then
|
||||||
dockerd-rootless-setuptool.sh install &> /dev/null
|
sudo $PACKAGE_MANAGER install -y yum-utils
|
||||||
|
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo &> /dev/null
|
||||||
|
elif [ "$PACKAGE_MANAGER" == "apt-get" ]; then
|
||||||
|
# Add Docker's official GPG key:
|
||||||
|
sudo $PACKAGE_MANAGER update
|
||||||
|
sudo $PACKAGE_MANAGER install ca-certificates curl &> /dev/null
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings &> /dev/null
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc &> /dev/null
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc &> /dev/null
|
||||||
|
|
||||||
|
# Add the repository to Apt sources:
|
||||||
|
echo \
|
||||||
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
|
||||||
|
sudo $PACKAGE_MANAGER update
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sudo $PACKAGE_MANAGER install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
|
||||||
|
|
||||||
show_message "- Docker Installed ✅" "replace_last_line" >&2
|
show_message "- Docker Installed ✅" "replace_last_line" >&2
|
||||||
else
|
else
|
||||||
show_message "- Docker is already installed ✅" >&2
|
show_message "- Docker is already installed ✅" >&2
|
||||||
@ -127,17 +148,17 @@ function prepare_environment() {
|
|||||||
function download_plane() {
|
function download_plane() {
|
||||||
# Download Docker Compose File from github url
|
# Download Docker Compose File from github url
|
||||||
show_message "Downloading Plane Setup Files ✋" >&2
|
show_message "Downloading Plane Setup Files ✋" >&2
|
||||||
curl -H 'Cache-Control: no-cache, no-store' \
|
sudo curl -H 'Cache-Control: no-cache, no-store' \
|
||||||
-s -o $PLANE_INSTALL_DIR/docker-compose.yaml \
|
-s -o $PLANE_INSTALL_DIR/docker-compose.yaml \
|
||||||
https://raw.githubusercontent.com/makeplane/plane/$BRANCH/deploy/selfhost/docker-compose.yml?$(date +%s)
|
https://raw.githubusercontent.com/makeplane/plane/$DEPLOY_BRANCH/deploy/selfhost/docker-compose.yml?token=$(date +%s)
|
||||||
|
|
||||||
curl -H 'Cache-Control: no-cache, no-store' \
|
sudo curl -H 'Cache-Control: no-cache, no-store' \
|
||||||
-s -o $PLANE_INSTALL_DIR/variables-upgrade.env \
|
-s -o $PLANE_INSTALL_DIR/variables-upgrade.env \
|
||||||
https://raw.githubusercontent.com/makeplane/plane/$BRANCH/deploy/selfhost/variables.env?$(date +%s)
|
https://raw.githubusercontent.com/makeplane/plane/$DEPLOY_BRANCH/deploy/selfhost/variables.env?token=$(date +%s)
|
||||||
|
|
||||||
# if .env does not exists rename variables-upgrade.env to .env
|
# if .env does not exists rename variables-upgrade.env to .env
|
||||||
if [ ! -f "$PLANE_INSTALL_DIR/.env" ]; then
|
if [ ! -f "$PLANE_INSTALL_DIR/.env" ]; then
|
||||||
mv $PLANE_INSTALL_DIR/variables-upgrade.env $PLANE_INSTALL_DIR/.env
|
sudo mv $PLANE_INSTALL_DIR/variables-upgrade.env $PLANE_INSTALL_DIR/.env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
show_message "Plane Setup Files Downloaded ✅" "replace_last_line" >&2
|
show_message "Plane Setup Files Downloaded ✅" "replace_last_line" >&2
|
||||||
@ -186,7 +207,7 @@ function build_local_image() {
|
|||||||
PLANE_TEMP_CODE_DIR=$PLANE_INSTALL_DIR/temp
|
PLANE_TEMP_CODE_DIR=$PLANE_INSTALL_DIR/temp
|
||||||
sudo rm -rf $PLANE_TEMP_CODE_DIR > /dev/null
|
sudo rm -rf $PLANE_TEMP_CODE_DIR > /dev/null
|
||||||
|
|
||||||
sudo git clone $REPO $PLANE_TEMP_CODE_DIR --branch $BRANCH --single-branch -q > /dev/null
|
sudo git clone $REPO $PLANE_TEMP_CODE_DIR --branch $DEPLOY_BRANCH --single-branch -q > /dev/null
|
||||||
|
|
||||||
sudo cp $PLANE_TEMP_CODE_DIR/deploy/selfhost/build.yml $PLANE_TEMP_CODE_DIR/build.yml
|
sudo cp $PLANE_TEMP_CODE_DIR/deploy/selfhost/build.yml $PLANE_TEMP_CODE_DIR/build.yml
|
||||||
|
|
||||||
@ -199,25 +220,26 @@ function check_for_docker_images() {
|
|||||||
show_message "" >&2
|
show_message "" >&2
|
||||||
# show_message "Building Plane Images" >&2
|
# show_message "Building Plane Images" >&2
|
||||||
|
|
||||||
update_env "DOCKERHUB_USER" "makeplane"
|
|
||||||
update_env "PULL_POLICY" "always"
|
|
||||||
CURR_DIR=$(pwd)
|
CURR_DIR=$(pwd)
|
||||||
|
|
||||||
if [ "$BRANCH" == "master" ]; then
|
if [ "$DEPLOY_BRANCH" == "master" ]; then
|
||||||
update_env "APP_RELEASE" "latest"
|
update_env "APP_RELEASE" "latest"
|
||||||
export APP_RELEASE=latest
|
export APP_RELEASE=latest
|
||||||
else
|
else
|
||||||
update_env "APP_RELEASE" "$BRANCH"
|
update_env "APP_RELEASE" "$DEPLOY_BRANCH"
|
||||||
export APP_RELEASE=$BRANCH
|
export APP_RELEASE=$DEPLOY_BRANCH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $CPU_ARCH == "amd64" ] || [ $CPU_ARCH == "x86_64" ]; then
|
if [ $USE_GLOBAL_IMAGES == 1 ]; then
|
||||||
# show_message "Building Plane Images for $CPU_ARCH is not required. Skipping... ✅" "replace_last_line" >&2
|
# show_message "Building Plane Images for $CPU_ARCH is not required. Skipping... ✅" "replace_last_line" >&2
|
||||||
|
export DOCKERHUB_USER=makeplane
|
||||||
|
update_env "DOCKERHUB_USER" "$DOCKERHUB_USER"
|
||||||
|
update_env "PULL_POLICY" "always"
|
||||||
echo "Building Plane Images for $CPU_ARCH is not required. Skipping..."
|
echo "Building Plane Images for $CPU_ARCH is not required. Skipping..."
|
||||||
else
|
else
|
||||||
export DOCKERHUB_USER=myplane
|
export DOCKERHUB_USER=myplane
|
||||||
show_message "Building Plane Images for $CPU_ARCH " >&2
|
show_message "Building Plane Images for $CPU_ARCH " >&2
|
||||||
update_env "DOCKERHUB_USER" "myplane"
|
update_env "DOCKERHUB_USER" "$DOCKERHUB_USER"
|
||||||
update_env "PULL_POLICY" "never"
|
update_env "PULL_POLICY" "never"
|
||||||
|
|
||||||
build_local_image
|
build_local_image
|
||||||
@ -233,7 +255,7 @@ function check_for_docker_images() {
|
|||||||
sudo sed -i "s|- uploads:|- $DATA_DIR/minio:|g" $PLANE_INSTALL_DIR/docker-compose.yaml
|
sudo sed -i "s|- uploads:|- $DATA_DIR/minio:|g" $PLANE_INSTALL_DIR/docker-compose.yaml
|
||||||
|
|
||||||
show_message "Downloading Plane Images for $CPU_ARCH ✋" >&2
|
show_message "Downloading Plane Images for $CPU_ARCH ✋" >&2
|
||||||
docker compose -f $PLANE_INSTALL_DIR/docker-compose.yaml --env-file=$PLANE_INSTALL_DIR/.env pull
|
sudo docker compose -f $PLANE_INSTALL_DIR/docker-compose.yaml --env-file=$PLANE_INSTALL_DIR/.env pull
|
||||||
show_message "Plane Images Downloaded ✅" "replace_last_line" >&2
|
show_message "Plane Images Downloaded ✅" "replace_last_line" >&2
|
||||||
}
|
}
|
||||||
function configure_plane() {
|
function configure_plane() {
|
||||||
@ -453,9 +475,11 @@ function install() {
|
|||||||
show_message ""
|
show_message ""
|
||||||
if [ "$(uname)" == "Linux" ]; then
|
if [ "$(uname)" == "Linux" ]; then
|
||||||
OS="linux"
|
OS="linux"
|
||||||
OS_NAME=$(awk -F= '/^ID=/{print $2}' /etc/os-release)
|
OS_NAME=$(sudo awk -F= '/^ID=/{print $2}' /etc/os-release)
|
||||||
# check the OS
|
OS_NAME=$(echo "$OS_NAME" | tr -d '"')
|
||||||
if [ "$OS_NAME" == "ubuntu" ]; then
|
print_header
|
||||||
|
if [ "$OS_NAME" == "ubuntu" ] || [ "$OS_NAME" == "debian" ] ||
|
||||||
|
[ "$OS_NAME" == "centos" ] || [ "$OS_NAME" == "amazon" ]; then
|
||||||
OS_SUPPORTED=true
|
OS_SUPPORTED=true
|
||||||
show_message "******** Installing Plane ********"
|
show_message "******** Installing Plane ********"
|
||||||
show_message ""
|
show_message ""
|
||||||
@ -488,7 +512,8 @@ function install() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
PROGRESS_MSG="❌❌❌ Unsupported OS Detected ❌❌❌"
|
OS_SUPPORTED=false
|
||||||
|
PROGRESS_MSG="❌❌ Unsupported OS Varient Detected : $OS_NAME ❌❌"
|
||||||
show_message ""
|
show_message ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -499,12 +524,17 @@ function install() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function upgrade() {
|
function upgrade() {
|
||||||
|
print_header
|
||||||
if [ "$(uname)" == "Linux" ]; then
|
if [ "$(uname)" == "Linux" ]; then
|
||||||
OS="linux"
|
OS="linux"
|
||||||
OS_NAME=$(awk -F= '/^ID=/{print $2}' /etc/os-release)
|
OS_NAME=$(sudo awk -F= '/^ID=/{print $2}' /etc/os-release)
|
||||||
# check the OS
|
OS_NAME=$(echo "$OS_NAME" | tr -d '"')
|
||||||
if [ "$OS_NAME" == "ubuntu" ]; then
|
if [ "$OS_NAME" == "ubuntu" ] || [ "$OS_NAME" == "debian" ] ||
|
||||||
|
[ "$OS_NAME" == "centos" ] || [ "$OS_NAME" == "amazon" ]; then
|
||||||
|
|
||||||
OS_SUPPORTED=true
|
OS_SUPPORTED=true
|
||||||
|
show_message "******** Upgrading Plane ********"
|
||||||
|
show_message ""
|
||||||
|
|
||||||
prepare_environment
|
prepare_environment
|
||||||
|
|
||||||
@ -528,53 +558,49 @@ function upgrade() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
PROGRESS_MSG="Unsupported OS Detected"
|
PROGRESS_MSG="❌❌ Unsupported OS Varient Detected : $OS_NAME ❌❌"
|
||||||
show_message ""
|
show_message ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
PROGRESS_MSG="Unsupported OS Detected : $(uname)"
|
PROGRESS_MSG="❌❌❌ Unsupported OS Detected : $(uname) ❌❌❌"
|
||||||
show_message ""
|
show_message ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function uninstall() {
|
function uninstall() {
|
||||||
|
print_header
|
||||||
if [ "$(uname)" == "Linux" ]; then
|
if [ "$(uname)" == "Linux" ]; then
|
||||||
OS="linux"
|
OS="linux"
|
||||||
OS_NAME=$(awk -F= '/^ID=/{print $2}' /etc/os-release)
|
OS_NAME=$(awk -F= '/^ID=/{print $2}' /etc/os-release)
|
||||||
# check the OS
|
OS_NAME=$(echo "$OS_NAME" | tr -d '"')
|
||||||
if [ "$OS_NAME" == "ubuntu" ]; then
|
if [ "$OS_NAME" == "ubuntu" ] || [ "$OS_NAME" == "debian" ] ||
|
||||||
|
[ "$OS_NAME" == "centos" ] || [ "$OS_NAME" == "amazon" ]; then
|
||||||
|
|
||||||
OS_SUPPORTED=true
|
OS_SUPPORTED=true
|
||||||
show_message "******** Uninstalling Plane ********"
|
show_message "******** Uninstalling Plane ********"
|
||||||
show_message ""
|
show_message ""
|
||||||
|
|
||||||
stop_server
|
stop_server
|
||||||
# CHECK IF PLANE SERVICE EXISTS
|
|
||||||
# if [ -f "/etc/systemd/system/plane.service" ]; then
|
|
||||||
# sudo systemctl stop plane.service &> /dev/null
|
|
||||||
# sudo systemctl disable plane.service &> /dev/null
|
|
||||||
# sudo rm /etc/systemd/system/plane.service &> /dev/null
|
|
||||||
# sudo systemctl daemon-reload &> /dev/null
|
|
||||||
# fi
|
|
||||||
# show_message "- Plane Service removed ✅"
|
|
||||||
|
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo "DOCKER_NOT_INSTALLED" &> /dev/null
|
echo "DOCKER_NOT_INSTALLED" &> /dev/null
|
||||||
else
|
else
|
||||||
# Ask of user input to confirm uninstall docker ?
|
# Ask of user input to confirm uninstall docker ?
|
||||||
CONFIRM_DOCKER_PURGE=$(dialog --title "Uninstall Docker" --yesno "Are you sure you want to uninstall docker ?" 8 60 3>&1 1>&2 2>&3)
|
CONFIRM_DOCKER_PURGE=$(dialog --title "Uninstall Docker" --defaultno --yesno "Are you sure you want to uninstall docker ?" 8 60 3>&1 1>&2 2>&3)
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
show_message "- Uninstalling Docker ✋"
|
show_message "- Uninstalling Docker ✋"
|
||||||
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin &> /dev/null
|
sudo docker images -q | xargs -r sudo docker rmi -f &> /dev/null
|
||||||
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin &> /dev/null
|
sudo "$PACKAGE_MANAGER" remove -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin &> /dev/null
|
||||||
|
sudo "$PACKAGE_MANAGER" autoremove -y docker-engine docker docker.io docker-ce docker-compose-plugin &> /dev/null
|
||||||
show_message "- Docker Uninstalled ✅" "replace_last_line" >&2
|
show_message "- Docker Uninstalled ✅" "replace_last_line" >&2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm $PLANE_INSTALL_DIR/.env &> /dev/null
|
sudo rm $PLANE_INSTALL_DIR/.env &> /dev/null
|
||||||
rm $PLANE_INSTALL_DIR/variables-upgrade.env &> /dev/null
|
sudo rm $PLANE_INSTALL_DIR/variables-upgrade.env &> /dev/null
|
||||||
rm $PLANE_INSTALL_DIR/config.env &> /dev/null
|
sudo rm $PLANE_INSTALL_DIR/config.env &> /dev/null
|
||||||
rm $PLANE_INSTALL_DIR/docker-compose.yaml &> /dev/null
|
sudo rm $PLANE_INSTALL_DIR/docker-compose.yaml &> /dev/null
|
||||||
|
|
||||||
# rm -rf $PLANE_INSTALL_DIR &> /dev/null
|
# rm -rf $PLANE_INSTALL_DIR &> /dev/null
|
||||||
show_message "- Configuration Cleaned ✅"
|
show_message "- Configuration Cleaned ✅"
|
||||||
@ -593,12 +619,12 @@ function uninstall() {
|
|||||||
show_message ""
|
show_message ""
|
||||||
show_message ""
|
show_message ""
|
||||||
else
|
else
|
||||||
PROGRESS_MSG="Unsupported OS Detected : $(uname) ❌"
|
PROGRESS_MSG="❌❌ Unsupported OS Varient Detected : $OS_NAME ❌❌"
|
||||||
show_message ""
|
show_message ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
PROGRESS_MSG="Unsupported OS Detected : $(uname) ❌"
|
PROGRESS_MSG="❌❌❌ Unsupported OS Detected : $(uname) ❌❌❌"
|
||||||
show_message ""
|
show_message ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -608,15 +634,15 @@ function start_server() {
|
|||||||
env_file="$PLANE_INSTALL_DIR/.env"
|
env_file="$PLANE_INSTALL_DIR/.env"
|
||||||
# check if both the files exits
|
# check if both the files exits
|
||||||
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
||||||
show_message "Starting Plane Server ✋"
|
show_message "Starting Plane Server ($APP_RELEASE) ✋"
|
||||||
docker compose -f $docker_compose_file --env-file=$env_file up -d
|
sudo docker compose -f $docker_compose_file --env-file=$env_file up -d
|
||||||
|
|
||||||
# Wait for containers to be running
|
# Wait for containers to be running
|
||||||
echo "Waiting for containers to start..."
|
echo "Waiting for containers to start..."
|
||||||
while ! docker compose -f "$docker_compose_file" --env-file="$env_file" ps --services --filter "status=running" --quiet | grep -q "."; do
|
while ! sudo docker compose -f "$docker_compose_file" --env-file="$env_file" ps --services --filter "status=running" --quiet | grep -q "."; do
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
show_message "Plane Server Started ✅" "replace_last_line" >&2
|
show_message "Plane Server Started ($APP_RELEASE) ✅" "replace_last_line" >&2
|
||||||
else
|
else
|
||||||
show_message "Plane Server not installed. Please install Plane first ❌" "replace_last_line" >&2
|
show_message "Plane Server not installed. Please install Plane first ❌" "replace_last_line" >&2
|
||||||
fi
|
fi
|
||||||
@ -626,11 +652,11 @@ function stop_server() {
|
|||||||
env_file="$PLANE_INSTALL_DIR/.env"
|
env_file="$PLANE_INSTALL_DIR/.env"
|
||||||
# check if both the files exits
|
# check if both the files exits
|
||||||
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
||||||
show_message "Stopping Plane Server ✋"
|
show_message "Stopping Plane Server ($APP_RELEASE) ✋"
|
||||||
docker compose -f $docker_compose_file --env-file=$env_file down
|
sudo docker compose -f $docker_compose_file --env-file=$env_file down
|
||||||
show_message "Plane Server Stopped ✅" "replace_last_line" >&2
|
show_message "Plane Server Stopped ($APP_RELEASE) ✅" "replace_last_line" >&2
|
||||||
else
|
else
|
||||||
show_message "Plane Server not installed. Please install Plane first ❌" "replace_last_line" >&2
|
show_message "Plane Server not installed [Skipping] ✅" "replace_last_line" >&2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function restart_server() {
|
function restart_server() {
|
||||||
@ -638,9 +664,9 @@ function restart_server() {
|
|||||||
env_file="$PLANE_INSTALL_DIR/.env"
|
env_file="$PLANE_INSTALL_DIR/.env"
|
||||||
# check if both the files exits
|
# check if both the files exits
|
||||||
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
if [ -f "$docker_compose_file" ] && [ -f "$env_file" ]; then
|
||||||
show_message "Restarting Plane Server ✋"
|
show_message "Restarting Plane Server ($APP_RELEASE) ✋"
|
||||||
docker compose -f $docker_compose_file --env-file=$env_file restart
|
sudo docker compose -f $docker_compose_file --env-file=$env_file restart
|
||||||
show_message "Plane Server Restarted ✅" "replace_last_line" >&2
|
show_message "Plane Server Restarted ($APP_RELEASE) ✅" "replace_last_line" >&2
|
||||||
else
|
else
|
||||||
show_message "Plane Server not installed. Please install Plane first ❌" "replace_last_line" >&2
|
show_message "Plane Server not installed. Please install Plane first ❌" "replace_last_line" >&2
|
||||||
fi
|
fi
|
||||||
@ -666,28 +692,45 @@ function show_help() {
|
|||||||
}
|
}
|
||||||
function update_installer() {
|
function update_installer() {
|
||||||
show_message "Updating Plane Installer ✋" >&2
|
show_message "Updating Plane Installer ✋" >&2
|
||||||
curl -H 'Cache-Control: no-cache, no-store' \
|
sudo curl -H 'Cache-Control: no-cache, no-store' \
|
||||||
-s -o /usr/local/bin/plane-app \
|
-s -o /usr/local/bin/plane-app \
|
||||||
https://raw.githubusercontent.com/makeplane/plane/$BRANCH/deploy/1-click/install.sh?token=$(date +%s)
|
https://raw.githubusercontent.com/makeplane/plane/$DEPLOY_BRANCH/deploy/1-click/plane-app?token=$(date +%s)
|
||||||
|
|
||||||
chmod +x /usr/local/bin/plane-app > /dev/null&> /dev/null
|
sudo chmod +x /usr/local/bin/plane-app > /dev/null&> /dev/null
|
||||||
show_message "Plane Installer Updated ✅" "replace_last_line" >&2
|
show_message "Plane Installer Updated ✅" "replace_last_line" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
export BRANCH=${BRANCH:-master}
|
export DEPLOY_BRANCH=${BRANCH:-master}
|
||||||
export APP_RELEASE=$BRANCH
|
export APP_RELEASE=$DEPLOY_BRANCH
|
||||||
export DOCKERHUB_USER=makeplane
|
export DOCKERHUB_USER=makeplane
|
||||||
export PULL_POLICY=always
|
export PULL_POLICY=always
|
||||||
|
|
||||||
|
if [ "$DEPLOY_BRANCH" == "master" ]; then
|
||||||
|
export APP_RELEASE=latest
|
||||||
|
fi
|
||||||
|
|
||||||
PLANE_INSTALL_DIR=/opt/plane
|
PLANE_INSTALL_DIR=/opt/plane
|
||||||
DATA_DIR=$PLANE_INSTALL_DIR/data
|
DATA_DIR=$PLANE_INSTALL_DIR/data
|
||||||
LOG_DIR=$PLANE_INSTALL_DIR/log
|
LOG_DIR=$PLANE_INSTALL_DIR/log
|
||||||
OS_SUPPORTED=false
|
OS_SUPPORTED=false
|
||||||
CPU_ARCH=$(uname -m)
|
CPU_ARCH=$(uname -m)
|
||||||
PROGRESS_MSG=""
|
PROGRESS_MSG=""
|
||||||
USE_GLOBAL_IMAGES=1
|
USE_GLOBAL_IMAGES=0
|
||||||
|
PACKAGE_MANAGER=""
|
||||||
|
|
||||||
mkdir -p $PLANE_INSTALL_DIR/{data,log}
|
if [[ $CPU_ARCH == "amd64" || $CPU_ARCH == "x86_64" || ( $DEPLOY_BRANCH == "master" && ( $CPU_ARCH == "arm64" || $CPU_ARCH == "aarch64" ) ) ]]; then
|
||||||
|
USE_GLOBAL_IMAGES=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo mkdir -p $PLANE_INSTALL_DIR/{data,log}
|
||||||
|
|
||||||
|
if command -v apt-get &> /dev/null; then
|
||||||
|
PACKAGE_MANAGER="apt-get"
|
||||||
|
elif command -v yum &> /dev/null; then
|
||||||
|
PACKAGE_MANAGER="yum"
|
||||||
|
elif command -v apk &> /dev/null; then
|
||||||
|
PACKAGE_MANAGER="apk"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" == "start" ]; then
|
if [ "$1" == "start" ]; then
|
||||||
start_server
|
start_server
|
||||||
|
@ -38,10 +38,6 @@ x-app-env : &app-env
|
|||||||
- EMAIL_USE_SSL=${EMAIL_USE_SSL:-0}
|
- EMAIL_USE_SSL=${EMAIL_USE_SSL:-0}
|
||||||
- DEFAULT_EMAIL=${DEFAULT_EMAIL:-captain@plane.so}
|
- DEFAULT_EMAIL=${DEFAULT_EMAIL:-captain@plane.so}
|
||||||
- DEFAULT_PASSWORD=${DEFAULT_PASSWORD:-password123}
|
- DEFAULT_PASSWORD=${DEFAULT_PASSWORD:-password123}
|
||||||
# OPENAI SETTINGS - Deprecated can be configured through admin panel
|
|
||||||
- OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1}
|
|
||||||
- OPENAI_API_KEY=${OPENAI_API_KEY:-""}
|
|
||||||
- GPT_ENGINE=${GPT_ENGINE:-"gpt-3.5-turbo"}
|
|
||||||
# LOGIN/SIGNUP SETTINGS - Deprecated can be configured through admin panel
|
# LOGIN/SIGNUP SETTINGS - Deprecated can be configured through admin panel
|
||||||
- ENABLE_SIGNUP=${ENABLE_SIGNUP:-1}
|
- ENABLE_SIGNUP=${ENABLE_SIGNUP:-1}
|
||||||
- ENABLE_EMAIL_PASSWORD=${ENABLE_EMAIL_PASSWORD:-1}
|
- ENABLE_EMAIL_PASSWORD=${ENABLE_EMAIL_PASSWORD:-1}
|
||||||
|
@ -20,8 +20,8 @@ function buildLocalImage() {
|
|||||||
DO_BUILD="2"
|
DO_BUILD="2"
|
||||||
else
|
else
|
||||||
printf "\n" >&2
|
printf "\n" >&2
|
||||||
printf "${YELLOW}You are on ${ARCH} cpu architecture. ${NC}\n" >&2
|
printf "${YELLOW}You are on ${CPU_ARCH} cpu architecture. ${NC}\n" >&2
|
||||||
printf "${YELLOW}Since the prebuilt ${ARCH} compatible docker images are not available for, we will be running the docker build on this system. ${NC} \n" >&2
|
printf "${YELLOW}Since the prebuilt ${CPU_ARCH} compatible docker images are not available for, we will be running the docker build on this system. ${NC} \n" >&2
|
||||||
printf "${YELLOW}This might take ${YELLOW}5-30 min based on your system's hardware configuration. \n ${NC} \n" >&2
|
printf "${YELLOW}This might take ${YELLOW}5-30 min based on your system's hardware configuration. \n ${NC} \n" >&2
|
||||||
printf "\n" >&2
|
printf "\n" >&2
|
||||||
printf "${GREEN}Select an option to proceed: ${NC}\n" >&2
|
printf "${GREEN}Select an option to proceed: ${NC}\n" >&2
|
||||||
@ -149,7 +149,7 @@ function upgrade() {
|
|||||||
function askForAction() {
|
function askForAction() {
|
||||||
echo
|
echo
|
||||||
echo "Select a Action you want to perform:"
|
echo "Select a Action you want to perform:"
|
||||||
echo " 1) Install (${ARCH})"
|
echo " 1) Install (${CPU_ARCH})"
|
||||||
echo " 2) Start"
|
echo " 2) Start"
|
||||||
echo " 3) Stop"
|
echo " 3) Stop"
|
||||||
echo " 4) Restart"
|
echo " 4) Restart"
|
||||||
@ -193,8 +193,8 @@ function askForAction() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# CPU ARCHITECHTURE BASED SETTINGS
|
# CPU ARCHITECHTURE BASED SETTINGS
|
||||||
ARCH=$(uname -m)
|
CPU_ARCH=$(uname -m)
|
||||||
if [ $ARCH == "amd64" ] || [ $ARCH == "x86_64" ];
|
if [[ $CPU_ARCH == "amd64" || $CPU_ARCH == "x86_64" || ( $BRANCH == "master" && ( $CPU_ARCH == "arm64" || $CPU_ARCH == "aarch64" ) ) ]];
|
||||||
then
|
then
|
||||||
USE_GLOBAL_IMAGES=1
|
USE_GLOBAL_IMAGES=1
|
||||||
DOCKERHUB_USER=makeplane
|
DOCKERHUB_USER=makeplane
|
||||||
|
@ -8,13 +8,13 @@ NGINX_PORT=80
|
|||||||
WEB_URL=http://localhost
|
WEB_URL=http://localhost
|
||||||
DEBUG=0
|
DEBUG=0
|
||||||
NEXT_PUBLIC_DEPLOY_URL=http://localhost/spaces
|
NEXT_PUBLIC_DEPLOY_URL=http://localhost/spaces
|
||||||
SENTRY_DSN=""
|
SENTRY_DSN=
|
||||||
SENTRY_ENVIRONMENT="production"
|
SENTRY_ENVIRONMENT=production
|
||||||
GOOGLE_CLIENT_ID=""
|
GOOGLE_CLIENT_ID=
|
||||||
GITHUB_CLIENT_ID=""
|
GITHUB_CLIENT_ID=
|
||||||
GITHUB_CLIENT_SECRET=""
|
GITHUB_CLIENT_SECRET=
|
||||||
DOCKERIZED=1 # deprecated
|
DOCKERIZED=1 # deprecated
|
||||||
CORS_ALLOWED_ORIGINS="http://localhost"
|
CORS_ALLOWED_ORIGINS=http://localhost
|
||||||
|
|
||||||
#DB SETTINGS
|
#DB SETTINGS
|
||||||
PGHOST=plane-db
|
PGHOST=plane-db
|
||||||
@ -31,19 +31,14 @@ REDIS_PORT=6379
|
|||||||
REDIS_URL=redis://${REDIS_HOST}:6379/
|
REDIS_URL=redis://${REDIS_HOST}:6379/
|
||||||
|
|
||||||
# EMAIL SETTINGS
|
# EMAIL SETTINGS
|
||||||
EMAIL_HOST=""
|
EMAIL_HOST=
|
||||||
EMAIL_HOST_USER=""
|
EMAIL_HOST_USER=
|
||||||
EMAIL_HOST_PASSWORD=""
|
EMAIL_HOST_PASSWORD=
|
||||||
EMAIL_PORT=587
|
EMAIL_PORT=587
|
||||||
EMAIL_FROM="Team Plane <team@mailer.plane.so>"
|
EMAIL_FROM=Team Plane <team@mailer.plane.so>
|
||||||
EMAIL_USE_TLS=1
|
EMAIL_USE_TLS=1
|
||||||
EMAIL_USE_SSL=0
|
EMAIL_USE_SSL=0
|
||||||
|
|
||||||
# OPENAI SETTINGS
|
|
||||||
OPENAI_API_BASE=https://api.openai.com/v1 # deprecated
|
|
||||||
OPENAI_API_KEY="sk-" # deprecated
|
|
||||||
GPT_ENGINE="gpt-3.5-turbo" # deprecated
|
|
||||||
|
|
||||||
# LOGIN/SIGNUP SETTINGS
|
# LOGIN/SIGNUP SETTINGS
|
||||||
ENABLE_SIGNUP=1
|
ENABLE_SIGNUP=1
|
||||||
ENABLE_EMAIL_PASSWORD=1
|
ENABLE_EMAIL_PASSWORD=1
|
||||||
@ -52,13 +47,13 @@ SECRET_KEY=60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5
|
|||||||
|
|
||||||
# DATA STORE SETTINGS
|
# DATA STORE SETTINGS
|
||||||
USE_MINIO=1
|
USE_MINIO=1
|
||||||
AWS_REGION=""
|
AWS_REGION=
|
||||||
AWS_ACCESS_KEY_ID="access-key"
|
AWS_ACCESS_KEY_ID=access-key
|
||||||
AWS_SECRET_ACCESS_KEY="secret-key"
|
AWS_SECRET_ACCESS_KEY=secret-key
|
||||||
AWS_S3_ENDPOINT_URL=http://plane-minio:9000
|
AWS_S3_ENDPOINT_URL=http://plane-minio:9000
|
||||||
AWS_S3_BUCKET_NAME=uploads
|
AWS_S3_BUCKET_NAME=uploads
|
||||||
MINIO_ROOT_USER="access-key"
|
MINIO_ROOT_USER=access-key
|
||||||
MINIO_ROOT_PASSWORD="secret-key"
|
MINIO_ROOT_PASSWORD=secret-key
|
||||||
BUCKET_NAME=uploads
|
BUCKET_NAME=uploads
|
||||||
FILE_SIZE_LIMIT=5242880
|
FILE_SIZE_LIMIT=5242880
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user