diff --git a/hosts b/hosts index 13a9ad4..e1edb7d 100644 --- a/hosts +++ b/hosts @@ -22,7 +22,7 @@ zerotier_network= [n0xb0x:vars] hostname=n0xb0x -app_list=['bitcoin.yml','electrs.yml','clightning.yml','lnbits.yml','rtl.yml', 'docs.yml'] +app_list=['caddy.yml','bitcoin.yml','electrs.yml','clightning.yml','lnbits.yml','rtl.yml', 'docs.yml'] ansible_user=n0xb0x ansible_password=n0xb0x #registry_url=git.boxxy.net/b0xxer/ @@ -30,6 +30,7 @@ registry_url=localhost registry_user= registry_pass= bitcoin_version=26.0 +caddy_version=2.7.6 clightning_version=23.11.2 clightning_platform=Fedora-28-amd64 bitcoin_rpcuser=n0xb0x diff --git a/roles/apps/tasks/caddy.yml b/roles/apps/tasks/caddy.yml new file mode 100644 index 0000000..effc777 --- /dev/null +++ b/roles/apps/tasks/caddy.yml @@ -0,0 +1,32 @@ +- name: Create containers/caddy dir + ansible.builtin.file: + path: ~/containers/caddy + state: directory + +- name: Create ~/vol/caddy dir + ansible.builtin.file: + path: ~/vol/caddy + state: directory + +- name: Copy Containerfile + ansible.builtin.template: + path: caddy/Containerfile.j2 + dest: ~/containers/caddy/Containerfile + +- name: Copy caddy-node.container + ansible.builtin.template: + path: caddy/caddy-node.container.j2 + dest: ~/containers/caddy/caddy-node.container + +- name: Copy build.sh + ansible.builtin.template: + path: caddy/build.sh.j2 + dest: ~/containers/caddy/build.sh + +- name: Link caddy-node to .config/containers/systemd + ansible.builtin.file: + src: ~/conttainers/caddy/caddy-node.container + dest: ~/.config/containers/systemd/caddy-node.container + state: link + force: true + diff --git a/roles/apps/templates/caddy/Containerfile.j2 b/roles/apps/templates/caddy/Containerfile.j2 new file mode 100644 index 0000000..d436b9b --- /dev/null +++ b/roles/apps/templates/caddy/Containerfile.j2 @@ -0,0 +1,20 @@ +FROM docker.io/almalinux/9-minimal:latest AS builder + +ARG VERSION={{caddy_version}} + +WORKDIR /app + +RUN dnf update -y \ + && dnf install -y wget tar gzip \ + && wget https://github.com/caddyserver/caddy/releases/download/v2.7.6/caddy_${VERSION}_linux_amd64.tar.gz \ + && wget https://github.com/caddyserver/caddy/releases/download/v2.7.6/caddy_${VERSION}_checksums.txt \ + && sha512sum --ignore-missing --check caddy_${VERSION}_checksums.txt \ + && tar xf caddy_${VERSION}_linux_amd64.tar.gz \ + && rm -f caddy_${VERSION}_linux.amd64.tar.gz LICENSE README.md caddy_${VERSION}_checksums.txt \ + && rm -rf /var/cache/* /var/log* /tmp/* + +RUN chmod +x ./caddy + +EXPOSE 8080 8443 + +ENTRYPOINT ["/app/caddy run --config /app/data/caddy.json"] diff --git a/roles/apps/templates/caddy/build.sh.j2 b/roles/apps/templates/caddy/build.sh.j2 new file mode 100755 index 0000000..f989ad0 --- /dev/null +++ b/roles/apps/templates/caddy/build.sh.j2 @@ -0,0 +1,4 @@ +#!/bin/sh + +#Build command to make container +buildah build -t caddy:{{ caddy_version }} --build-arg VERSION={{ caddy_version }} -f Containerfile diff --git a/roles/apps/templates/caddy/caddy-node.container.j2 b/roles/apps/templates/caddy/caddy-node.container.j2 new file mode 100644 index 0000000..8b466a0 --- /dev/null +++ b/roles/apps/templates/caddy/caddy-node.container.j2 @@ -0,0 +1,22 @@ +[Unit] +Description=Caddy Node + +[Container] +# Use the centos image +Image={{ registry_url }}/caddy:{{ caddy_version }} +#Environment=RPCAUTH={{ bitcoin_rpcauth }} + +# Use volume +Volume=/home/{{ansible_user}}/vol/caddy:/data:Z + +[Service] +# Restart service when sleep finishes +Restart=always +# Extend Timeout to allow time to pull the image +TimeoutStartSec=900 +# ExecStartPre flag and other systemd commands can go here, see systemd.unit(5) man page. +# ExecStartPre=/usr/share/mincontainer/setup.sh + +[Install] +# Start by default on boot +WantedBy=multi-user.target default.target diff --git a/roles/install/tasks/main.yml b/roles/install/tasks/main.yml index d9052fd..ff7c7b4 100644 --- a/roles/install/tasks/main.yml +++ b/roles/install/tasks/main.yml @@ -44,7 +44,6 @@ - zerotier-one - python3-pip - smartmontools - - caddy tags: install - name: Install local tools