makeplane / plane

🔥 🔥 🔥 Open Source JIRA, Linear, Monday, and Asana Alternative. Plane helps you track your issues, epics, and product roadmaps in the simplest way possible.
http://plane.so
GNU Affero General Public License v3.0
29.3k stars 1.61k forks source link

[feature]: ARM64 docker images #1989

Closed viseshrp closed 10 months ago

viseshrp commented 1 year ago

Is there an existing issue for this?

Summary

There are no ARM 64 images of plane. Self hosting steps fail if run on ARM machines like a Raspberry pi 4B.

Why should this be worked on?

Docker compose fails on ARM machines. Extend support to a broader audience?

kotasudhakar commented 1 year ago

this is actually quite helpful, can someone please work on this arm64 based docker images

j3mu5 commented 10 months ago

I join this and kindly ask for an image for a raspberry pi 4 or 5

j3mu5 commented 10 months ago

Okay, i figured out how to self host plane on a pi4. recommend to backup ~/plane_backup on a separate device; therefore it is accessible via samba.

Flash Image (raspberry pi 4)

Raspberry Pi Imager > Raspberry Pi OS (other) > Raspberry Pi OS lite (64-bit)

install

GIT

sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt install git -y

docker https://www.heise.de/news/Wie-man-Docker-auf-dem-Raspberry-Pi-in-15-Minuten-einrichtet-7524692.html

curl -fsSL https://get.Docker.com -o get-Docker.sh
sudo sh get-Docker.sh
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable docker

samba share

sudo apt-get update -y 
sudo apt-get install samba samba-common smbclient -y
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_old
sudo nano /etc/samba/smb.conf

PASTE in /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
security = user
client min protocol = SMB2
client max protocol = SMB3

[Home]
comment = Home Share
path = /home/
read only = no
sudo service smbd restart
sudo service nmbd restart
sudo smbpasswd -a $USER

plane

git clone https://github.com/makeplane/plane
cd plane
chmod +x setup.sh
./setup.sh
sudo nano apiserver/.env

CHANGE in apiserver/.env

# Email Settings
EMAIL_HOST="smtp.gmail.com"
EMAIL_HOST_USER="your_mail@gmail.com"
EMAIL_HOST_PASSWORD="PASTEgoogleAPPpassword"
EMAIL_PORT=587
EMAIL_FROM="your_mail@gmail.com"
EMAIL_USE_TLS="1"
EMAIL_USE_SSL="0"

# SignUps
ENABLE_SIGNUP="1"

# Enable Email/Password Signup
ENABLE_EMAIL_PASSWORD="1"

# Enable Magic link Login
ENABLE_MAGIC_LINK_LOGIN="1"

# Email redirections and minio domain settings replace "YOUR_IP_ADRESS_GOES_HERE"
WEB_URL="http://YOUR_IP_ADRESS_GOES_HERE"

this takes about one hour on pi4

docker compose up -d

make backup directory

mkdir ~/plane_backup

login captain@plane.so password123

BACKUP AND RESTORE Docker Images (without user data)

https://stackoverflow.com/questions/35575674/how-to-save-all-docker-images-and-copy-to-another-machine

backup Docker Images

cd ~/plane && docker compose stop
cd ~/plane_backup
docker save $(docker images -q) -o ~/plane_backup/`date +%Y-%m-%d`_plane_images.tar
docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' > ~/plane_backup/`date +%Y-%m-%d`_plane_images.list
cd ~/plane && docker compose up -d

restore Docker Images

cd ~/plane && docker compose stop
cd ~/plane_backup

you can load (import) the images

docker load -i ~/plane_backup/CHANGEFILENAME.tar

and tag the imported images

while read REPOSITORY TAG IMAGE_ID
do
        echo "== Tagging $REPOSITORY $TAG $IMAGE_ID =="
        docker tag "$IMAGE_ID" "$REPOSITORY:$TAG"
done < CHANGEFILENAME.list

start docker again

cd ~/plane && docker compose up -d

BACKUP AND RESTORE Database (user data)

https://www.ionos.com/digitalguide/server/security/docker-backup/ https://stackoverflow.com/questions/54046054/cannot-restore-postgresql-databases-got-database-already-exists-error

DUMP

cd ~/plane && docker compose stop && docker start plane-db
docker exec plane-db pg_dump --format=custom --dbname=plane > ~/plane_backup/`date +%Y-%m-%d`_plane_database.dump
cd ~/plane && docker compose down && docker compose up -d

RESTORE

cd ~/plane && docker compose stop && docker start plane-db
docker start plane-db
docker exec --interactive plane-db pg_restore --clean --dbname=plane < ~/plane_backup/CHANGEFILENAME.dump
cd ~/plane && docker compose down && docker compose up -d
viseshrp commented 10 months ago

I have moved on to other open source tools (https://github.com/plankanban/planka if anyone is interested) due to the lack of support here. Thanks for triaging this, I guess.

TheiLLeniumStudios commented 9 months ago

This is still needed. We've transitioned our workloads to ARM based machines and almost every other tool supports multi-arch. It would be great if we can have multi-arch images for Plane as well