diff --git a/gitlab_install.sh b/gitlab_install.sh index d90fa85..4a50831 100755 --- a/gitlab_install.sh +++ b/gitlab_install.sh @@ -1,26 +1,39 @@ #!/bin/bash +## Define admin user account +if [ -z "$ADMIN_ACCOUNT"] +then + ADMIN_ACCOUNT=root +fi +su - ${ADMIN_ACCOUNT} + +## Define bulk storage location if [ -z "$ZFS_DIR" ] then ZFS_DIR=/data fi -if [ -z "$ADMIN_ACCOUNT"] -then - ADMIN_ACCOUNT=root -fi -su ${ADMIN_ACCOUNT} - +echo "Installing GitLab ..." GITLAB_HOME=${ZFS_DIR}/gitlab -GITLAB_ADDRESS=gitlab.adamhome.dev +GITLAB_ADDRESS=https://gitlab.adamhome.dev GITLAB_EXTERN_HTTPS=14443 GITLAB_EXTERN_HTTP=14080 -GITLAB_EXTERN_SSH=14022 +GITLAB_EXTERN_SSH=22 + +if [ "${GITLAB_EXTERN_SSH}" -eq 22 ] +then + awk '{sub("#PORT=22","PORT=22")} {print}' /etc/ssh/sshd_config > /tmp/temp.txt && mv /tmp/temp.txt /etc/ssh/sshd_config + awk '{sub("# PORT=22","PORT=22")} {print}' /etc/ssh/sshd_config > /tmp/temp.txt && mv /tmp/temp.txt /etc/ssh/sshd_config + awk -v port=2222 '{sub("PORT=22","PORT="2222)} {print}' /etc/ssh/sshd_config > /tmp/temp.txt && mv /tmp/temp.txt /etc/ssh/sshd_config + sudo systemctl reload sshd +fi sudo docker run --detach \ --hostname ${GITLAB_ADDRESS} \ - --publish ${GITLAB_EXTERN_HTTPS}:443 --publish ${GITLAB_EXTERN_HTTP}:80 --publish ${GITLAB_EXTERN_SSH}:22 \ + --publish ${GITLAB_EXTERN_HTTPS}:443 \ + --publish ${GITLAB_EXTERN_HTTP}:80 \ + --publish ${GITLAB_EXTERN_SSH}:22 \ --name gitlab \ --restart always \ --volume ${GITLAB_HOME}/config:/etc/gitlab \ @@ -34,10 +47,12 @@ sudo docker run --detach \ # sudo docker exec -it gitlab /bin/bash # edit /etc/gitlab/gitlab.rb so that gitlab_rails['gitlab_shell_ssh_port'] = ${GITLAB_EXTERN_SSH} +# edit /etc/gitlab/gitlab.rb extern_url "https://${GITLAB_ADDRESS}" # while still in gitlab env, run gitlab-ctl reconfigure sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password +echo "Successfully installed GitLab" diff --git a/jupyterhub_install.sh b/jupyterhub_install.sh index 87ba08d..c05176f 100755 --- a/jupyterhub_install.sh +++ b/jupyterhub_install.sh @@ -1,7 +1,11 @@ #!/bin/bash ## Define admin user account -export ADMIN_ACCOUNT=sys-admin +if [ -z "$ADMIN_ACCOUNT"] +then + ADMIN_ACCOUNT=root +fi +su - ${ADMIN_ACCOUNT} ## Define bulk storage location if [ -z "$ZFS_DIR" ] @@ -14,6 +18,7 @@ awk '{sub("#HOME=/home","HOME=/home")} {print}' /etc/default/useradd > /tmp/temp awk '{sub("# HOME=/home","HOME=/home")} {print}' /etc/default/useradd > /tmp/temp.txt && mv /tmp/temp.txt /etc/default/useradd awk -v dir=${ZFS_DIR}/home '{sub("HOME=/home","HOME="dir)} {print}' /etc/default/useradd > /tmp/temp.txt && mv /tmp/temp.txt /etc/default/useradd +echo "Installing JupyterHub ..." # export TLJH_INSTALL_PREFIX=${ZFS_DIR}/tljh export TLJH_INSTALL_PREFIX=${ZFS_DIR}/jupyter @@ -59,10 +64,13 @@ sudo -E python3 - \ ## Edit Jupyter Environment sudo tljh-config set http.port ${JUPYTER_EXTERN_HTTP} sudo tljh-config set https.port ${JUPYTER_EXTERN_HTTPS} +sudo tljh-config set https.enabled true +sudo tljh-config set https.tls.key /etc/letsencrypt/live/jupyter.adamhome.dev/privkey.pem +sudo tljh-config set https.tls.cert /etc/letsencrypt/live/jupyter.adamhome.dev/fullchain.pem sudo tljh-config set limits.memory ${SYS_MEM}K sudo tljh-config set limits.cpu ${SYS_CPU} # sudo tljh-config set user_environment.default_app jupyterlab sudo tljh-config reload proxy sudo tljh-config reload - +echo "Successfully installed JupyterHub" \ No newline at end of file diff --git a/nextcloud_install.sh b/nextcloud_install.sh index 173a0ab..8e4a729 100755 --- a/nextcloud_install.sh +++ b/nextcloud_install.sh @@ -1,16 +1,31 @@ #!/bin/bash +## Define admin user account +if [ -z "$ADMIN_ACCOUNT"] +then + ADMIN_ACCOUNT=root +fi +su - ${ADMIN_ACCOUNT} + +## Define bulk storage location if [ -z "$ZFS_DIR" ] then ZFS_DIR=/data fi +echo "Installing Nextcloud AIO ..." + if [ -z "$APACHE_COMM" ] then ./create_reverse_proxy.sh fi -if [ SYS_MEM -gt 2097152 ] +if [ -z "$SYS_MEM" ] +then + SYS_MEM=$(grep MemTotal /proc/meminfo | awk '{print $2}') +fi + +if [ $SYS_MEM -gt 2097152 ] then let "SYS_MEM = $SYS_MEM - 1048576" else @@ -19,21 +34,23 @@ fi echo "Installing Nextcloud AIO ..." let "AIO_MEM = $SYS_MEM / 1024" +NEXTCLD_EXTERN_HTTP=12080 +NEXTCLD_EXTERN_HTTPS=12443 +APACHE_COMM=127.0.0.1 +APACHE_PORT=${NEXTCLD_EXTERN_HTTPS} -sudo docker run \ ---sig-proxy=false \ ---name nextcloud-aio-mastercontainer \ ---restart always \ ---publish 11080:80 \ ---publish 8080:8080 \ ---publish 11443:8443 \ ---env NEXTCLOUD_DATADIR=${ZFS_DIR}/nextcloud/data \ ---env NEXTCLOUD_MOUNT=${ZFS_DIR}/nextcloud \ ---env APACHE_PORT=${APACHE_PORT} \ ---env APACHE_IP_BINDING=${APACHE_COMM} \ ---env NEXTCLOUD_MEMORY_LIMIT=${AIO_MEM}M \ ---volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ ---volume /var/run/docker.sock:/var/run/docker.sock:ro \ -nextcloud/all-in-one:latest +sudo docker run -d \ + --sig-proxy=false \ + --name nextcloud-aio-mastercontainer \ + --restart always \ + --publish 8080:8080 \ + --env NEXTCLOUD_DATADIR=${ZFS_DIR}/nextcloud/data \ + --env NEXTCLOUD_MOUNT=${ZFS_DIR}/nextcloud \ + --env APACHE_PORT=${APACHE_PORT} \ + --env APACHE_IP_BINDING=${APACHE_COMM} \ + --env NEXTCLOUD_MEMORY_LIMIT=${AIO_MEM}M \ + --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ + --volume /var/run/docker.sock:/var/run/docker.sock:ro \ + nextcloud/all-in-one:latest echo "Successfully installed Nextcloud AIO" diff --git a/pre_setup.sh b/pre_setup.sh index 9fbb8e0..a7b7fbe 100644 --- a/pre_setup.sh +++ b/pre_setup.sh @@ -3,7 +3,7 @@ apt update ## Setup ZFS -ZFS_ROOT=/data +ZFS_DIR=/data ## Debian Setup codename=$(lsb_release -cs);echo "deb http://deb.debian.org/debian $codename-backports main contrib non-free"|sudo tee -a /etc/apt/sources.list @@ -12,8 +12,8 @@ apt install dpkg-dev linux-headers-generic linux-image-generic apt install zfs-dkms zfsutils-linux ## Create ZFS Pool -mkdir -p ${ZFS_ROOT} -zpool create -m ${ZFS_ROOT} tank raidz ... +mkdir -p ${ZFS_DIR} +zpool create -m ${ZFS_DIR} tank raidz ... zfs create tank/gitlab zfs create tank/home