Browse Source

Use start|stop scripts to run Umbrel with custom env vars (#66)

swap
Mayank Chhabra 5 years ago
committed by GitHub
parent
commit
d7e042651e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      README.md
  2. 26
      stage2/00-sys-tweaks/files/rc.local
  3. 15
      stage2/05-docker-compose/01-run.sh
  4. 57
      stage2/05-docker-compose/files/compose-service
  5. 66
      stage2/05-docker-compose/files/umbrel
  6. 11
      stage2/06-set-env-variables/00-patches/01-profile.diff
  7. 1
      stage2/06-set-env-variables/00-patches/series
  8. 1
      stage2/06-set-env-variables/01-run.sh
  9. 1
      stage2/06-set-env-variables/files/umbrel
  10. 0
      stage2/07-umbrel-details/00-packages
  11. 0
      stage2/07-umbrel-details/01-run.sh
  12. 0
      stage2/07-umbrel-details/files/umbrel-details

2
README.md

@ -75,7 +75,7 @@ For building an API (or scripting), look in `/home/umbrel/statuses` for the foll
- `disk-partitioned`: meaning the disk is partitioned.
- `service-configured`: meaning the umbrel system bootup service is configured and running.
The above variables control whether or not the umbrelbox startup script is run (for SD Card safety).
The above variables control whether or not the umbrel startup script is run (for SD Card safety).
If you want to overricde the checks, please delete ```service-configured``` file and add a ```disk-partitioned```, and then reinstall/configure [Umbrel](https://github.com/getumbrel/umbrel). Then run ```/etc/rc.local``` as root again (or restart your box)

26
stage2/00-sys-tweaks/files/rc.local

@ -51,22 +51,22 @@ if [ ! -f /home/umbrel/statuses/service-configured ]; then
# Next stage, check if service-configured
echo "Service configured.. Checking for partitioned state"
if [ -f /home/umbrel/statuses/disk-partitioned ]; then
if [ ! -f /etc/rc2.d/S01umbrelbox ]; then
if [ ! -f /etc/rc2.d/S01umbrel ]; then
echo "Set up symlinks"
ln -s /etc/init.d/umbrelbox /etc/rc2.d/S01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc3.d/S01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc4.d/S01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc5.d/S01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc0.d/K01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc1.d/K01umbrelbox
ln -s /etc/init.d/umbrelbox /etc/rc6.d/K01umbrelbox
ln -s /etc/init.d/umbrel /etc/rc2.d/S01umbrel
ln -s /etc/init.d/umbrel /etc/rc3.d/S01umbrel
ln -s /etc/init.d/umbrel /etc/rc4.d/S01umbrel
ln -s /etc/init.d/umbrel /etc/rc5.d/S01umbrel
ln -s /etc/init.d/umbrel /etc/rc0.d/K01umbrel
ln -s /etc/init.d/umbrel /etc/rc1.d/K01umbrel
ln -s /etc/init.d/umbrel /etc/rc6.d/K01umbrel
# Do partitioning at first boot
echo "Enabling defaults for umbrelbox"
update-rc.d umbrelbox defaults || exit 1
echo "Enabling defaults for umbrel"
update-rc.d umbrel defaults || exit 1
echo "Enabling startup for umbrel box"
update-rc.d umbrelbox enable || exit 1
echo "starting up umbrelbox get it started now)"
/etc/init.d/umbrelbox start
update-rc.d umbrel enable || exit 1
echo "starting up umbrel get it started now)"
/etc/init.d/umbrel start
fi
else
echo "Disk not partitioned, will not start umbrel framework (Please do it manually)"

15
stage2/05-docker-compose/01-run.sh

@ -6,7 +6,13 @@ echo "Installing docker-compose from pip3, and also setting up the box folder st
on_chroot << EOF
pip3 install docker-compose
cd /home/${FIRST_USER_NAME}
wget -qO- "https://raw.githubusercontent.com/getumbrel/umbrel/v${UMBREL_VERSION}/install-box.sh" | sh
git init
git remote add origin https://github.com/getumbrel/umbrel.git
git fetch --all
git checkout origin/master
git reset --hard origin/master
chown -R ${FIRST_USER_NAME}:${FIRST_USER_NAME} /home/${FIRST_USER_NAME}
EOF
@ -22,9 +28,8 @@ mkdir -p /etc/rc1.d
mkdir -p /etc/rc6.d
EOF
echo "Copying the compose service to rootfs (etc/init.d)"
install -m 755 files/compose-service ${ROOTFS_DIR}/etc/init.d/umbrelbox
echo "Copying the umbrel service to rootfs (etc/init.d)"
install -m 755 files/umbrel "${ROOTFS_DIR}"/etc/init.d/umbrel
echo "Pulling Docker images required to run Umbrel services"
@ -37,4 +42,4 @@ while IFS= read -r image; do
done <<< "$IMAGES"
mkdir -p ${ROOTFS_DIR}/var/lib/docker
rsync -avPHSX /var/lib/docker ${ROOTFS_DIR}/var/lib/
rsync -qavPHSX /var/lib/docker ${ROOTFS_DIR}/var/lib/

57
stage2/05-docker-compose/files/compose-service

@ -1,57 +0,0 @@
#!/bin/sh
set -e
### BEGIN INIT INFO
# Provides: docker-compose service
# Required-Start: $syslog $remote_fs docker
# Required-Stop: $syslog $remote_fs docker
# Should-Start: cgroupfs-mount cgroup-lite
# Should-Stop: cgroupfs-mount cgroup-lite
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts docker-compose
# Description: Start docker-compose
### END INIT INFO
NAME="compose-service"
DESCRIPTION="Docker compose service"
SCRIPTNAME=/etc/init.d/$NAME
UMBREL_ROOT=/home/umbrel
case "$1" in
start)
if [ -f $UMBREL_ROOT/docker-compose.yml ]; then
cd $UMBREL_ROOT
echo "Starting karen"
./karen &
echo "Starting Umbrel Docker services"
docker-compose up --build -d
exit 0
else
echo "Cannot start umbrelbox service. No docker-compose.yml found in $UMBREL_ROOT"
exit 1
fi
;;
stop)
if [ -f $UMBREL_ROOT/docker-compose.yml ]; then
echo "Stopping Umbrel Docker services"
cd $UMBREL_ROOT
docker-compose down
exit 0
else
echo "Cannot stop umbrelbox service. No docker-compose.yml found in $UMBREL_ROOT"
exit 1
fi
;;
status)
echo "Status"
docker ps -a
exit 0
;;
*)
echo "Either 'start', 'stop', or 'status'"
exit 1
;;
esac
exit 0

66
stage2/05-docker-compose/files/umbrel

@ -0,0 +1,66 @@
#!/bin/bash
set -e
### BEGIN INIT INFO
# Provides: Umbrel service
# Required-Start: $syslog $remote_fs docker
# Required-Stop: $syslog $remote_fs docker
# Should-Start: cgroupfs-mount cgroup-lite
# Should-Stop: cgroupfs-mount cgroup-lite
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts Umbrel
# Description: Start Umbrel
### END INIT INFO
NAME="umbrel"
DESCRIPTION="Umbrel service"
SCRIPTNAME=/etc/init.d/$NAME
UMBREL_ROOT=/home/umbrel
case "$1" in
start)
if [ -x $UMBREL_ROOT/scripts/start ]; then
echo "Starting Umbrel..."
echo
if [ -f /etc/default/umbrel ]; then
echo "Loading Umbrel OS environment variables..."
source /etc/default/umbrel
fi
cd $UMBREL_ROOT
./scripts/start
exit 0
else
echo "Cannot start umbrel service. No start script found in $UMBREL_ROOT"
exit 1
fi
;;
stop)
if [ -x $UMBREL_ROOT/scripts/stop ]; then
echo "Stopping Umbrel..."
cd $UMBREL_ROOT
./scripts/stop
exit 0
else
echo "Cannot stop umbrel service. No stop script found in $UMBREL_ROOT"
exit 1
fi
;;
status)
if [ -x $UMBREL_ROOT/scripts/status ]; then
echo "Getting Umbrel status..."
cd $UMBREL_ROOT
./scripts/status
exit 0
else
echo "Cannot get umbrel service's status. No status script found in $UMBREL_ROOT"
exit 1
fi
;;
*)
echo "Either 'start', 'stop', or 'status'"
exit 1
;;
esac
exit 0

11
stage2/06-set-env-variables/00-patches/01-profile.diff

@ -0,0 +1,11 @@
Index: jessie-stage2/rootfs/etc/profile
===================================================================
--- jessie-stage2.orig/rootfs/etc/profile
+++ jessie-stage2/rootfs/etc/profile
@@ -32,3 +32,6 @@
done
unset i
fi
+
+# Load Umbrel OS environment variables
+source /etc/default/umbrel

1
stage2/06-set-env-variables/00-patches/series

@ -0,0 +1 @@
01-profile.diff

1
stage2/06-set-env-variables/01-run.sh

@ -0,0 +1 @@
install -m 644 files/umbrel "${ROOTFS_DIR}"/etc/default/umbrel

1
stage2/06-set-env-variables/files/umbrel

@ -0,0 +1 @@
UMBREL_OS="0.0.4.beta.4"

0
stage2/06-umbrel-details/00-packages → stage2/07-umbrel-details/00-packages

0
stage2/06-umbrel-details/01-run.sh → stage2/07-umbrel-details/01-run.sh

0
stage2/06-umbrel-details/files/umbrel-details → stage2/07-umbrel-details/files/umbrel-details

Loading…
Cancel
Save