Skip to content

Commit

Permalink
post install steps
Browse files Browse the repository at this point in the history
  • Loading branch information
Bernt Christian Egeland committed Jan 25, 2022
1 parent c56de3f commit 05d9acf
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 157 deletions.
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true
},

// "runArgs": ["--net=host"],
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"esbenp.prettier-vscode",
Expand Down Expand Up @@ -45,5 +45,5 @@
"mikestead.dotenv"
],
// Uncomment the next line to run commands after the container is created - for example installing curl.
"postCreateCommand": "sudo docker/bin/./dev-build.sh"
"postCreateCommand": "sudo docker/bin/./install.sh && sudo docker/bin/./install-dev-addon.sh"
}
3 changes: 0 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,5 @@ services:
- /dev:/dev:ro
entrypoint:
- '/bin/systemctl'
# command: /bin/sh -c "while sleep 1000; do :; done"
# tty: true
# stdin_open: true
volumes:
uavdata:
2 changes: 2 additions & 0 deletions docker/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
FROM sinamics/debian-uavcast-base:latest
LABEL maintainer="Bernt Christian Egeland / (aka sinamics)"

WORKDIR /app/uavcast

ENV NPM_CONFIG_PREFIX=/home/uavcast/.npm-global
ENV PATH=$PATH:/home/uavcast/.npm-global/bin

Expand Down
3 changes: 2 additions & 1 deletion docker/Dockerfile.publish
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ RUN sudo usermod -a -G docker root

ENV NODE_ENV=production

RUN ["/app/uavcast/docker/bin/./prod-build.sh"]
RUN ["/app/uavcast/docker/bin/./install.sh"]
RUN ["/app/uavcast/docker/bin/./install-prod-addon.sh"]

ENTRYPOINT ["/app/uavcast/docker/bin/entrypoint.sh"]

Expand Down
111 changes: 0 additions & 111 deletions docker/bin/dev-build.sh

This file was deleted.

35 changes: 35 additions & 0 deletions docker/bin/install-dev-addon.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
# ----------------------------------------------------------------
# uavcast dev-installation file.
# Author Bernt Christian Egeland
#
# !Dev specific addons
# ----------------------------------------------------------------

APPROOT="/app/uavcast"

# install global dependencies
npm i concurrently ts-node-dev typescript -g

sudo apt-get install -y libsqlite3-dev \
libv4l-dev \
libcap2-bin

sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

# fetch translations
# https://github.com/UAVmatrix/uavcast-pro-translations
git submodule update --init --recursive

ARCH=`uname -m`
if [ "$ARCH" == "x86_64" ]; then
cp ${APPROOT}/bin/mavlink/mavlink-routerd-amd64 ${APPROOT}/bin/mavlink/mavlink-routerd
elif [ "$ARCH" == "armv7l" ]; then
cp ${APPROOT}/bin/mavlink/mavlink-routerd-arm ${APPROOT}/bin/mavlink/mavlink-routerd
else
cp ${APPROOT}/bin/mavlink/mavlink-routerd-arm64 ${APPROOT}/bin/mavlink/mavlink-routerd
fi

# Build binaries
cd /app/uavcast/bin && make
20 changes: 20 additions & 0 deletions docker/bin/install-prod-addon.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
# ----------------------------------------------------------------
# UAVcast installation file.
# Author Bernt Christian Egeland
#
# !Production specific addons
# ----------------------------------------------------------------

# Set folders
APPROOT="/app/uavcast"

#start webserver
systemctl enable uavcast-web
systemctl start uavcast-web

#start mavlink
systemctl enable mavlink-router
systemctl start mavlink-router


67 changes: 27 additions & 40 deletions docker/bin/prod-build.sh → docker/bin/install.sh
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
#!/bin/bash
# ----------------------------------------------------------------
# UAVcast installation file.
# uavcast dev-installation file.
# Author Bernt Christian Egeland
# ----------------------------------------------------------------
#Get current Directory
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

VERSION_ID=9 #set to default stretch

# Set folders
BASEFOLDER="$(cd ../; pwd)"
Systemd="/etc/systemd/system"
ROOTFOLDER="/app/uavcast"
APPROOT="/app/uavcast"

# install global dependencies
npm i concurrently ts-node-dev typescript -g

main="$MAINPID"

# Generate UAVcast.service file
UAVCAST=$Systemd/"uavcast.service"

Expand All @@ -25,13 +20,14 @@ Requires=network-online.target
Wants=network-online.target
After=network-online.target
[Service]
WorkingDirectory=ROOTFOLDER
WorkingDirectory=$APPROOT
Type=simple
GuessMainPID=no
ExecStart=ROOTFOLDER/bin/build/uav_main -a
ExecStop=ROOTFOLDER/bin/build/uav_main -s
ExecStart=$APPROOT/bin/build/uav_main -a
ExecStop=$APPROOT/bin/build/uav_main -s
RemainAfterExit=yes
KillMode=control-group
SyslogIdentifier=uavcast
StandardOutput=journal+console
StandardError=inherit
Restart=on-failure
Expand All @@ -49,11 +45,12 @@ Requires=network-online.target
Wants=network-online.target
After=network-online.target
[Service]
WorkingDirectory=ROOTFOLDER
WorkingDirectory=$APPROOT/bin/build
Type=simple
GuessMainPID=no
ExecStart=ROOTFOLDER/bin/build/uav_camera -start
ExecStart=$APPROOT/bin/build/uav_camera -start
KillMode=control-group
SyslogIdentifier=uavcast-camera
StandardOutput=journal+console
StandardError=inherit
[Install]
Expand All @@ -70,11 +67,12 @@ Requires=network-online.target
Wants=network-online.target
After=network-online.target
[Service]
WorkingDirectory=ROOTFOLDER
WorkingDirectory=$APPROOT/bin/build
Type=simple
GuessMainPID=no
ExecStart=ROOTFOLDER/bin/build/uav_vpn -o start
ExecStart=$APPROOT/bin/build/uav_vpn -o start
KillMode=control-group
SyslogIdentifier=uavcast-vpn
StandardOutput=journal+console
StandardError=inherit
[Install]
Expand All @@ -88,10 +86,10 @@ UAVCASTWEB=$Systemd/"uavcast-web.service"
[Unit]
Description=Webinterface for UAVcast
[Service]
WorkingDirectory=$ROOTFOLDER
WorkingDirectory=$APPROOT
Type=simple
GuessMainPID=no
ExecStart=/usr/bin/node $ROOTFOLDER/backend/dist/index.js
ExecStart=/usr/bin/node $APPROOT/backend/dist/index.js
KillMode=control-group
SyslogIdentifier=uavcast-webinterface
StandardOutput=journal+console
Expand All @@ -111,7 +109,7 @@ MAVLINKROUTERED=$Systemd/"mavlink-router.service"
Description=MAVLink Router
[Service]
Type=simple
ExecStart=$ROOTFOLDER/bin/mavlink/mavlink-routerd
ExecStart=$APPROOT/bin/mavlink/mavlink-routerd
StandardOutput=journal+console
StandardError=inherit
Restart=on-failure
Expand All @@ -120,27 +118,16 @@ RestartSec=5
WantedBy=multi-user.target
EOM

#Prevent Network Manager to control WIFI
mkdir -p /etc/NetworkManager
NetworkManager="/etc/NetworkManager/NetworkManager.conf"
/bin/cat <<EOM >$NetworkManager
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[keyfile]
unmanaged-devices=interface-name:eth*,interface-name:wlan*
EOM

#start webserver
systemctl enable uavcast-web
systemctl start uavcast-web
## add mavlink config
mkdir -p /etc/mavlink-router
cp ${APPROOT}/etc/mavlink-router-example.conf /etc/mavlink-router/main.conf

#start mavlink
systemctl enable mavlink-router
systemctl start mavlink-router
# install zerotier client
curl -s https://install.zerotier.com | sudo bash

## Docker
sudo touch /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
sudo chown uavcast:docker /var/run/docker.sock

echo "NODE_ENV=production" >> ~/.bashrc

0 comments on commit 05d9acf

Please sign in to comment.