hoodik icon indicating copy to clipboard operation
hoodik copied to clipboard

Create deployment for ARM

Open htunlogic opened this issue 1 year ago • 4 comments

Build and deploy docker image for ARM

htunlogic avatar Aug 19 '23 15:08 htunlogic

~~I've tried building the Docker Image manually on my end. Rust won't install correctly for ARM64, failed.~~

Read latest comment: https://github.com/hudikhq/hoodik/issues/59#issuecomment-2299913103

SudoVanilla avatar Jun 17 '24 03:06 SudoVanilla

Has there been any progress on this?

ytcalifax avatar Aug 20 '24 21:08 ytcalifax

Well, I have great news!

After so many trial and errors, Rust did not become an issue this time. It appears I've managed to build a functional Docker image for Hoodik on ARM64.


~~I have it running successfully at https://hoodik-arm64.sudovanilla.org~~ Removed from server.


Hoodik Docker Image (arm64):

ark.sudovanilla.org/korbs/hoodik:arm64

https://ark.sudovanilla.org/Korbs/-/packages/container/hoodik/

Docker Compose:

services:
  hoodik:
    image: ark.sudovanilla.org/korbs/hoodik:arm64
    ports:
      - 4554:5443
    container_name: hoodik
    environment:
      - DATA_DIR=/data
      - APP_URL=https://drive.example.org/
      - SSL_DISABLED=true
      - MAILER_TYPE=smtp
      - SMTP_ADDRESS=smtp.resend.com
      - SMTP_USERNAME=resend
      - SMTP_PASSWORD=API_KEY_FROM_RESEND_GOES_HERE
      - SMTP_PORT=465
      - SMTP_DEFAULT_FROM=Hoodik Drive <[email protected]>
    volumes:
      - ./hookik-arm/:/data

Tested On

  • Fedora Workstation 40 (Amd64)
  • Rocky Linux 9 (Amd64)
  • Rocky Linux 9 (Arm64)

Install requirements:

# Install Docker to build image
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf update
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker.socket
systemctl enable docker.socket

# Install Rust
curl https://sh.rustup.rs -sSf | sh

# Install Wasm
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

# Install NodeJS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
nvm install node 22

# Enable Corepack for Yarn
corepack enable

# Install other requirements
dnf install gcc curl clang llvm pkg-config openssl-devel

Install packages and build:

# Clone Hoodik's GitHub Repository
git clone https://github.com/hudikhq/hoodik
cd hoodik/

# Install Dependencies 
yarn

# Run Builds
yarn workspace @hoodik/cryptfns wasm-pack
yarn workspace @hoodik/web build
cargo clean
cargo update
cargo build --bin hoodik --release

If you do not see a file named hoodik in ./target/release/, something may of went wrong. You need this file to exist in order to continue.

Build Docker Image:

sudo docker build -t hoodik .

SudoVanilla avatar Aug 20 '24 23:08 SudoVanilla

Hey @SudoVanilla! I'm sorry I'm only seeing this now. I am busy with my day job and use another account there, so I completely missed notifications! Thanks for this; I will update Hoodik and publish the arm image as soon as possible.

htunlogic avatar Sep 12 '24 08:09 htunlogic