initial commit - build and deploy working
commit
35a8626222
|
@ -0,0 +1,5 @@
|
||||||
|
logs/
|
||||||
|
mnt/
|
||||||
|
archive/
|
||||||
|
*.env
|
||||||
|
deploy/doc
|
|
@ -0,0 +1,6 @@
|
||||||
|
# copy to .env and edit to suit
|
||||||
|
NAME=doc
|
||||||
|
BASE_IMAGE="squidfunk/mkdocs-material"
|
||||||
|
RUSER=ucommandit
|
||||||
|
BUILD_SRC=../src
|
||||||
|
APPEND_BUILD_ENV=./build.env
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
udbuild try -o '-p 8011:8000 -p 8012:8080 -v tempdoc:/doc' -y /opt/bin/boot $@
|
|
@ -0,0 +1 @@
|
||||||
|
udbuild -p "$@"
|
|
@ -0,0 +1,3 @@
|
||||||
|
export USER=doc
|
||||||
|
# set a password for create login user
|
||||||
|
# export USER_PW=somepassword
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
rm -rf ../build/mnt
|
||||||
|
docker volume rm tempdoc
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
rsync -r ../src/rootfs/opt/lib/ mnt/opt/lib/
|
||||||
|
rsync -r ../src/rootfs/opt/bin/ mnt/opt/bin/
|
||||||
|
rsync -r ../src/rootfs/opt/env/ mnt/opt/env/
|
||||||
|
rsync -r ../src/rootfs/opt/services/ mnt/opt/services/
|
||||||
|
rsync -r ../src/rootfs/opt/caddy/conf/ mnt/opt/caddy/conf
|
|
@ -0,0 +1 @@
|
||||||
|
udbuild -t publish $@
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
udbuild try -m doc -k -o '-p 8012:8080 -p 8011:8000' ${@:-shell} $@
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
udbuild try -m opt -k -o '-p 8012:8080 -p 8011:8000' ${@:-shell} $@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
docker exec -it try-ucommandit-doc /opt/bin/entrypoint ${@:-shell}
|
|
@ -0,0 +1,25 @@
|
||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
container_name: ${NAME:-doc}
|
||||||
|
image: ${IMAGE:-doc}
|
||||||
|
entrypoint: /opt/bin/boot
|
||||||
|
hostname: ${NAME:-doc}
|
||||||
|
# env_file:
|
||||||
|
# - $CREDENTIALS
|
||||||
|
volumes:
|
||||||
|
- doc:/doc
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
# use 80 if doing reverse proxy inside container
|
||||||
|
# - 80:80
|
||||||
|
# map 8080 and 8000 if not doing reverse proxy inside container
|
||||||
|
- 8901:8080 # editor
|
||||||
|
- 8900:8000 # docs
|
||||||
|
# bind doc volume to host for backup or outside container editing
|
||||||
|
# volumes:
|
||||||
|
# doc:
|
||||||
|
# driver: local
|
||||||
|
# driver_opts:
|
||||||
|
# type: none
|
||||||
|
# device: ${PWD}/doc
|
||||||
|
# o: bind
|
|
@ -0,0 +1 @@
|
||||||
|
docker-compose logs
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
./stop
|
||||||
|
./start
|
|
@ -0,0 +1 @@
|
||||||
|
docker-compose up
|
|
@ -0,0 +1,2 @@
|
||||||
|
docker-compose down -v
|
||||||
|
rm -rf doc/
|
|
@ -0,0 +1 @@
|
||||||
|
docker-compose up -d
|
|
@ -0,0 +1 @@
|
||||||
|
docker-compose down
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source .env
|
||||||
|
docker exec -it ${NAME:-doc} bash -l
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
./stop
|
||||||
|
docker-compose pull
|
||||||
|
./start
|
|
@ -0,0 +1,25 @@
|
||||||
|
# UCI - Live Documetation in a Container
|
||||||
|
|
||||||
|
** A self contained live documenation system for editing and displaying documentation via the browser**
|
||||||
|
|
||||||
|
This repo will build an alpine image complete with a mkdocs-material and vscode servers.
|
||||||
|
|
||||||
|
## Deploy
|
||||||
|
|
||||||
|
* Copy the deploy directory from this repo to your machine that has docker and docker-compose installed
|
||||||
|
* Make a copy of the .env.example file to .env and edit as needed.
|
||||||
|
* Edit the docker-compose.yml as needed.
|
||||||
|
* use the ./run script for testing and the ./start to deploy detached.
|
||||||
|
|
||||||
|
Run a caddy reverse proxy to use https and to obfuscate the ports of the servers
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
* You MUST clone and install the [UCI Docker Build]() repo first
|
||||||
|
* Then clone this repo
|
||||||
|
* make a copy of the .env.example file to .env and edit
|
||||||
|
* make a copy of the build.env.example to build.env and edit
|
||||||
|
* user the ./build script to build and the ./publish script to publish
|
||||||
|
|
||||||
|
additional script in the direcotory are used to facilitate testing and deveopment.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Build Source: uci-docker-base
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo -e "********** Docs Server Initialization ***************"
|
||||||
|
|
||||||
|
source $LIB_DIR/verbose.lib
|
||||||
|
source $LIB_DIR/helpers.lib
|
||||||
|
source $ENV_DIR/run.env
|
||||||
|
|
||||||
|
echo setting up document directory $DOC_HOME with git, making first commit
|
||||||
|
mkdir -p $DOC_HOME
|
||||||
|
[[ ! -f $DOC_HOME/mkdocs.yml ]] && echo intializing mkdocs in $DOC_HOME && /usr/local/bin/mkdocs new $DOC_HOME
|
||||||
|
chown -R $USER:$USER $DOC_HOME
|
||||||
|
# TODO allow setting up a remote for branch
|
||||||
|
sudo -u doc /bin/bash << CMD
|
||||||
|
cd $DOC_HOME
|
||||||
|
git init
|
||||||
|
git add .
|
||||||
|
git config user.email ${USER_EMAIL:-doc@somedomain.com}
|
||||||
|
git config user.name "${USER_NAME:-doc}"
|
||||||
|
git commit -m="initial documentation commit"
|
||||||
|
git log --stat
|
||||||
|
CMD
|
||||||
|
echo "done setting up $DOC_HOME"
|
||||||
|
|
||||||
|
echo "setting up caddy for password secured access to editor and docs"
|
||||||
|
source $LIB_DIR/caddy.lib
|
||||||
|
mkdir -p $CADDY_HOME/bin $CADDY_HOME/settings $CADDY_HOME/data
|
||||||
|
|
||||||
|
chown -R $USER:$USER /opt
|
||||||
|
|
||||||
|
echo -e "********** Done: initialization ***************"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
github.com/caddy-dns/route53
|
||||||
|
# comment lines are ignored thus a way to disable a package on build
|
||||||
|
# github.com/greenpau/caddy-security
|
|
@ -0,0 +1,34 @@
|
||||||
|
caddy_add_packages () {
|
||||||
|
local ifile; local bin; local pkgs; local pkg; local ipkgs
|
||||||
|
clean () {
|
||||||
|
local tmp;local tmp2; local append
|
||||||
|
if [[ -f $1 ]]; then
|
||||||
|
tmp=$(sed '/^[[:space:]]*#[^!]/d; /#$/d' $1)
|
||||||
|
else
|
||||||
|
tmp=$1
|
||||||
|
fi
|
||||||
|
echo "$tmp $2" | xargs -n1 | sort -u | xargs | sed "s# # #g"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ -f caddy.pkgs ]] && pkgs=" $(clean caddy.pkgs)"
|
||||||
|
[[ ! $pkgs ]] && echo "no packages requested, nothing to do" && return 0
|
||||||
|
echo "-packages requested to install-"
|
||||||
|
echo $pkgs
|
||||||
|
bin=/usr/sbin/caddy
|
||||||
|
[[ ! -x $bin ]] && echo ERROR: can not add packages, no caddy binary found at $bin && return 1
|
||||||
|
if ! $bin add-package $pkgs >/dev/null 2>&1; then
|
||||||
|
echo Error: Aborting further package installs and reverting to last good binary
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
echo packages added successfully
|
||||||
|
CADDY_HOME=${CADDY_HOME:-/opt/caddy}
|
||||||
|
mkdir -p $CADDY_HOME/bin/
|
||||||
|
echo $pkgs >> $CADDY_HOME/bin/installed.pkgs
|
||||||
|
echo "---"
|
||||||
|
echo currently installed packages
|
||||||
|
cat $CADDY_HOME/bin/installed.pkgs
|
||||||
|
echo installed modules from these packages
|
||||||
|
$bin list-modules | sed '1,/Standard modules/d;/Non-standard modules/,$d'
|
||||||
|
fi
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
if ! { [ "$VERBOSE" = "packages" ] || [ "$VERBOSE" = "all" ]; }; then unset VERBOSE; fi
|
||||||
|
source /opt/core_run.env
|
||||||
|
source $LIB_DIR/verbose.lib
|
||||||
|
|
||||||
|
echo "----- Installing python packages ---------------"
|
||||||
|
while IFS= read -r plug || [ -n "$plug" ]; do
|
||||||
|
echo installing plugin: $plug
|
||||||
|
silence pip install $plug
|
||||||
|
done < ./python.pkgs
|
||||||
|
echo "----- done, Installing python packages ---------------"
|
||||||
|
|
||||||
|
echo "----- Installing caddy packages ---------------"
|
||||||
|
source caddy.sh
|
||||||
|
caddy_add_packages
|
||||||
|
echo "----- done, Installing caddy packages ---------------"
|
||||||
|
|
||||||
|
echo "----- Downloading editor $EDITOR ---------------"
|
||||||
|
source $LIB_DIR/helpers.lib
|
||||||
|
EDITOR=${EDITOR:-coder/code-server}
|
||||||
|
ARCH=$(get_arch)
|
||||||
|
echo downloading $EDITOR version: $(lastversion coder/code-server) for $ARCH
|
||||||
|
lastversion coder/code-server --assets --filter linux-$ARCH -d /tmp/temp.tar.gz
|
||||||
|
EDITOR_SRC=${EDITOR_SRC:-/usr/local/lib/code-server}
|
||||||
|
mkdir -p $EDITOR_SRC
|
||||||
|
echo unpacking tarball into $EDITOR_SRC
|
||||||
|
tar xf /tmp/temp.tar.gz -C $EDITOR_SRC --strip-components=1
|
||||||
|
rm -rf /tmp/temp.tar.gz
|
||||||
|
ln -s ${EDITOR_BIN:-$EDITOR_SRC/bin/code-server} /usr/local/bin/editor
|
||||||
|
echo "----- done, downloading editor $EDITOR ---------------"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
mkdocs-macros-plugin
|
||||||
|
mkdocs-glightbox
|
||||||
|
lastversion
|
|
@ -0,0 +1,7 @@
|
||||||
|
jq
|
||||||
|
rsync
|
||||||
|
envsubst
|
||||||
|
runit
|
||||||
|
caddy
|
||||||
|
gcompat
|
||||||
|
libstdc++
|
|
@ -0,0 +1,4 @@
|
||||||
|
# UCI Live Documentation System
|
||||||
|
|
||||||
|
|
||||||
|
[mkdocs material](https://squidfunk.github.io/mkdocs-material/setup/)
|
|
@ -0,0 +1,5 @@
|
||||||
|
/*
|
||||||
|
!User
|
||||||
|
!.gitignore
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
/*
|
||||||
|
!snippets
|
||||||
|
!.gitignore
|
||||||
|
!settings.json
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"workbench.colorTheme": "Default Dark Modern",
|
||||||
|
"workbench.startupEditor": "none"
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
port: 8080
|
||||||
|
host: 0.0.0.0
|
||||||
|
auth: none
|
||||||
|
# password: test
|
||||||
|
cert: false
|
||||||
|
user-data-dir: $EDITOR_DATA
|
||||||
|
extensions-dir: $EDITOR_EXTENSIONS
|
||||||
|
app-name: $DOC_NAME
|
|
@ -0,0 +1 @@
|
||||||
|
[]
|
|
@ -0,0 +1,3 @@
|
||||||
|
site_name: UCI Documentation Docker Instance
|
||||||
|
theme:
|
||||||
|
name: material
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
source /opt/core_run.env
|
||||||
|
source $LIB_DIR/runit.lib
|
||||||
|
|
||||||
|
startup
|
||||||
|
|
||||||
|
# catch shutdown signals
|
||||||
|
trap shutdown SIGTERM SIGHUP SIGQUIT SIGINT
|
||||||
|
# RUNIT is runsvdir pid
|
||||||
|
wait $RUNIT
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "killing any other processes (zombie) still running in the container"
|
||||||
|
for _pid in $(ps -eo pid | grep -v PID | tr -d ' ' | grep -v '^1$' | head -n -6); do
|
||||||
|
timeout 5 /bin/sh -c "kill $_pid && wait $_pid || kill -9 $_pid"
|
||||||
|
done
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source $LIB_DIR/cmds.lib
|
||||||
|
|
||||||
|
doc () {
|
||||||
|
|
||||||
|
cmd=$1
|
||||||
|
case "$cmd" in
|
||||||
|
idle) ;&
|
||||||
|
shell) ;&
|
||||||
|
caddy) ;&
|
||||||
|
editor) ;&
|
||||||
|
browser) ;&
|
||||||
|
run) ;&
|
||||||
|
startup) ;&
|
||||||
|
shutdown) ;&
|
||||||
|
func)
|
||||||
|
shift 1
|
||||||
|
$cmd "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "no command: $*"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# # if script was executed then call the function
|
||||||
|
(return 0 2>/dev/null) || doc "$@"
|
|
@ -0,0 +1,3 @@
|
||||||
|
:8010 {
|
||||||
|
reverse_proxy :8011
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
caddy_add_packages () {
|
||||||
|
local ifile; local bin; local pkgs; local pkg; local ipkgs
|
||||||
|
clean () {
|
||||||
|
local tmp;local tmp2; local append
|
||||||
|
if [[ -f $1 ]]; then
|
||||||
|
tmp=$(sed '/^[[:space:]]*#[^!]/d; /#$/d' $1)
|
||||||
|
else
|
||||||
|
tmp=$1
|
||||||
|
fi
|
||||||
|
echo "$tmp $2" | xargs -n1 | sort -u | xargs | sed "s# # #g"
|
||||||
|
|
||||||
|
}
|
||||||
|
[[ -f $1 ]] && pkgs=" $(clean $1)"
|
||||||
|
[[ $BUILDING && -f $BUILD_DIR/caddy.pkgs ]] && pkgs=$(clean $BUILD_DIR/caddy.pkgs "$pkgs")
|
||||||
|
# echo pkgs after build
|
||||||
|
# echo $pkgs
|
||||||
|
[[ -f $CADDY_CONF/caddy.pkgs ]] && pkgs=$(clean $CADDY_CONF/caddy.pkgs "$pkgs")
|
||||||
|
# echo pkgs after conf
|
||||||
|
# echo $pkgs
|
||||||
|
[[ ! $pkgs ]] && echo "no packages requested, nothing to do" && return 0
|
||||||
|
echo "--- packages requested to install ----"
|
||||||
|
echo $pkgs
|
||||||
|
echo "-----------"
|
||||||
|
ifile=${CADDY_HOME}/bin/installed.pkgs
|
||||||
|
# uncomment for testing
|
||||||
|
# /bin/cp installed.pkgs $ifile
|
||||||
|
[[ -f $ifile ]] && ipkgs=$(clean $ifile)
|
||||||
|
echo "--- currently installed packages ----"
|
||||||
|
[[ $ipkgs ]] && echo $ipkgs || echo NONE
|
||||||
|
echo "-----------"
|
||||||
|
for pkg in $ipkgs; do
|
||||||
|
# echo installed packaged $pkg
|
||||||
|
pkgs=${pkgs/${pkg}/};
|
||||||
|
done
|
||||||
|
[[ ! $(clean $pkgs) ]] && echo "no new packages to add, nothing to do" && return 0
|
||||||
|
echo "--- packages that need adding ----"
|
||||||
|
echo $pkgs
|
||||||
|
echo "-----------"
|
||||||
|
bin=${2:-$CADDY_BIN}
|
||||||
|
bin=${bin:-$(command -v caddy)}
|
||||||
|
# [[ ! $bin ]] && echo no caddy binary found && return 1
|
||||||
|
[[ ! -x $bin ]] && echo ERROR: can not add packages, no caddy binary found at $bin && return 1
|
||||||
|
echo "------- ADDING CADDY PACKAGES ------------"
|
||||||
|
if ! $bin add-package $pkgs >/dev/null 2>&1; then
|
||||||
|
echo Error: Aborting further package installs and reverting to last good binary
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
echo packages
|
||||||
|
echo $pkgs
|
||||||
|
echo added successfully
|
||||||
|
echo $pkgs >> $CADDY_HOME/bin/installed.pkgs
|
||||||
|
echo "---"
|
||||||
|
echo currently installed packages
|
||||||
|
cat $CADDY_HOME/bin/installed.pkgs
|
||||||
|
echo installed modules from these packages
|
||||||
|
$bin list-modules | sed '1,/Standard modules/d;/Non-standard modules/,$d'
|
||||||
|
echo "-----------------------------------"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
caddy_get_conf () {
|
||||||
|
local conf
|
||||||
|
cd $CADDY_CONF || { echo could not enter conf directory in container; return 2; }
|
||||||
|
if [[ $1 ]];then
|
||||||
|
[[ -f $1 ]] && conf=$1 || conf=$1.conf
|
||||||
|
else
|
||||||
|
conf=.Caddyfile
|
||||||
|
fi
|
||||||
|
echo "$CADDY_CONF/$conf"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
caddy () {
|
||||||
|
|
||||||
|
if [[ ! $CADDY_HOME ]]; then
|
||||||
|
echo caddy run environment is NOT set
|
||||||
|
echo this is an error as the image build should set this
|
||||||
|
echo attempting to recover by sourcing the environment now
|
||||||
|
echo at $ENV_DIR/caddy.env
|
||||||
|
if [[ -f $ENV_DIR/caddy.env ]]; then
|
||||||
|
source $ENV_DIR/caddy.env
|
||||||
|
else
|
||||||
|
echo default environment can not be sourced at $ENV_DIR/caddy.env
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ! $CADDY_BIN ]] && CADDY_BIN is not set unable to find caddy binary
|
||||||
|
[ ! -f "$CADDY_BIN" ] && echo caddy binary file at $CADDY_BIN does not exist && return 1
|
||||||
|
[ ! -x "$CADDY_BIN" ] && echo caddy binary file $CADDY_BIN is not executable && return 1
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
;&
|
||||||
|
stop)
|
||||||
|
;&
|
||||||
|
validate)
|
||||||
|
;&
|
||||||
|
run)
|
||||||
|
cmd=$1;shift 1
|
||||||
|
conf=$(caddy_get_conf $1)
|
||||||
|
if [[ -f $conf ]]; then
|
||||||
|
# echo checking for any run time packages to add...
|
||||||
|
# caddy_add_packages
|
||||||
|
echo running: $CADDY_BIN $cmd --config $conf --adapter caddyfile
|
||||||
|
$CADDY_BIN $cmd --config $conf --adapter caddyfile
|
||||||
|
return $?
|
||||||
|
else
|
||||||
|
echo no configuration file found at $conf in the container
|
||||||
|
echo make sure you have mounted one from the host into /opt/caddy/conf
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
$CADDY_BIN "$@"
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source $LIB_DIR/runit.lib
|
||||||
|
|
||||||
|
shell () {
|
||||||
|
/bin/bash -c "cd ${DEFAULT_DIR:-/}; exec bash -l"
|
||||||
|
}
|
||||||
|
|
||||||
|
func () {
|
||||||
|
local func=$1
|
||||||
|
shift 1
|
||||||
|
$func $@
|
||||||
|
}
|
||||||
|
|
||||||
|
editor () {
|
||||||
|
$SVDIR/editor/run "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
browser () {
|
||||||
|
$SVDIR/mkdocs/run "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
caddy () {
|
||||||
|
$SVDIR/caddy/run "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
if [ "$(id -u)" = 0 ]; then
|
||||||
|
sudo -u "${USER:-doc}" bash -c "source /opt/core_run.env; $*"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
idle () {
|
||||||
|
sleep infinity
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# runit library
|
||||||
|
svall () {
|
||||||
|
|
||||||
|
for _srv in $(basename -a $(ls -d1 $SVDIR/*/)); do
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo $_srv
|
||||||
|
else
|
||||||
|
echo $1 for $_srv
|
||||||
|
sv $1 $_srv
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
shutdown() {
|
||||||
|
# first shutdown any service started by runit
|
||||||
|
|
||||||
|
echo first shutting down all services
|
||||||
|
svall force-stop
|
||||||
|
# shutdown RUNIT command
|
||||||
|
RUNIT=${RUNIT:-$(cat ${SVDIR:-/opt/services}/pid)}
|
||||||
|
echo now killing runit at pid $RUNIT
|
||||||
|
kill -HUP $RUNIT
|
||||||
|
echo runit is shutdown
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
startup () {
|
||||||
|
|
||||||
|
[ -z $SVDIR ] && echo using default services directory /opt/services
|
||||||
|
SVDIR=${SVDIR:-/opt/services}
|
||||||
|
export SVDIR=${1:-$SVDIR}
|
||||||
|
echo starting up services in $SVDIR
|
||||||
|
exec runsvdir -P ${1:-$SVDIR} &
|
||||||
|
|
||||||
|
RUNIT=$!
|
||||||
|
echo $RUNIT > $SVDIR/pid
|
||||||
|
export RUNIT
|
||||||
|
echo
|
||||||
|
echo "Started services at $SVDIR, PID is $RUNIT"
|
||||||
|
echo "waiting for service processes to start...."
|
||||||
|
sleep 3
|
||||||
|
svall status
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo stopping caddy
|
||||||
|
source $LIB_DIR/caddy.lib
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo ${1:-run} caddy
|
||||||
|
source $LIB_DIR/caddy.lib
|
||||||
|
caddy ${1:-run}
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo code-server run finished with exit code $1
|
||||||
|
echo "doing any cleanup now"
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
env | grep EDITOR
|
||||||
|
echo booting up editor
|
||||||
|
ls -la $DOC_HOME/editor
|
||||||
|
if [[ -f $EDITOR_CONFIG_TMPL ]]; then
|
||||||
|
echo creating editor config from template
|
||||||
|
envsubst < $EDITOR_CONFIG_TMPL > $EDITOR_CONFIG
|
||||||
|
fi
|
||||||
|
[[ ! -f $EDITOR_CONFIG ]] && echo "no editor config file (or template) at $EDITOR_CONFIG, aborting" && exit 1
|
||||||
|
echo "--- editor config -----"
|
||||||
|
cat $EDITOR_CONFIG
|
||||||
|
echo "-----------------------"
|
||||||
|
echo starting code server editor
|
||||||
|
sudo -u doc $EDITOR_BIN --config $EDITOR_CONFIG $@ $DOC_HOME
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo mkdocs run finished with exit code $1
|
||||||
|
echo "doing any cleanup now"
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo starting mkdocs in $DOC_HOME
|
||||||
|
pushd $DOC_HOME
|
||||||
|
/usr/local/bin/mkdocs serve --dev-addr=0.0.0.0:8000 --watch-theme
|
||||||
|
popd
|
Loading…
Reference in New Issue