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",
|
||||
"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",
|
||||
"name": "rust-xwin"
|
||||
|
@ -27,6 +51,15 @@
|
|||
{
|
||||
"type": "file",
|
||||
"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