123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/usr/bin/env bash
- # Copyright (c) 2021-2023 tteck
- # Author: tteck (tteckster)
- # License: MIT
- # https://github.com/tteck/Proxmox/raw/main/LICENSE
- source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
- color
- verb_ip6
- catch_errors
- setting_up_container
- network_check
- update_os
- msg_info "Installing Dependencies"
- $STD apt-get install -y curl
- $STD apt-get install -y sudo
- $STD apt-get install -y mc
- $STD apt-get install -y git
- $STD apt-get install -y ca-certificates
- $STD apt-get install -y gnupg
- msg_ok "Installed Dependencies"
- msg_info "Setting up Node.js Repository"
- mkdir -p /etc/apt/keyrings
- curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
- echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
- msg_ok "Set up Node.js Repository"
- msg_info "Installing Node.js"
- $STD apt-get update
- $STD apt-get install -y nodejs
- $STD npm install next
- $STD npm instal react
- $STD npm instal react-dom
- msg_ok "Installed Node.js"
- msg_info "Installing Yarn"
- $STD npm install -g yarn
- $STD yarn global add prisma
- msg_ok "Installed Yarn"
- msg_info "Installing Homarr (Patience)"
- git clone -q https://github.com/ajnart/homarr.git /opt/homarr
- cd /opt/homarr
- cat <<EOF >/opt/homarr/.env
- # Since the ".env" file is gitignored, you can use the ".env.example" file to
- # build a new ".env" file when you clone the repo. Keep this file up-to-date
- # when you add new variables to `.env`.
- # This file will be committed to version control, so make sure not to have any
- # secrets in it. If you are cloning this repo, create a copy of this file named
- # ".env" and populate it with your secrets.
- # When adding additional environment variables, the schema in "/src/env.js"
- # should be updated accordingly.
- # Prisma
- # https://www.prisma.io/docs/reference/database-reference/connection-urls#env
- DATABASE_URL="file:../database/db.sqlite"
- # Next Auth
- # You can generate a new secret on the command line with:
- # openssl rand -base64 32
- # https://next-auth.js.org/configuration/options#secret
- # NEXTAUTH_SECRET=""
- NEXTAUTH_URL="http://localhost:3000"
- NEXTAUTH_SECRET="1234"
- EOF
- $STD yarn install
- $STD yarn build
- msg_ok "Installed Homarr"
- msg_info "Creating Service"
- cat <<EOF >/etc/systemd/system/homarr.service
- [Unit]
- Description=Homarr Service
- After=network.target
- [Service]
- Type=exec
- WorkingDirectory=/opt/homarr
- EnvironmentFile=-/opt/homarr/.env
- ExecStart=/usr/bin/yarn start
- [Install]
- WantedBy=multi-user.target
- EOF
- systemctl enable -q --now homarr.service
- msg_ok "Created Service"
- motd_ssh
- customize
- msg_info "Cleaning up"
- $STD apt-get autoremove
- $STD apt-get autoclean
- msg_ok "Cleaned"
|