From 3c1578e1377542c2dbe9f5c7cea18a037415d06a Mon Sep 17 00:00:00 2001 From: ange Date: Mon, 5 Feb 2024 00:05:18 +0100 Subject: [PATCH] feat: fdroid --- fdroid/.env | 7 +++++++ fdroid/Dockerfile | 7 +++++++ fdroid/compose.yaml | 38 ++++++++++++++++++++++++++++++++++++ fdroid/default.conf | 14 +++++++++++++ fdroid/entrypoint.sh | 16 +++++++++++++++ fdroid/init.sh | 5 +++++ fdroid/install_site | 1 + fdroid/nginx.conf | 24 +++++++++++++++++++++++ fdroid/{ => repo}/.gitignore | 0 9 files changed, 112 insertions(+) create mode 100644 fdroid/.env create mode 100644 fdroid/Dockerfile create mode 100644 fdroid/compose.yaml create mode 100644 fdroid/default.conf create mode 100755 fdroid/entrypoint.sh create mode 100644 fdroid/init.sh create mode 120000 fdroid/install_site create mode 100644 fdroid/nginx.conf rename fdroid/{ => repo}/.gitignore (100%) diff --git a/fdroid/.env b/fdroid/.env new file mode 100644 index 0000000..b00ab64 --- /dev/null +++ b/fdroid/.env @@ -0,0 +1,7 @@ +BASE_URL=fdroid. +EMAIL= + +REPO_NAME=fdroid + +PUID=1000 +PGID=1000 diff --git a/fdroid/Dockerfile b/fdroid/Dockerfile new file mode 100644 index 0000000..4320ec2 --- /dev/null +++ b/fdroid/Dockerfile @@ -0,0 +1,7 @@ +FROM docker.io/nginx:latest +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + fdroidserver \ + && rm -rf /var/lib/apt/lists/* +COPY entrypoint.sh /docker-entrypoint.d/99-init-fdroid.sh +COPY default.conf /etc/nginx/conf.d/ diff --git a/fdroid/compose.yaml b/fdroid/compose.yaml new file mode 100644 index 0000000..96ec2bd --- /dev/null +++ b/fdroid/compose.yaml @@ -0,0 +1,38 @@ +--- +services: + install_site: + build: install_site + environment: + - BASE_URL + - EMAIL + volumes: + - ./nginx.conf:/web/fdroid.conf + - sites:/sites/ + - certs:/etc/letsencrypt/ + - certbotroot:/var/www/certbot/ + - /var/run/docker.sock:/var/run/docker.sock + + fdroid: + build: . + restart: unless-stopped + environment: + - BASE_URL + - REPO_NAME + - PUID + - PGID + volumes: + - ./repo/:/repo/ + networks: + - nginx + +volumes: + sites: + external: true + certs: + external: true + certbotroot: + external: true + +networks: + nginx: + external: true diff --git a/fdroid/default.conf b/fdroid/default.conf new file mode 100644 index 0000000..3be7505 --- /dev/null +++ b/fdroid/default.conf @@ -0,0 +1,14 @@ +server { + listen 80; + server_name localhost; + + location / { + return 301 /repo/; + } + + location /repo/ { + root /repo; + index index.html; + } +} + diff --git a/fdroid/entrypoint.sh b/fdroid/entrypoint.sh new file mode 100755 index 0000000..411d1ad --- /dev/null +++ b/fdroid/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +(cd /repo/ + fdroid init + + sed -i \ + -e "/repo_url/s .* repo_url:\ https://$BASE_URL/repo " \ + -e "/repo_name/s .* repo_name:\ \"$REPO_NAME\" " \ + config.yml + + fdroid update -c +) + +if [ -n "$PUID" ]; then + chown -R "$PUID:$PGID" /repo/ +fi diff --git a/fdroid/init.sh b/fdroid/init.sh new file mode 100644 index 0000000..104f66e --- /dev/null +++ b/fdroid/init.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +docker run --rm -v "$PWD/repo/:/repo/" \ + 'registry.gitlab.com/fdroid/docker-executable-fdroidserver:master' \ + init -v diff --git a/fdroid/install_site b/fdroid/install_site new file mode 120000 index 0000000..b273552 --- /dev/null +++ b/fdroid/install_site @@ -0,0 +1 @@ +../_nginx/install_site/ \ No newline at end of file diff --git a/fdroid/nginx.conf b/fdroid/nginx.conf new file mode 100644 index 0000000..40aaf7e --- /dev/null +++ b/fdroid/nginx.conf @@ -0,0 +1,24 @@ +server { + listen 80; + listen [::]:80; + server_name $BASE_URL; + + return 301 https://$host$request_uri; +} + +server { + listen 443 ssl; + listen [::]:443 ssl; + server_name $BASE_URL; + + ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem; + + location / { + proxy_pass http://fdroid; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } +} diff --git a/fdroid/.gitignore b/fdroid/repo/.gitignore similarity index 100% rename from fdroid/.gitignore rename to fdroid/repo/.gitignore