Compare commits
1 commit
5f335b3b25
...
aabfd591fe
Author | SHA1 | Date | |
---|---|---|---|
aabfd591fe |
12 changed files with 284 additions and 0 deletions
15
images/caddy/Dockerfile
Normal file
15
images/caddy/Dockerfile
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
FROM caddy:2.9.1-builder AS builder
|
||||||
|
|
||||||
|
RUN xcaddy build \
|
||||||
|
--with github.com/WeidiDeng/caddy-cloudflare-ip \
|
||||||
|
--with github.com/caddy-dns/cloudflare
|
||||||
|
|
||||||
|
FROM caddy:2.9.1
|
||||||
|
|
||||||
|
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
ENV CADDYFILE=/etc/caddy/Caddyfile
|
||||||
|
|
||||||
|
VOLUME /etc/caddy
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
14
images/caddy/entrypoint.sh
Executable file
14
images/caddy/entrypoint.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CADDYFILE="${CADDYFILE:-/etc/caddy/Caddyfile}"
|
||||||
|
|
||||||
|
if [ "$1" = "validate" ] && [ -z "$2" ]; then
|
||||||
|
exec /usr/bin/caddy validate --config "$CADDYFILE"
|
||||||
|
elif [ -n "$1" ]; then
|
||||||
|
exec /usr/bin/caddy "$@"
|
||||||
|
else
|
||||||
|
/usr/bin/caddy validate --config "$CADDYFILE"
|
||||||
|
exec /usr/bin/caddy run --config "$CADDYFILE" --resume
|
||||||
|
fi
|
59
images/fava/Dockerfile
Normal file
59
images/fava/Dockerfile
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
# renovate: datasource=github-tags depName=beancount packageName=beancount/beancount
|
||||||
|
ARG BEANCOUNT_VERSION=2.3.6
|
||||||
|
# renovate: datasource=github-tags depName=fava packageName=beancount/fava
|
||||||
|
ARG FAVA_VERSION=1.30
|
||||||
|
|
||||||
|
FROM node:22.14.0-slim AS node_build_env
|
||||||
|
ARG FAVA_VERSION
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y python3-babel git make;
|
||||||
|
|
||||||
|
RUN git clone --depth 1 --branch v${FAVA_VERSION} https://github.com/beancount/fava /tmp/build/fava;
|
||||||
|
|
||||||
|
WORKDIR /tmp/build/fava
|
||||||
|
RUN set -eux; \
|
||||||
|
make -j $(nproc); \
|
||||||
|
rm -rf .*cache .eggs .tox build dist frontend/node_modules; \
|
||||||
|
find . -type f -name '*.py[c0]' -delete; \
|
||||||
|
find . -type d -name "__pycache__" -delete;
|
||||||
|
|
||||||
|
FROM python:3.13.2-slim AS build_env
|
||||||
|
ARG BEANCOUNT_VERSION
|
||||||
|
ENV PATH "/app/bin:$PATH"
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y build-essential libxml2-dev libxslt-dev curl git; \
|
||||||
|
python -mvenv /app;
|
||||||
|
|
||||||
|
COPY --from=node_build_env /tmp/build/fava /tmp/build/fava
|
||||||
|
|
||||||
|
RUN git clone --depth 1 --branch ${BEANCOUNT_VERSION} https://github.com/beancount/beancount /tmp/build/beancount;
|
||||||
|
|
||||||
|
WORKDIR /tmp/build/beancount
|
||||||
|
|
||||||
|
COPY requirements.txt ./
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
CFLAGS=-s pip3 install -U /tmp/build/beancount; \
|
||||||
|
pip3 install -U /tmp/build/fava; \
|
||||||
|
pip3 install -r requirements.txt; \
|
||||||
|
pip3 uninstall -y pip; \
|
||||||
|
rm -r /app/share; \
|
||||||
|
find /app -name __pycache__ -exec rm -rf -v {} +
|
||||||
|
|
||||||
|
FROM python:3.13.2-slim
|
||||||
|
COPY --from=build_env /app /app
|
||||||
|
|
||||||
|
# Default fava port number
|
||||||
|
EXPOSE 5000
|
||||||
|
|
||||||
|
ENV BEAN_ROOT ""
|
||||||
|
ENV BEANCOUNT_FILE ""
|
||||||
|
|
||||||
|
ENV FAVA_HOST "0.0.0.0"
|
||||||
|
ENV PATH "/app/bin:$PATH"
|
||||||
|
|
||||||
|
CMD ["fava"]
|
14
images/fava/requirements.txt
Normal file
14
images/fava/requirements.txt
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Ensure a compatible version of Beancount, including personal tooling
|
||||||
|
beancount<3.0.0
|
||||||
|
beancount-reds-plugins==0.3.0
|
||||||
|
beanprice==1.2.1
|
||||||
|
fava_envelope==0.5.9
|
||||||
|
fava-investor==1.0.1
|
||||||
|
# renovate: branch=main
|
||||||
|
git+https://github.com/andreasgerstmayr/fava-dashboards.git@c45503dccc0a86c3767a2c71dfb234c48d5ca905
|
||||||
|
git+https://github.com/beancount/beangrow.git@b7d9ea9610f5cdf88c0b7dcc956971e12ee8614f
|
||||||
|
# renovate: branch=main
|
||||||
|
git+https://github.com/daniel-wells/beancount_checkclosed.git@5abc380703105c12b518144f83a5c4fe25cc8f39
|
||||||
|
# renovate: branch=main
|
||||||
|
git+https://github.com/PhracturedBlue/fava-portfolio-summary.git@7d3301619025d735830c389948e5527456050d44
|
||||||
|
git+https://github.com/scauligi/refried.git@cf64dfa8d116e860a7115d5990522808eeefea91
|
32
images/fluentd/Dockerfile
Normal file
32
images/fluentd/Dockerfile
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
FROM fluent/fluentd:v1.17.1-1.1
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# The recommendation is to install gems here. But in practice,
|
||||||
|
# the `geoip` plugin will fail if done so, because for unknown reasons,
|
||||||
|
# it wouldn't be able to find the `geoip2_c` gem, even though that would
|
||||||
|
# be installed successfully.
|
||||||
|
# The only way to get that plugin working is to use the `--gemfile` flag
|
||||||
|
# to have them installed at startup.
|
||||||
|
# Hence why we need to blow up this image with a bunch of dev dependencies.
|
||||||
|
RUN set -eux; \
|
||||||
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
binutils \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
gcc \
|
||||||
|
geoip-dev \
|
||||||
|
gettext \
|
||||||
|
libmaxminddb-dev \
|
||||||
|
libtool \
|
||||||
|
make \
|
||||||
|
musl-dev \
|
||||||
|
ruby-dev \
|
||||||
|
; \
|
||||||
|
# fluentd needs this directory when installing Gems
|
||||||
|
mkdir /etc/fluentd; \
|
||||||
|
chown fluent:fluent /etc/fluentd
|
||||||
|
|
||||||
|
USER fluent
|
||||||
|
|
||||||
|
COPY Gemfile /etc/fluentd/Gemfile
|
10
images/fluentd/Gemfile
Normal file
10
images/fluentd/Gemfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'fluentd'
|
||||||
|
gem 'geoip2_c'
|
||||||
|
gem 'fluent-plugin-geoip'
|
||||||
|
gem 'fluent-plugin-prometheus'
|
||||||
|
gem 'fluent-plugin-ua-parser'
|
||||||
|
gem 'fluent-plugin-grafana-loki'
|
||||||
|
gem 'fluent-plugin-stdout-pp'
|
||||||
|
gem 'fluent-plugin-parser-logfmt'
|
14
images/forgejo/Dockerfile
Normal file
14
images/forgejo/Dockerfile
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
FROM codeberg.org/forgejo/forgejo:10.0.1
|
||||||
|
|
||||||
|
RUN apk --no-cache add \
|
||||||
|
asciidoctor \
|
||||||
|
freetype \
|
||||||
|
freetype-dev \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
libpng \
|
||||||
|
libffi-dev \
|
||||||
|
py-pip \
|
||||||
|
python3-dev \
|
||||||
|
py3-pip \
|
||||||
|
py3-pyzmq
|
19
images/frp/Dockerfile
Normal file
19
images/frp/Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# renovate: datasource=github-releases depName=frp packageName=fatedier/frp
|
||||||
|
ARG FRP_VERSION=0.61.2
|
||||||
|
|
||||||
|
FROM scratch AS src
|
||||||
|
|
||||||
|
ARG FRP_VERSION
|
||||||
|
ADD https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz /frp.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:3.21
|
||||||
|
|
||||||
|
ARG FRP_VERSION
|
||||||
|
|
||||||
|
RUN --mount=from=src,target=/src <<EOF
|
||||||
|
tar -xf /src/frp.tar.gz -C /usr/local/bin --strip-component=1 frp_${FRP_VERSION}_linux_amd64/frpc frp_${FRP_VERSION}_linux_amd64/frps
|
||||||
|
EOF
|
||||||
|
|
||||||
|
VOLUME /etc/frp
|
||||||
|
WORKDIR /
|
19
images/gotenberg/Dockerfile
Normal file
19
images/gotenberg/Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
FROM gotenberg/gotenberg:8.17.3
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update -qq; \
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -t bookworm-backports libreoffice-l10n-de; \
|
||||||
|
sed -i '/de_DE.UTF-8/s/^# //g' /etc/locale.gen; \
|
||||||
|
locale-gen; \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/log/*;
|
||||||
|
|
||||||
|
# Adjust user for Unraid
|
||||||
|
RUN usermod -u 2000 -g 100 gotenberg
|
||||||
|
|
||||||
|
ENV LANG de_DE.UTF-8
|
||||||
|
ENV LANGUAGE de_DE:de
|
||||||
|
ENV LC_ALL de_DE.UTF-8
|
||||||
|
|
||||||
|
USER gotenberg
|
44
images/nextcloud/Dockerfile
Normal file
44
images/nextcloud/Dockerfile
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
FROM nextcloud:31.0.1-apache
|
||||||
|
|
||||||
|
# renovate: datasource=github-releases depName=yt-dlp packageName=yt-dlp/yt-dlp versioning=loose
|
||||||
|
ARG YTDLP_VERSION=2025.03.25
|
||||||
|
# Debian ships node.js v18, make sure that the pageres version supports that
|
||||||
|
# renovate: datasource=npm packageName=pageres-cli
|
||||||
|
ARG PAGERES_VERSION=8.0.0
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
aria2 \
|
||||||
|
cifs-utils \
|
||||||
|
clamav \
|
||||||
|
ffmpeg \
|
||||||
|
libnss3 \
|
||||||
|
libbz2-dev \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
smbclient \
|
||||||
|
p7zip \
|
||||||
|
p7zip-full \
|
||||||
|
python3-pip \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
; \
|
||||||
|
docker-php-ext-install bz2; \
|
||||||
|
npm install --global pageres-cli@${PAGERES_VERSION} puppeteer; \
|
||||||
|
npx puppeteer browsers install chrome; \
|
||||||
|
curl -L -o /usr/local/bin/youtube-dl https://github.com/yt-dlp/yt-dlp/releases/download/${YTDLP_VERSION}/yt-dlp; \
|
||||||
|
chmod +rx /usr/local/bin/youtube-dl; \
|
||||||
|
apt-get remove -y --auto-remove ${PHPIZE_DEPS}; \
|
||||||
|
rm -rf \
|
||||||
|
/var/lib/apt/lists/* \
|
||||||
|
/var/log/*/.log /var/log/apt/* \
|
||||||
|
/usr/src/php.tar* \
|
||||||
|
/usr/share/man/* \
|
||||||
|
/usr/share/doc/* \
|
||||||
|
/usr/share/doc-base/* \
|
||||||
|
/usr/local/php/man/* \
|
||||||
|
/root/.cache \
|
||||||
|
/root/.npm
|
||||||
|
|
||||||
|
COPY ./php-pgsql.ini /etc/php8/conf.d/pgsql.ini
|
11
images/nextcloud/php-pgsql.ini
Normal file
11
images/nextcloud/php-pgsql.ini
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# configuration for PHP PostgreSQL module
|
||||||
|
extension=pdo_pgsql.so
|
||||||
|
extension=pgsql.so
|
||||||
|
|
||||||
|
[PostgresSQL]
|
||||||
|
pgsql.allow_persistent = On
|
||||||
|
pgsql.auto_reset_persistent = Off
|
||||||
|
pgsql.max_persistent = 25
|
||||||
|
pgsql.max_links = 30
|
||||||
|
pgsql.ignore_notice = 0
|
||||||
|
pgsql.log_notice = 0
|
|
@ -20,6 +20,30 @@
|
||||||
"type": "simple",
|
"type": "simple",
|
||||||
"name": "base"
|
"name": "base"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "nextcloud"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "gotenberg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "fluentd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "forgejo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "frp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "fava"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"name": "rust-xwin"
|
"name": "rust-xwin"
|
||||||
|
@ -27,6 +51,15 @@
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"name": "gitea"
|
"name": "gitea"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "mx-puppet-steam"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "simple",
|
||||||
|
"name": "caddy",
|
||||||
|
"platform": "linux/amd64,linux/arm64/v8"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue