Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1523b914a | ||
|
|
195d4923d7 | ||
|
|
4b268de68c | ||
|
|
a57c529c73 | ||
|
|
445cf2678e | ||
|
|
ce5dfb10fa |
+8
-8
@@ -10,14 +10,14 @@ services:
|
|||||||
- ../../mistborn_volumes/extra/bitwarden:/data
|
- ../../mistborn_volumes/extra/bitwarden:/data
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.bitwarden-http.rule=Host(`bitwarden.mistborn`)"
|
# - "traefik.http.routers.bitwarden-http.rule=Host(`bitwarden.mistborn`)"
|
||||||
- "traefik.http.routers.bitwarden-http.entrypoints=web"
|
# - "traefik.http.routers.bitwarden-http.entrypoints=web"
|
||||||
- "traefik.http.routers.bitwarden-http.middlewares=mistborn_auth@file"
|
# - "traefik.http.routers.bitwarden-http.middlewares=mistborn_auth@file"
|
||||||
- "traefik.http.routers.bitwarden-https.rule=Host(`bitwarden.mistborn`)"
|
# - "traefik.http.routers.bitwarden-https.rule=Host(`bitwarden.mistborn`)"
|
||||||
- "traefik.http.routers.bitwarden-https.entrypoints=websecure"
|
# - "traefik.http.routers.bitwarden-https.entrypoints=websecure"
|
||||||
- "traefik.http.routers.bitwarden-https.middlewares=mistborn_auth@file"
|
# - "traefik.http.routers.bitwarden-https.middlewares=mistborn_auth@file"
|
||||||
- "traefik.http.routers.bitwarden-https.tls.certresolver=basic"
|
# - "traefik.http.routers.bitwarden-https.tls.certresolver=basic"
|
||||||
- "traefik.http.services.bitwarden-service.loadbalancer.server.port=80"
|
# - "traefik.http.services.bitwarden-service.loadbalancer.server.port=80"
|
||||||
ports:
|
ports:
|
||||||
- 3012:3012/tcp
|
- 3012:3012/tcp
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
+1
-1
Submodule modules/mistborn-cli updated: 00986bcb7f...73e0c37abd
Vendored
-15
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# must be run as mistborn
|
|
||||||
if [[ $(whoami) != 'mistborn' ]]; then
|
|
||||||
echo "This must be run as mistborn"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# input arguments
|
|
||||||
export MISTBORN_DEFAULT_PASSWORD="$1"
|
|
||||||
|
|
||||||
# set paths
|
|
||||||
export MISTBORN_HOME=/opt/mistborn
|
|
||||||
export MISTBORN_ENV_SCRIPT=${MISTBORN_HOME}/scripts/subinstallers/gen_prod_env.sh
|
|
||||||
|
|
||||||
+12
-17
@@ -59,13 +59,18 @@ echo -e "| | | | \__ \ |_| |_) | (_) | | | | | |"
|
|||||||
echo -e "|_| |_|_|___/\__|_.__/ \___/|_| |_| |_|"
|
echo -e "|_| |_|_|___/\__|_.__/ \___/|_| |_| |_|"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
|
|
||||||
# INPUT default admin password
|
sudo rm -rf /opt/mistborn 2>/dev/null || true
|
||||||
if [ -z "${MISTBORN_DEFAULT_PASSWORD}" ]; then
|
|
||||||
read -p "(Mistborn) Set default admin password: " -s MISTBORN_DEFAULT_PASSWORD
|
# clone to /opt and change directory
|
||||||
echo
|
echo "Cloning $GIT_BRANCH branch from mistborn repo"
|
||||||
else
|
sudo git clone https://gitlab.com/cyber5k/mistborn.git -b $GIT_BRANCH /opt/mistborn
|
||||||
echo "MISTBORN_DEFAULT_PASSWORD is already set"
|
sudo chown -R $USER:$USER /opt/mistborn
|
||||||
fi
|
pushd .
|
||||||
|
cd /opt/mistborn
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
# MISTBORN_DEFAULT_PASSWORD
|
||||||
|
source ./scripts/subinstallers/passwd.sh
|
||||||
|
|
||||||
# Install Cockpit?
|
# Install Cockpit?
|
||||||
if [ -z "${MISTBORN_INSTALL_COCKPIT}" ]; then
|
if [ -z "${MISTBORN_INSTALL_COCKPIT}" ]; then
|
||||||
@@ -85,16 +90,6 @@ else
|
|||||||
echo "SSH key exists for $USER"
|
echo "SSH key exists for $USER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo rm -rf /opt/mistborn 2>/dev/null || true
|
|
||||||
|
|
||||||
# clone to /opt and change directory
|
|
||||||
echo "Cloning $GIT_BRANCH branch from mistborn repo"
|
|
||||||
sudo git clone https://gitlab.com/cyber5k/mistborn.git -b $GIT_BRANCH /opt/mistborn
|
|
||||||
sudo chown -R $USER:$USER /opt/mistborn
|
|
||||||
pushd .
|
|
||||||
cd /opt/mistborn
|
|
||||||
git submodule update --init --recursive
|
|
||||||
|
|
||||||
# initial load update package list
|
# initial load update package list
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
|
||||||
|
|||||||
@@ -4,3 +4,7 @@
|
|||||||
BITWARDEN_PROD_FILE="$1"
|
BITWARDEN_PROD_FILE="$1"
|
||||||
echo "WEBSOCKET_ENABLED=true" > $BITWARDEN_PROD_FILE
|
echo "WEBSOCKET_ENABLED=true" > $BITWARDEN_PROD_FILE
|
||||||
echo "SIGNUPS_ALLOWED=true" >> $BITWARDEN_PROD_FILE
|
echo "SIGNUPS_ALLOWED=true" >> $BITWARDEN_PROD_FILE
|
||||||
|
|
||||||
|
echo "MISTBORN_SERVICE_DOMAIN=bitwarden.mistborn" >> $BITWARDEN_PROD_FILE
|
||||||
|
echo "MISTBORN_SERVICE_NAME=bitwarden" >> $BITWARDEN_PROD_FILE
|
||||||
|
echo "MISTBORN_SERVICE_PORT=80" >> $BITWARDEN_PROD_FILE
|
||||||
@@ -10,4 +10,4 @@ echo "POSTGRES_DB=guacamole_db" >> $GUAC_PROD_FILE
|
|||||||
echo "POSTGRES_DATABASE=guacamole_db" >> $GUAC_PROD_FILE
|
echo "POSTGRES_DATABASE=guacamole_db" >> $GUAC_PROD_FILE
|
||||||
echo "POSTGRES_USER=guac_user" >> $GUAC_PROD_FILE
|
echo "POSTGRES_USER=guac_user" >> $GUAC_PROD_FILE
|
||||||
echo "POSTGRES_PASSWORD=$GUAC_PASSWORD" >> $GUAC_PROD_FILE
|
echo "POSTGRES_PASSWORD=$GUAC_PASSWORD" >> $GUAC_PROD_FILE
|
||||||
echo "MISTBORN_DEFAULT_PASSWORD=\"$MISTBORN_DEFAULT_PASSWORD\"" >> $GUAC_PROD_FILE
|
echo "MISTBORN_DEFAULT_PASSWORD=$MISTBORN_DEFAULT_PASSWORD" >> $GUAC_PROD_FILE
|
||||||
@@ -5,5 +5,5 @@ NEXTCLOUD_PROD_FILE="$1"
|
|||||||
#NEXTCLOUD_PASSWORD=$(python3 -c "import secrets; import string; print(f''.join([secrets.choice(string.ascii_letters+string.digits) for x in range(32)]))")
|
#NEXTCLOUD_PASSWORD=$(python3 -c "import secrets; import string; print(f''.join([secrets.choice(string.ascii_letters+string.digits) for x in range(32)]))")
|
||||||
NEXTCLOUD_PASSWORD="${MISTBORN_DEFAULT_PASSWORD}"
|
NEXTCLOUD_PASSWORD="${MISTBORN_DEFAULT_PASSWORD}"
|
||||||
echo "NEXTCLOUD_ADMIN_USER=mistborn" > $NEXTCLOUD_PROD_FILE
|
echo "NEXTCLOUD_ADMIN_USER=mistborn" > $NEXTCLOUD_PROD_FILE
|
||||||
echo "NEXTCLOUD_ADMIN_PASSWORD=\"$NEXTCLOUD_PASSWORD\"" >> $NEXTCLOUD_PROD_FILE
|
echo "NEXTCLOUD_ADMIN_PASSWORD=$NEXTCLOUD_PASSWORD" >> $NEXTCLOUD_PROD_FILE
|
||||||
echo "NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.mistborn" >> $NEXTCLOUD_PROD_FILE
|
echo "NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.mistborn" >> $NEXTCLOUD_PROD_FILE
|
||||||
@@ -4,4 +4,4 @@
|
|||||||
ONLYOFFICE_PROD_FILE="$1"
|
ONLYOFFICE_PROD_FILE="$1"
|
||||||
JWT_SECRET="${MISTBORN_DEFAULT_PASSWORD}"
|
JWT_SECRET="${MISTBORN_DEFAULT_PASSWORD}"
|
||||||
echo "JWT_ENABLED=true" > $ONLYOFFICE_PROD_FILE
|
echo "JWT_ENABLED=true" > $ONLYOFFICE_PROD_FILE
|
||||||
echo "JWT_SECRET=\"$JWT_SECRET\"" >> $ONLYOFFICE_PROD_FILE
|
echo "JWT_SECRET=$JWT_SECRET" >> $ONLYOFFICE_PROD_FILE
|
||||||
@@ -7,7 +7,7 @@ ROCKETCHAT_PASSWORD="${MISTBORN_DEFAULT_PASSWORD}"
|
|||||||
echo "ROCKETCHAT_USER=bot" > $ROCKETCHAT_PROD_FILE
|
echo "ROCKETCHAT_USER=bot" > $ROCKETCHAT_PROD_FILE
|
||||||
echo "ROCKETCHAT_ROOM=GENERAL" >> $ROCKETCHAT_PROD_FILE
|
echo "ROCKETCHAT_ROOM=GENERAL" >> $ROCKETCHAT_PROD_FILE
|
||||||
echo "BOT_NAME=bot" >> $ROCKETCHAT_PROD_FILE
|
echo "BOT_NAME=bot" >> $ROCKETCHAT_PROD_FILE
|
||||||
echo "ROCKETCHAT_PASSWORD=\"$ROCKETCHAT_PASSWORD\"" >> $ROCKETCHAT_PROD_FILE
|
echo "ROCKETCHAT_PASSWORD=$ROCKETCHAT_PASSWORD" >> $ROCKETCHAT_PROD_FILE
|
||||||
|
|
||||||
# docker environment
|
# docker environment
|
||||||
echo "MISTBORN_BIND_IP=${MISTBORN_BIND_IP}" >> $ROCKETCHAT_PROD_FILE
|
echo "MISTBORN_BIND_IP=${MISTBORN_BIND_IP}" >> $ROCKETCHAT_PROD_FILE
|
||||||
@@ -15,8 +15,8 @@ echo "DJANGO_ADMIN_URL=admin/" >> $DJANGO_PROD_FILE
|
|||||||
echo "USE_DOCKER=yes" >> $DJANGO_PROD_FILE
|
echo "USE_DOCKER=yes" >> $DJANGO_PROD_FILE
|
||||||
echo "REDIS_URL=redis://redis:6379/0" >> $DJANGO_PROD_FILE
|
echo "REDIS_URL=redis://redis:6379/0" >> $DJANGO_PROD_FILE
|
||||||
echo "CELERY_FLOWER_USER=prod" >> $DJANGO_PROD_FILE
|
echo "CELERY_FLOWER_USER=prod" >> $DJANGO_PROD_FILE
|
||||||
echo "CELERY_FLOWER_PASSWORD=\"$MISTBORN_DEFAULT_PASSWORD\"" >> $DJANGO_PROD_FILE
|
echo "CELERY_FLOWER_PASSWORD=$MISTBORN_DEFAULT_PASSWORD" >> $DJANGO_PROD_FILE
|
||||||
echo "MISTBORN_DEFAULT_PASSWORD=\"$MISTBORN_DEFAULT_PASSWORD\"" >> $DJANGO_PROD_FILE
|
echo "MISTBORN_DEFAULT_PASSWORD=$MISTBORN_DEFAULT_PASSWORD" >> $DJANGO_PROD_FILE
|
||||||
echo "#MAILGUN_API_KEY=" >> $DJANGO_PROD_FILE
|
echo "#MAILGUN_API_KEY=" >> $DJANGO_PROD_FILE
|
||||||
echo "#MAILGUN_API_URL=" >> $DJANGO_PROD_FILE
|
echo "#MAILGUN_API_URL=" >> $DJANGO_PROD_FILE
|
||||||
echo "#SENTRY_DNS=" >> $DJANGO_PROD_FILE
|
echo "#SENTRY_DNS=" >> $DJANGO_PROD_FILE
|
||||||
@@ -41,5 +41,5 @@ PIHOLE_PROD_FILE="./.envs/.production/.pihole"
|
|||||||
#WEBPASSWORD=$(python3 -c "import secrets; import string; print(f''.join([secrets.choice(string.ascii_letters+string.digits) for x in range(32)]))")
|
#WEBPASSWORD=$(python3 -c "import secrets; import string; print(f''.join([secrets.choice(string.ascii_letters+string.digits) for x in range(32)]))")
|
||||||
WEBPASSWORD="$1"
|
WEBPASSWORD="$1"
|
||||||
echo "TZ=\"America/New York\"" > $PIHOLE_PROD_FILE
|
echo "TZ=\"America/New York\"" > $PIHOLE_PROD_FILE
|
||||||
echo "WEBPASSWORD=\"$WEBPASSWORD\"" >> $PIHOLE_PROD_FILE
|
echo "WEBPASSWORD=$WEBPASSWORD" >> $PIHOLE_PROD_FILE
|
||||||
chmod 600 $PIHOLE_PROD_FILE
|
chmod 600 $PIHOLE_PROD_FILE
|
||||||
|
|||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# INPUT default admin password
|
||||||
|
while [ -z "${MISTBORN_DEFAULT_PASSWORD}" ] || [ ${MISTBORN_DEFAULT_PASSWORD} =~ ^[A-Za-z0-9_]+$ ]; do
|
||||||
|
echo
|
||||||
|
echo "(Mistborn) The default admin password may only container alphanumeric characters and _"
|
||||||
|
read -p "(Mistborn) Set default admin password: " -s MISTBORN_DEFAULT_PASSWORD
|
||||||
|
echo
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "MISTBORN_DEFAULT_PASSWORD is set"
|
||||||
|
echo
|
||||||
@@ -24,6 +24,21 @@ else
|
|||||||
fi
|
fi
|
||||||
set +a
|
set +a
|
||||||
|
|
||||||
|
# call traefik-extra
|
||||||
|
if [[ ! -z "${MISTBORN_SERVICE_NAME}" ]] && \
|
||||||
|
[[ ! -z "${MISTBORN_SERVICE_DOMAIN}" ]] && \
|
||||||
|
[[ ! -z "${MISTBORN_SERVICE_PORT}" ]]; then
|
||||||
|
|
||||||
|
echo "Populating traefik routes"
|
||||||
|
|
||||||
|
mistborn-cli traefik-extra \
|
||||||
|
--domain-name ${MISTBORN_SERVICE_DOMAIN} \
|
||||||
|
--service-name ${MISTBORN_SERVICE_NAME} \
|
||||||
|
--web-port ${MISTBORN_SERVICE_PORT}
|
||||||
|
else
|
||||||
|
echo "Not populating traefik routes"
|
||||||
|
fi
|
||||||
|
|
||||||
# init script
|
# init script
|
||||||
if [[ -f "${MISTBORN_SERVICE_INIT}" ]]; then
|
if [[ -f "${MISTBORN_SERVICE_INIT}" ]]; then
|
||||||
echo "Running init script"
|
echo "Running init script"
|
||||||
|
|||||||
Reference in New Issue
Block a user