Push lots of changes to catch up on restructuring
This commit is contained in:
parent
e87b9e6579
commit
b34dd95b7c
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
oci-archive.tar
|
|
||||||
build_id
|
build_id
|
||||||
|
build_log
|
||||||
|
image/
|
||||||
secrets/
|
secrets/
|
||||||
|
52
Makefile
52
Makefile
@ -2,49 +2,69 @@ include config.mk
|
|||||||
|
|
||||||
.DEFAULT_GOAL := all
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
# Disabled due to https://github.com/containers/buildah/issues/5581
|
||||||
|
#REPO_STAMP := push-stamp
|
||||||
|
#REPO_PATH := repo/
|
||||||
|
#REPO_STAMPS := $(addsuffix /${REPO_STAMP},${CONTAINERS})
|
||||||
|
#
|
||||||
|
#%/${REPO_STAMP}: %/${BUILD_ID_OUT}
|
||||||
|
# @mkdir -p ${REPO_PATH}
|
||||||
|
# buildah push \
|
||||||
|
# -f oci \
|
||||||
|
# --compression-format zstd \
|
||||||
|
# --compression-level 10 \
|
||||||
|
# $(shell cat $<) \
|
||||||
|
# oci:${REPO_PATH}:$*:latest
|
||||||
|
# touch $@
|
||||||
|
|
||||||
|
MANIFEST_FILE = ${IMAGE_DIR}/manifest.json
|
||||||
|
|
||||||
# Autogenerated lists
|
# Autogenerated lists
|
||||||
CONTAINERS := $(shell find ./ -name 'Containerfile' -exec 'dirname' '{}' ';' | cut -d'/' -f2-)
|
CONTAINERS := $(shell find ./ -name 'Containerfile' -exec 'dirname' '{}' ';' | cut -d'/' -f2-)
|
||||||
IMAGES := $(addsuffix /${IMAGE_OUTPUT},${CONTAINERS})
|
IMAGE_DIRS := $(addsuffix /${IMAGE_DIR},${CONTAINERS})
|
||||||
BUILD_IDS := $(addsuffix /${BUILD_ID_OUT},${CONTAINERS})
|
BUILD_IDS := $(addsuffix /${BUILD_ID_OUT},${CONTAINERS})
|
||||||
|
BUILD_LOGS := $(addsuffix /${BUILD_LOG},${CONTAINERS})
|
||||||
|
MANIFESTS := $(addsuffix /${MANIFEST_FILE},${CONTAINERS})
|
||||||
|
|
||||||
# Make workaround
|
# Make workaround
|
||||||
# Inserting literal commas into function calls without interpreting them as delimiters
|
# Inserting literal commas into function calls without interpreting them as delimiters
|
||||||
, := ,
|
, := ,
|
||||||
|
|
||||||
# Build all containers in order by default
|
# Build all containers in order by default
|
||||||
all: oci
|
all: unified
|
||||||
|
|
||||||
oci: $(IMAGES)
|
unified: $(MANIFESTS) # $(REPO_STAMPS)
|
||||||
localbuild: $(BUILD_IDS)
|
localbuild: $(BUILD_IDS)
|
||||||
import: $(addsuffix /import,${IMAGES})
|
|
||||||
|
|
||||||
# Build process
|
# Build process
|
||||||
%/${IMAGE_OUTPUT}: %/${BUILD_ID_OUT}
|
%/${MANIFEST_FILE}: %/${BUILD_ID_OUT}
|
||||||
|
@mkdir -p $*/${IMAGE_DIR}
|
||||||
buildah push \
|
buildah push \
|
||||||
-f oci \
|
-f oci \
|
||||||
$(shell cat $<) \
|
$(shell cat $<) \
|
||||||
oci-archive:$@:${DOMAIN}/$*:$(shell date +%s)
|
dir:$*/${IMAGE_DIR}
|
||||||
|
|
||||||
%/${IMAGE_OUTPUT}/import: %/${IMAGE_OUTPUT}
|
|
||||||
buildah pull \
|
|
||||||
oci-archive:$<
|
|
||||||
|
|
||||||
%/${BUILD_ID_OUT}: %/Containerfile
|
%/${BUILD_ID_OUT}: %/Containerfile
|
||||||
buildah build \
|
buildah build \
|
||||||
--jobs 0 \
|
--jobs 0 \
|
||||||
--network=none \
|
--network=none \
|
||||||
--layers=true \
|
--logfile=$*/${BUILD_LOG} \
|
||||||
-t ${DOMAIN}/$*:latest \
|
-t $*:latest \
|
||||||
--iidfile $*/${BUILD_ID_OUT} \
|
--iidfile $@ \
|
||||||
$(foreach secretpath,$(wildcard $*/secrets/*),\
|
$(foreach secretpath,$(wildcard $*/secrets/*),\
|
||||||
--secret id=$(patsubst $*/secrets/%,%,${secretpath})$(,)src=${secretpath}) \
|
--secret id=$(patsubst $*/secrets/%,%,${secretpath})$(,)src=${secretpath}) \
|
||||||
$*
|
$*
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
clean:
|
clean: cleanbuild cleandirs
|
||||||
-rm -rv ${IMAGES} ${BUILD_IDS}
|
|
||||||
|
|
||||||
.PHONY: all localbuild oci clean import
|
cleanbuild:
|
||||||
|
-rm -rv ${BUILD_IDS}
|
||||||
|
|
||||||
|
cleandirs:
|
||||||
|
-rm -rv ${IMAGE_DIRS}
|
||||||
|
|
||||||
|
.PHONY: all clean cleanbuild cleandirs localbuild unified
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|
||||||
# Somehow GNU make forgets these are intermediates if not explicitly stated, feel free to look into it *shrug*
|
# Somehow GNU make forgets these are intermediates if not explicitly stated, feel free to look into it *shrug*
|
||||||
|
89
config.mk
89
config.mk
@ -1,88 +1,5 @@
|
|||||||
DOMAIN := redxen.eu
|
IMAGE_DIR := image
|
||||||
|
|
||||||
IMAGE_OUTPUT := oci-archive.tar
|
|
||||||
BUILD_ID_OUT := build_id
|
BUILD_ID_OUT := build_id
|
||||||
|
BUILD_LOG := build_log
|
||||||
|
|
||||||
# DNS
|
include */config.mk
|
||||||
daemons/nsd/${BUILD_ID_OUT}: daemons/nsd/% : \
|
|
||||||
daemons/nsd/nsd.conf \
|
|
||||||
data/dns/%
|
|
||||||
|
|
||||||
data/dns/${BUILD_ID_OUT}: data/dns/% : \
|
|
||||||
data/dns/redxen.eu \
|
|
||||||
data/dnssec/% \
|
|
||||||
data/opendkim/%
|
|
||||||
|
|
||||||
# Certificates
|
|
||||||
data/postgres-cert/${BUILD_ID_OUT}: data/postgres-cert/% : \
|
|
||||||
data/postgres-cert/x509v3_config \
|
|
||||||
data/postgres-cert/gen-cert.sh \
|
|
||||||
data/ca/%
|
|
||||||
|
|
||||||
data/letsencrypt/${BUILD_ID_OUT}: data/letsencrypt/% : \
|
|
||||||
data/letsencrypt/ca.crt \
|
|
||||||
data/letsencrypt/public.crt \
|
|
||||||
data/letsencrypt/secrets/private.key
|
|
||||||
|
|
||||||
data/selfsigned/${BUILD_ID_OUT}: data/selfsigned/% : \
|
|
||||||
data/postgres-cert/x509v3_config \
|
|
||||||
data/selfsigned/gen-cert.sh \
|
|
||||||
data/ca/%
|
|
||||||
|
|
||||||
# Databases
|
|
||||||
daemons/postgres/${BUILD_ID_OUT}: daemons/postgres/% : \
|
|
||||||
daemons/postgres/disable-hba-patcher.patch \
|
|
||||||
daemons/postgres/postgresql.conf \
|
|
||||||
daemons/postgres/init-db-hba.py \
|
|
||||||
data/ca/% \
|
|
||||||
data/postgres-cert/%
|
|
||||||
|
|
||||||
daemons/redis/${BUILD_ID_OUT}: daemons/redis/% : \
|
|
||||||
daemons/redis/redis.conf
|
|
||||||
|
|
||||||
daemons/etcd/${BUILD_ID_OUT}: daemons/etcd/% : \
|
|
||||||
data/ca/% \
|
|
||||||
data/selfsigned/%
|
|
||||||
|
|
||||||
# Monitoring
|
|
||||||
daemons/grafana/${BUILD_ID_OUT}: daemons/grafana/% : \
|
|
||||||
daemons/grafana/config.ini \
|
|
||||||
data/ca/% \
|
|
||||||
data/postgres-cert/%
|
|
||||||
|
|
||||||
daemons/prometheus/${BUILD_ID_OUT}: daemons/prometheus/% : \
|
|
||||||
daemons/prometheus/config.yaml
|
|
||||||
|
|
||||||
# Mail
|
|
||||||
daemons/opendkim/${BUILD_ID_OUT}: daemons/opendkim/% : \
|
|
||||||
daemons/opendkim/trusted_hosts \
|
|
||||||
daemons/opendkim/opendkim.conf \
|
|
||||||
data/opendkim/%
|
|
||||||
|
|
||||||
daemons/rspamd/${BUILD_ID_OUT}: daemons/rspamd/% : \
|
|
||||||
daemons/rspamd/config/
|
|
||||||
|
|
||||||
daemons/dovecot/${BUILD_ID_OUT}: daemons/dovecot/% : \
|
|
||||||
daemons/dovecot/automove.sieve \
|
|
||||||
daemons/dovecot/dovecot.conf \
|
|
||||||
daemons/dovecot/pgsql.conf \
|
|
||||||
data/ca/% \
|
|
||||||
data/postgres-cert/% \
|
|
||||||
data/letsencrypt/%
|
|
||||||
|
|
||||||
daemons/postfix/${BUILD_ID_OUT}: daemons/postfix/% : \
|
|
||||||
daemons/postfix/main.cf \
|
|
||||||
daemons/postfix/master.cf \
|
|
||||||
daemons/postfix/pgsql-aliases.cf \
|
|
||||||
daemons/postfix/pgsql-users.cf \
|
|
||||||
data/ca/% \
|
|
||||||
data/postgres-cert/% \
|
|
||||||
data/letsencrypt/%
|
|
||||||
|
|
||||||
# Other
|
|
||||||
daemons/murmurd/${BUILD_ID_OUT}: daemons/murmurd/% : \
|
|
||||||
daemons/murmurd/murmur.ini \
|
|
||||||
daemons/murmurd/secrets/mregpass \
|
|
||||||
data/ca/% \
|
|
||||||
data/postgres-cert/% \
|
|
||||||
data/selfsigned/%
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
randmac() {
|
|
||||||
printf \
|
|
||||||
'%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X\n' \
|
|
||||||
'242' '0' '0' \
|
|
||||||
"$(randhextet)" "$(randhextet)" "$(randhextet)"
|
|
||||||
}
|
|
||||||
|
|
||||||
randhextet() {
|
|
||||||
seq 0 255 | shuf | head -n 1
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=dovecot-data,dst=/var/mail/ \
|
|
||||||
oci-archive:daemons/dovecot/oci-archive.tar:redxen.eu/daemons/dovecot:latest
|
|
@ -1,41 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
OWNHOST="[::1]"
|
|
||||||
|
|
||||||
podman run \
|
|
||||||
-d \
|
|
||||||
--network=host \
|
|
||||||
--name node-1 \
|
|
||||||
redxen.eu/daemons/etcd \
|
|
||||||
--name node-1 \
|
|
||||||
--listen-peer-urls 'https://[::]:2380' \
|
|
||||||
--initial-advertise-peer-urls "https://$OWNHOST:2380" \
|
|
||||||
--listen-client-urls 'https://[::]:2379' \
|
|
||||||
--advertise-client-urls "https://$OWNHOST:2379" \
|
|
||||||
--initial-cluster-state new \
|
|
||||||
--initial-cluster "node-1=https://$OWNHOST:2380,node-2=https://$OWNHOST:2381,node-3=https://$OWNHOST:2382"
|
|
||||||
|
|
||||||
podman run \
|
|
||||||
-d \
|
|
||||||
--network=host \
|
|
||||||
--name node-2 \
|
|
||||||
redxen.eu/daemons/etcd \
|
|
||||||
--name node-2 \
|
|
||||||
--listen-peer-urls 'https://[::]:2381' \
|
|
||||||
--initial-advertise-peer-urls "https://$OWNHOST:2381" \
|
|
||||||
--listen-client-urls 'https://[::]:2378' \
|
|
||||||
--advertise-client-urls "https://$OWNHOST:2378" \
|
|
||||||
--initial-cluster-state new \
|
|
||||||
--initial-cluster "node-1=https://$OWNHOST:2380,node-2=https://$OWNHOST:2381,node-3=https://$OWNHOST:2382"
|
|
||||||
|
|
||||||
podman run \
|
|
||||||
-d \
|
|
||||||
--network=host \
|
|
||||||
--name node-3 \
|
|
||||||
redxen.eu/daemons/etcd \
|
|
||||||
--name node-3 \
|
|
||||||
--listen-peer-urls 'https://[::]:2382' \
|
|
||||||
--initial-advertise-peer-urls "https://$OWNHOST:2382" \
|
|
||||||
--listen-client-urls 'https://[::]:2377' \
|
|
||||||
--advertise-client-urls "https://$OWNHOST:2377" \
|
|
||||||
--initial-cluster-state new \
|
|
||||||
--initial-cluster "node-1=https://$OWNHOST:2380,node-2=https://$OWNHOST:2381,node-3=https://$OWNHOST:2382"
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman pod create \
|
|
||||||
--userns=auto \
|
|
||||||
--network=host \
|
|
||||||
host
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman network create \
|
|
||||||
--ipv6 \
|
|
||||||
-d macvlan \
|
|
||||||
--ipam-driver host-local \
|
|
||||||
--subnet 172.20.254.192/30 \
|
|
||||||
macvlan-br
|
|
||||||
|
|
||||||
podman pod create \
|
|
||||||
--userns=auto \
|
|
||||||
--dns='2606:4700:4700::1111' \
|
|
||||||
--dns='2606:4700:4700::1001' \
|
|
||||||
--dns='2001:4860:4860::8888' \
|
|
||||||
--dns='2001:4860:4860::8844' \
|
|
||||||
--dns='1.1.1.1' \
|
|
||||||
--dns='1.0.0.1' \
|
|
||||||
--dns='8.8.8.8' \
|
|
||||||
--dns='8.8.4.4' \
|
|
||||||
--network=macvlan-br \
|
|
||||||
macvlan
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod macvlan \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=nsd-data,dst=/var/lib/nsd/ \
|
|
||||||
oci-archive:daemons/nsd/oci-archive.tar:redxen.eu/daemons/nsd:latest
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
oci-archive:daemons/opendkim/oci-archive.tar:redxen.eu/daemons/opendkim:latest
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=postfix-data,dst=/var/lib/postfix/ \
|
|
||||||
oci-archive:daemons/postfix/oci-archive.tar:redxen.eu/daemons/postfix:latest
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=postgres-data,dst=/var/lib/postgres/ \
|
|
||||||
oci-archive:daemons/postgres/oci-archive.tar:redxen.eu/daemons/postgres:latest
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=prometheus-data,dst=/var/lib/prometheus/data \
|
|
||||||
oci-archive:daemons/prometheus/oci-archive.tar:redxen.eu/daemons/prometheus:latest
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
--mount type=volume,src=redis-data,dst=/var/lib/redis/ \
|
|
||||||
oci-archive:daemons/redis/oci-archive.tar:redxen.eu/daemons/redis:latest
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. "$(dirname $0)"/common.sh
|
|
||||||
|
|
||||||
podman container create \
|
|
||||||
--pod host \
|
|
||||||
--pull missing \
|
|
||||||
--image-volume tmpfs \
|
|
||||||
oci-archive:daemons/rspamd/oci-archive.tar:redxen.eu/daemons/rspamd:latest
|
|
@ -1,69 +0,0 @@
|
|||||||
@@ -98,59 +98,6 @@
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
-# print large warning if POSTGRES_PASSWORD is long
|
|
||||||
-# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust'
|
|
||||||
-# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust'
|
|
||||||
-# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ]
|
|
||||||
-docker_verify_minimum_env() {
|
|
||||||
- # check password first so we can output the warning before postgres
|
|
||||||
- # messes it up
|
|
||||||
- if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then
|
|
||||||
- cat >&2 <<-'EOWARN'
|
|
||||||
-
|
|
||||||
- WARNING: The supplied POSTGRES_PASSWORD is 100+ characters.
|
|
||||||
-
|
|
||||||
- This will not work if used via PGPASSWORD with "psql".
|
|
||||||
-
|
|
||||||
- https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412)
|
|
||||||
- https://github.com/docker-library/postgres/issues/507
|
|
||||||
-
|
|
||||||
- EOWARN
|
|
||||||
- fi
|
|
||||||
- if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then
|
|
||||||
- # The - option suppresses leading tabs but *not* spaces. :)
|
|
||||||
- cat >&2 <<-'EOE'
|
|
||||||
- Error: Database is uninitialized and superuser password is not specified.
|
|
||||||
- You must specify POSTGRES_PASSWORD to a non-empty value for the
|
|
||||||
- superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".
|
|
||||||
-
|
|
||||||
- You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
|
|
||||||
- connections without a password. This is *not* recommended.
|
|
||||||
-
|
|
||||||
- See PostgreSQL documentation about "trust":
|
|
||||||
- https://www.postgresql.org/docs/current/auth-trust.html
|
|
||||||
- EOE
|
|
||||||
- exit 1
|
|
||||||
- fi
|
|
||||||
- if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then
|
|
||||||
- cat >&2 <<-'EOWARN'
|
|
||||||
- ********************************************************************************
|
|
||||||
- WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow
|
|
||||||
- anyone with access to the Postgres port to access your database without
|
|
||||||
- a password, even if POSTGRES_PASSWORD is set. See PostgreSQL
|
|
||||||
- documentation about "trust":
|
|
||||||
- https://www.postgresql.org/docs/current/auth-trust.html
|
|
||||||
- In Docker's default configuration, this is effectively any other
|
|
||||||
- container on the same system.
|
|
||||||
-
|
|
||||||
- It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace
|
|
||||||
- it with "-e POSTGRES_PASSWORD=password" instead to set a password in
|
|
||||||
- "docker run".
|
|
||||||
- ********************************************************************************
|
|
||||||
- EOWARN
|
|
||||||
- fi
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
# usage: docker_process_init_files [file [file [...]]]
|
|
||||||
# ie: docker_process_init_files /always-initdb.d/*
|
|
||||||
# process initializer files, based on file extensions and permissions
|
|
||||||
@@ -310,8 +257,6 @@
|
|
||||||
|
|
||||||
# only run initialization on an empty data directory
|
|
||||||
if [ -z "$DATABASE_ALREADY_EXISTS" ]; then
|
|
||||||
- docker_verify_minimum_env
|
|
||||||
-
|
|
||||||
# check dir permissions to reduce likelihood of half-initialized database
|
|
||||||
ls /docker-entrypoint-initdb.d/ > /dev/null
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
FROM alpine:latest AS signer
|
|
||||||
|
|
||||||
RUN --network=host apk add \
|
|
||||||
cmd:dnssec-signzone \
|
|
||||||
cmd:named-checkzone
|
|
||||||
|
|
||||||
RUN mkdir -p /tmp/zones
|
|
||||||
ADD redxen.eu /tmp/zones/redxen.eu
|
|
||||||
RUN sed -i 's/CURRENTSOA/'"$(date +'%Y%m%d'01)"'/' /tmp/zones/redxen.eu
|
|
||||||
|
|
||||||
# Copy keys into the signer
|
|
||||||
COPY --from=redxen.eu/data/dnssec:latest "/redxen.eu" "/tmp/keys/redxen.eu"
|
|
||||||
COPY --from=redxen.eu/data/opendkim:latest "/redxen.eu" "/tmp/opendkim/redxen.eu"
|
|
||||||
|
|
||||||
# Add keys to zone
|
|
||||||
RUN cat /tmp/keys/redxen.eu/*.key | tee -a /tmp/zones/redxen.eu
|
|
||||||
|
|
||||||
# Add OpenDKIM record to zone
|
|
||||||
RUN cat /tmp/opendkim/redxen.eu/*.txt | tee -a /tmp/zones/redxen.eu
|
|
||||||
|
|
||||||
# Sign zone
|
|
||||||
RUN dnssec-signzone -t \
|
|
||||||
-K /tmp/keys/redxen.eu/ \
|
|
||||||
-o redxen.eu \
|
|
||||||
-f /tmp/zones/redxen.eu \
|
|
||||||
-e "+90d" \
|
|
||||||
/tmp/zones/redxen.eu
|
|
||||||
|
|
||||||
# Verify zone after signing
|
|
||||||
RUN named-checkzone redxen.eu /tmp/zones/redxen.eu
|
|
||||||
|
|
||||||
# Copy back only signed zone
|
|
||||||
FROM scratch
|
|
||||||
COPY --from=signer /tmp/zones /dns-zones
|
|
@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
|
|
||||||
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
|
||||||
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
|
|
||||||
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
|
|
||||||
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
|
||||||
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
|
|
||||||
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
|
|
||||||
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
|
|
||||||
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
|
|
||||||
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
|
|
||||||
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
|
|
||||||
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
|
|
||||||
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
|
|
||||||
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
|
|
||||||
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
|
|
||||||
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
|
|
||||||
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
|
|
||||||
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
|
|
||||||
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
|
|
||||||
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
|
|
||||||
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
|
|
||||||
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
|
|
||||||
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
|
|
||||||
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
|
|
||||||
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
|
|
||||||
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
|
|
||||||
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
|
|
||||||
nLRbwHOoq7hHwg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
|
|
||||||
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
|
||||||
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
|
|
||||||
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
|
||||||
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
|
|
||||||
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
|
|
||||||
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
|
|
||||||
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
|
|
||||||
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
|
|
||||||
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
|
|
||||||
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
|
|
||||||
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
|
|
||||||
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
|
|
||||||
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
|
|
||||||
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
|
|
||||||
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
|
|
||||||
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
|
|
||||||
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
|
|
||||||
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
|
|
||||||
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
|
|
||||||
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
|
|
||||||
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
|
|
||||||
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
|
|
||||||
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
|
|
||||||
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
|
|
||||||
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
|
|
||||||
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
|
|
||||||
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
|
|
||||||
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,29 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIE6zCCA9OgAwIBAgISAy/p3h/wo08W4wsYNslIELVmMA0GCSqGSIb3DQEBCwUA
|
|
||||||
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
|
|
||||||
EwJSMzAeFw0yMzEwMTYxMjIyMjNaFw0yNDAxMTQxMjIyMjJaMBQxEjAQBgNVBAMT
|
|
||||||
CXJlZHhlbi5ldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANeD0yl2
|
|
||||||
aQaIK73GpBOA1JpdesESlCvjEw9g84uN8Yk4fG77wGcDZw1Ja4vrj9MBmzvnLMUe
|
|
||||||
j5mizZP2L3eIgx3KKsuIT4hClGSR/oeN0cL93RUYAwZqW1q8NBuAxu1QPhXn82ZK
|
|
||||||
8qLnlZGJQBvRy2rCAru26QjgeJHt7P9jdDpq0KolT3Nlt+gmO/oJJiZUcfvUWJ+K
|
|
||||||
D0cX7BQy+GFH4XSAWSMB1w+HhLaKUESaBfSvAuX6awUu1JfbJW0yUoG+We9/RuMI
|
|
||||||
44TDLGfVujmpRYgcOlJRBQiSXi/pMie1kdQqev0uFYRCSuM6QTkHlPYRrPXHPZks
|
|
||||||
vmqRDe1do7TgnFkCAwEAAaOCAhcwggITMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE
|
|
||||||
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU
|
|
||||||
PIwzPDkx1+DgEji18Q8rc+Y0dXAwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+v
|
|
||||||
nYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5s
|
|
||||||
ZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wIQYD
|
|
||||||
VR0RBBowGIILKi5yZWR4ZW4uZXWCCXJlZHhlbi5ldTATBgNVHSAEDDAKMAgGBmeB
|
|
||||||
DAECATCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB1ANq2v2s/tbYin5vCu1xr6HCR
|
|
||||||
cWy7UYSFNL2kPTBI1/urAAABizim4x8AAAQDAEYwRAIgJQdzMMJr9YZLo3CEw5K7
|
|
||||||
cM8EhBue/QmJNNM9Tk3z+RkCIAjG4Ix37WGEAouSh/eutvyH0fx7Ry6I/+QKsS+5
|
|
||||||
xUcZAHYAdv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGLOKbjTgAA
|
|
||||||
BAMARzBFAiBXQmNcEN2iIIYJjvKf0ZbFUYRzK8CrFk0iB5Qk08gPZAIhAP1ogV9F
|
|
||||||
V3XsGB5iFjnLDpU75mrizxqNTO8w9uRZbZNmMA0GCSqGSIb3DQEBCwUAA4IBAQCZ
|
|
||||||
m1idEdbYkq6g23rwl4RiwE4wFa4IIeCp632Cuv2SaD4tRBAyIXiAvi1bYpz/qN1A
|
|
||||||
14e++ufnRu6pwjrKBSI8sZwZLqWapdRJFp09vJK+o1M7+2kO2dYG6HX4C95Mrkku
|
|
||||||
yw87mrc0M8U8Uw2NIxGYwPn5QFLies6mSaP/eqVkXOIOaglxDMyPIOCBqTu0c/KV
|
|
||||||
cIY77MCqAv9J7pSFAn76dHeLZEYP4hPP9JocVTYFEzv2ZCTyvWR0Icu4ujfp3FVa
|
|
||||||
uJnr16oWSHLXAL8gkNYruktc6CbJcQezQWClVAdTXGc3+0hxz7eTlEs/8O16ocN/
|
|
||||||
EgIR8Ef47UL9jhVX8cT7
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,28 +0,0 @@
|
|||||||
FROM alpine:latest as generator
|
|
||||||
|
|
||||||
RUN --network=host apk add \
|
|
||||||
cmd:openssl
|
|
||||||
|
|
||||||
COPY --from=redxen.eu/data/ca:latest "/redxen.eu" "/ca"
|
|
||||||
|
|
||||||
ADD x509v3_config /tmp/x509v3_config
|
|
||||||
|
|
||||||
RUN mkdir -p "/redxen.eu/certs"
|
|
||||||
RUN mkdir -p "/redxen.eu/keys"
|
|
||||||
|
|
||||||
WORKDIR "/redxen.eu"
|
|
||||||
|
|
||||||
ADD gen-cert.sh /tmp/gen-cert.sh
|
|
||||||
|
|
||||||
# Server
|
|
||||||
RUN /tmp/gen-cert.sh postgres
|
|
||||||
|
|
||||||
# Roles
|
|
||||||
RUN /tmp/gen-cert.sh murmur
|
|
||||||
RUN /tmp/gen-cert.sh dovecot
|
|
||||||
RUN /tmp/gen-cert.sh postfix
|
|
||||||
RUN /tmp/gen-cert.sh grafana
|
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
|
|
||||||
COPY --from=generator "/redxen.eu" "/redxen.eu"
|
|
@ -1,22 +0,0 @@
|
|||||||
FROM alpine:latest as generator
|
|
||||||
|
|
||||||
RUN --network=host apk add \
|
|
||||||
cmd:openssl
|
|
||||||
|
|
||||||
COPY --from=redxen.eu/data/ca:latest "/redxen.eu" "/ca"
|
|
||||||
|
|
||||||
ADD x509v3_config /tmp/x509v3_config
|
|
||||||
|
|
||||||
RUN mkdir -p "/redxen.eu/certs"
|
|
||||||
RUN mkdir -p "/redxen.eu/keys"
|
|
||||||
|
|
||||||
WORKDIR "/redxen.eu"
|
|
||||||
|
|
||||||
ADD gen-cert.sh /tmp/gen-cert.sh
|
|
||||||
|
|
||||||
RUN /tmp/gen-cert.sh mumble "DNS: mumble.redxen.eu"
|
|
||||||
RUN /tmp/gen-cert.sh etcd "IP: 0:0:0:0:0:0:0:1, IP: 127.0.0.1, DNS: localhost" # I hate i cannot use compressor here but it is what it is
|
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
|
|
||||||
COPY --from=generator "/redxen.eu" "/redxen.eu"
|
|
97
redxen.eu/config.mk
Normal file
97
redxen.eu/config.mk
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
# DNS
|
||||||
|
redxen.eu/daemons/nsd/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/nsd.conf \
|
||||||
|
redxen.eu/data/dns/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/data/dns/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/redxen.eu \
|
||||||
|
redxen.eu/data/dnssec/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/opendkim/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
# Certificates
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/x509v3_config \
|
||||||
|
%/gen-cert.sh \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/data/letsencrypt/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/ca.crt \
|
||||||
|
%/public.crt \
|
||||||
|
%/secrets/private.key
|
||||||
|
|
||||||
|
redxen.eu/data/selfsigned/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/x509v3_config \
|
||||||
|
%/gen-cert.sh \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
# Databases
|
||||||
|
redxen.eu/daemons/postgres/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/disable-hba-patcher.patch \
|
||||||
|
%/postgresql.conf \
|
||||||
|
%/init-db-hba.py \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/daemons/redis/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/redis.conf
|
||||||
|
|
||||||
|
redxen.eu/daemons/etcd/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/selfsigned/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
# Monitoring
|
||||||
|
redxen.eu/daemons/grafana/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/config.ini \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/daemons/prometheus/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/config.yaml
|
||||||
|
|
||||||
|
# Mail
|
||||||
|
redxen.eu/daemons/opendkim/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/trusted_hosts \
|
||||||
|
%/opendkim.conf \
|
||||||
|
redxen.eu/data/opendkim/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/daemons/rspamd/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/config/
|
||||||
|
|
||||||
|
redxen.eu/daemons/dovecot/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/automove.sieve \
|
||||||
|
%/dovecot.conf \
|
||||||
|
%/pgsql.conf \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/letsencrypt/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/daemons/postfix/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/main.cf \
|
||||||
|
%/master.cf \
|
||||||
|
%/pgsql-aliases.cf \
|
||||||
|
%/pgsql-users.cf \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/letsencrypt/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
# Other
|
||||||
|
redxen.eu/daemons/murmurd/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/murmur.ini \
|
||||||
|
%/secrets/mregpass \
|
||||||
|
redxen.eu/data/ca/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/postgres-cert/${BUILD_ID_OUT} \
|
||||||
|
redxen.eu/data/selfsigned/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
# Services
|
||||||
|
redxen.eu/services/tshock/terraria-rx/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/config.json \
|
||||||
|
%/motd.txt \
|
||||||
|
%/sscconfig.json \
|
||||||
|
%/bootstrap.sh \
|
||||||
|
redxen.eu/services/tshock/base/${BUILD_ID_OUT}
|
||||||
|
|
||||||
|
redxen.eu/services/minecraft/minecraft-rx/${BUILD_ID_OUT}: %/${BUILD_ID_OUT} : \
|
||||||
|
%/config/ops.json \
|
||||||
|
%/config/server.properties \
|
||||||
|
%/config/server-icon.png \
|
||||||
|
redxen.eu/services/minecraft/spigot/${BUILD_ID_OUT}
|
9
redxen.eu/daemons/postgres/disable-hba-patcher.patch
Normal file
9
redxen.eu/daemons/postgres/disable-hba-patcher.patch
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
@@ -310,8 +257,6 @@
|
||||||
|
|
||||||
|
# only run initialization on an empty data directory
|
||||||
|
if [ -z "$DATABASE_ALREADY_EXISTS" ]; then
|
||||||
|
- docker_verify_minimum_env
|
||||||
|
-
|
||||||
|
# check dir permissions to reduce likelihood of half-initialized database
|
||||||
|
ls /docker-entrypoint-initdb.d/ > /dev/null
|
||||||
|
|
36
redxen.eu/data/dns/Containerfile
Normal file
36
redxen.eu/data/dns/Containerfile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
FROM alpine:latest AS signer
|
||||||
|
|
||||||
|
RUN --network=host apk add \
|
||||||
|
cmd:dnssec-signzone \
|
||||||
|
cmd:named-checkzone
|
||||||
|
|
||||||
|
RUN mkdir -p /tmp/zones
|
||||||
|
ADD redxen.eu /tmp/zones/redxen.eu
|
||||||
|
RUN sed -i 's/CURRENTSOA/'"$(date +'%Y%m%d'01)"'/' /tmp/zones/redxen.eu
|
||||||
|
|
||||||
|
# Add keys to zone
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/dnssec:latest,src=/redxen.eu,dst=/tmp/keys/redxen.eu \
|
||||||
|
cat /tmp/keys/redxen.eu/*.key | tee -a /tmp/zones/redxen.eu
|
||||||
|
|
||||||
|
# Add OpenDKIM record to zone
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/opendkim:latest,src=/redxen.eu,dst=/tmp/opendkim/redxen.eu \
|
||||||
|
cat /tmp/opendkim/redxen.eu/*.txt | tee -a /tmp/zones/redxen.eu
|
||||||
|
|
||||||
|
# Sign zone
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/dnssec:latest,src=/redxen.eu,dst=/tmp/keys/redxen.eu \
|
||||||
|
dnssec-signzone -t \
|
||||||
|
-K /tmp/keys/redxen.eu/ \
|
||||||
|
-o redxen.eu \
|
||||||
|
-f /tmp/zones/redxen.eu \
|
||||||
|
-e "+90d" \
|
||||||
|
/tmp/zones/redxen.eu
|
||||||
|
|
||||||
|
# Verify zone after signing
|
||||||
|
RUN named-checkzone redxen.eu /tmp/zones/redxen.eu
|
||||||
|
|
||||||
|
# Copy back only signed zone
|
||||||
|
FROM scratch
|
||||||
|
COPY --from=signer /tmp/zones /dns-zones
|
30
redxen.eu/data/letsencrypt/ca.crt
Normal file
30
redxen.eu/data/letsencrypt/ca.crt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
29
redxen.eu/data/letsencrypt/public.crt
Normal file
29
redxen.eu/data/letsencrypt/public.crt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIE7zCCA9egAwIBAgISA9wIO523zACIjRt1WNOIq/1gMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
|
||||||
|
EwNSMTEwHhcNMjQwNjIzMDcxNTEwWhcNMjQwOTIxMDcxNTA5WjAUMRIwEAYDVQQD
|
||||||
|
EwlyZWR4ZW4uZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXg9Mp
|
||||||
|
dmkGiCu9xqQTgNSaXXrBEpQr4xMPYPOLjfGJOHxu+8BnA2cNSWuL64/TAZs75yzF
|
||||||
|
Ho+Zos2T9i93iIMdyirLiE+IQpRkkf6HjdHC/d0VGAMGaltavDQbgMbtUD4V5/Nm
|
||||||
|
SvKi55WRiUAb0ctqwgK7tukI4HiR7ez/Y3Q6atCqJU9zZbfoJjv6CSYmVHH71Fif
|
||||||
|
ig9HF+wUMvhhR+F0gFkjAdcPh4S2ilBEmgX0rwLl+msFLtSX2yVtMlKBvlnvf0bj
|
||||||
|
COOEwyxn1bo5qUWIHDpSUQUIkl4v6TIntZHUKnr9LhWEQkrjOkE5B5T2Eaz1xz2Z
|
||||||
|
LL5qkQ3tXaO04JxZAgMBAAGjggIaMIICFjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l
|
||||||
|
BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE
|
||||||
|
FP+Xg42YO9kovig2E+M9PUsGHosiMB8GA1UdIwQYMBaAFMXPRqTq9MPAemyVxC2w
|
||||||
|
XpIvJuO5MFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0cDovL3IxMS5v
|
||||||
|
LmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMS5pLmxlbmNyLm9yZy8w
|
||||||
|
IQYDVR0RBBowGIILKi5yZWR4ZW4uZXWCCXJlZHhlbi5ldTATBgNVHSAEDDAKMAgG
|
||||||
|
BmeBDAECATCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AEiw42vapkc0D+VqAvqd
|
||||||
|
MOscUgHLVt0sgdm7v6s52IRzAAABkEQp1BMAAAQDAEcwRQIhALYLjsfbpfNTJTSB
|
||||||
|
e4m3lETv3TCWDSZimMVQJs5BFlY+AiBOCFHIja+O+A5snx0pZvSdHgA9RuPGN5d6
|
||||||
|
ddO/OwS+lwB2AD8XS0/XIkdYlB1lHIS+DRLtkDd/H4Vq68G/KIXs+GRuAAABkEQp
|
||||||
|
1BEAAAQDAEcwRQIgFaQQBaUZ55MMT59f6WgzYdYxglJ9+DtoA+jG6iSnz1gCIQCH
|
||||||
|
lxRR+yPkGGEkZNj11r3F6mlFfAgERLje1561Snjg3TANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEAPzm70djhcgCfXiFUY7JlIKJ4/vim96u8kKGGW+kCfqheQEWmJluvtexk2qsp
|
||||||
|
ErkPbfmQDPKIdMiCAg8vHA+4k5R4o4iHEuAIx0RTBVrBtCXS83hHfsbKWGUNQ8eL
|
||||||
|
PG8qZV864nxWcCcSA+La4s8QxN7DRbDDQahC6UtEwuUNSYuKmebML59BYSNvfCza
|
||||||
|
nrBnImMfCxf25NMIVj7sTLcRg+Vt/pWtUZzDntPvbNT3J3LTQZ+JPWWXYLMWL9bs
|
||||||
|
rd82gPAGKVGN4bUs3ozzJ0tw0hGZHRG0JOQE1HhMw33q2zbXVIOl8QNW+ZkATTXQ
|
||||||
|
Ublvn282tiFyeVXQXWI4mlubXw==
|
||||||
|
-----END CERTIFICATE-----
|
36
redxen.eu/data/postgres-cert/Containerfile
Normal file
36
redxen.eu/data/postgres-cert/Containerfile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
FROM alpine:latest as generator
|
||||||
|
|
||||||
|
RUN --network=host apk add \
|
||||||
|
cmd:openssl
|
||||||
|
|
||||||
|
ADD x509v3_config /tmp/x509v3_config
|
||||||
|
|
||||||
|
RUN mkdir -p "/redxen.eu/certs"
|
||||||
|
RUN mkdir -p "/redxen.eu/keys"
|
||||||
|
|
||||||
|
WORKDIR "/redxen.eu"
|
||||||
|
|
||||||
|
ADD gen-cert.sh /tmp/gen-cert.sh
|
||||||
|
|
||||||
|
# Server
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh postgres
|
||||||
|
|
||||||
|
# Roles
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh murmur
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh dovecot
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh postfix
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh grafana
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
COPY --from=generator "/redxen.eu" "/redxen.eu"
|
@ -20,7 +20,6 @@ if [ -z "$ALTNAME" ]; then
|
|||||||
-extfile <(cat /tmp/x509v3_config) \
|
-extfile <(cat /tmp/x509v3_config) \
|
||||||
-CA /ca/certs/ca.crt \
|
-CA /ca/certs/ca.crt \
|
||||||
-CAkey /ca/keys/ca.key \
|
-CAkey /ca/keys/ca.key \
|
||||||
-CAcreateserial \
|
|
||||||
-out certs/"$CN".crt
|
-out certs/"$CN".crt
|
||||||
else
|
else
|
||||||
openssl x509 \
|
openssl x509 \
|
||||||
@ -30,8 +29,9 @@ else
|
|||||||
-extfile <(cat /tmp/x509v3_config <(echo "subjectAltName=$ALTNAME")) \
|
-extfile <(cat /tmp/x509v3_config <(echo "subjectAltName=$ALTNAME")) \
|
||||||
-CA /ca/certs/ca.crt \
|
-CA /ca/certs/ca.crt \
|
||||||
-CAkey /ca/keys/ca.key \
|
-CAkey /ca/keys/ca.key \
|
||||||
-CAcreateserial \
|
|
||||||
-out certs/"$CN".crt
|
-out certs/"$CN".crt
|
||||||
|
#-CAcreateserial \
|
||||||
|
#-CAserial /tmp/discard.srl \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
openssl x509 \
|
openssl x509 \
|
25
redxen.eu/data/selfsigned/Containerfile
Normal file
25
redxen.eu/data/selfsigned/Containerfile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
FROM alpine:latest as generator
|
||||||
|
|
||||||
|
RUN --network=host apk add \
|
||||||
|
cmd:openssl
|
||||||
|
|
||||||
|
ADD x509v3_config /tmp/x509v3_config
|
||||||
|
|
||||||
|
RUN mkdir -p "/redxen.eu/certs"
|
||||||
|
RUN mkdir -p "/redxen.eu/keys"
|
||||||
|
|
||||||
|
WORKDIR "/redxen.eu"
|
||||||
|
|
||||||
|
ADD gen-cert.sh /tmp/gen-cert.sh
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh mumble "DNS: mumble.redxen.eu"
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
--mount=type=bind,from=redxen.eu/data/ca:latest,src=/redxen.eu,dst=/ca \
|
||||||
|
/tmp/gen-cert.sh etcd "IP: 0:0:0:0:0:0:0:1, IP: 127.0.0.1, DNS: localhost" # I hate i cannot use compressor here but it is what it is
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
COPY --from=generator "/redxen.eu" "/redxen.eu"
|
@ -20,7 +20,6 @@ if [ -z "$ALTNAME" ]; then
|
|||||||
-extfile <(cat /tmp/x509v3_config) \
|
-extfile <(cat /tmp/x509v3_config) \
|
||||||
-CA /ca/certs/ca.crt \
|
-CA /ca/certs/ca.crt \
|
||||||
-CAkey /ca/keys/ca.key \
|
-CAkey /ca/keys/ca.key \
|
||||||
-CAcreateserial \
|
|
||||||
-out certs/"$CN".crt
|
-out certs/"$CN".crt
|
||||||
else
|
else
|
||||||
openssl x509 \
|
openssl x509 \
|
||||||
@ -30,7 +29,6 @@ else
|
|||||||
-extfile <(cat /tmp/x509v3_config <(echo "subjectAltName=$ALTNAME")) \
|
-extfile <(cat /tmp/x509v3_config <(echo "subjectAltName=$ALTNAME")) \
|
||||||
-CA /ca/certs/ca.crt \
|
-CA /ca/certs/ca.crt \
|
||||||
-CAkey /ca/keys/ca.key \
|
-CAkey /ca/keys/ca.key \
|
||||||
-CAcreateserial \
|
|
||||||
-out certs/"$CN".crt
|
-out certs/"$CN".crt
|
||||||
fi
|
fi
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user