2.3 KiB
Setup
We could do something fancy like a NixOS flake, but for the EmacsSurvey server I think a simple Debian machine with a setup script should do the trick. Let's just work out a setup script to get everything up and running.
The idea is that this repository can be cloned/updated anywhere on the machine
and sudo setup.sh
will do the rest.
Installing software
Caddy web server
if ! rpm -q caddy > /dev/null; then
echo -e "\e[1;34mInstalling Caddy\e[m"
# Taken from <https://caddyserver.com/docs/install#debian-ubuntu-raspbian>
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
fi
Julia
First, we specify the Julia version we want and hope that the relevant paths continue to be predictable.
JULIA_VERSION="1.8.2"
If either the julia
command does not exist, or julia --version
does not match
the expected output, then we will install Julia in /opt/julia
and symlink the
binary into /usr/bin
.
if ! command -v julia > /dev/null || [ ! $(julia --version) = "julia version $JULIA_VERSION" ]; then
echo -e "\e[1;34mInstalling Julia\e[m"
pushd /tmp > /dev/null
# Following <https://julialang.org/downloads/platform/>
wget "https://julialang-s3.julialang.org/bin/linux/x64/${JULIA_VERSION%.*}/julia-$JULIA_VERSION-linux-x86_64.tar.gz"
mkdir -p "/opt/julia/"
tar zxvf "julia-$JULIA_VERSION-linux-x86_64.tar.gz" --directory=/opt/julia
ln -sf "/opt/julia/julia-$JULIA_VERSION/bin/julia" /usr/bin/julia
fi
Copying over relevant files
Before starting to do this, we will obtain the path to the folder of the script, so we can grab files relative to the root of this repository.
SETUPDIR=$(dirname "$(readlink --canonicalize-existing "$0")")
Caddy Config
cp -f "$SETUPDIR/Caddyfile" "/etc/caddy/Caddyfile"