From f3f3a6c2166a6168e18749b8f1f24e5a2da4c0ac Mon Sep 17 00:00:00 2001 From: Arnas Udovic Date: Mon, 23 Jun 2025 09:40:20 +0300 Subject: [PATCH] some docker info --- docker/Dockerfile | 18 ++++++++++++++++++ docker/Makefile | 15 +++++++++++++++ docker/README | 6 ++++++ docker/docker-compose.yaml | 20 ++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 docker/Makefile create mode 100644 docker/README create mode 100644 docker/docker-compose.yaml diff --git a/docker/Dockerfile b/docker/Dockerfile index e69de29..447ec75 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -0,0 +1,18 @@ +FROM golang:1.24 + +WORKDIR /usr/src/app + +ADD peertube-instance-index-filter ./ + +ADD instances.db ./ + +RUN go mod download && go mod verify + +RUN go build -v -o /usr/local/bin/peertube-instance-index-filter ./... + +ENV GIN_MODE release + +RUN set -ex; \ + echo '0 1 * * * /usr/local/bin/peertube-instance-index-filter -command collect' > /var/spool/cron/crontabs/root + +CMD ["peertube-instance-index-filter"] diff --git a/docker/Makefile b/docker/Makefile new file mode 100644 index 0000000..e4f05a9 --- /dev/null +++ b/docker/Makefile @@ -0,0 +1,15 @@ +### help: Show help message (default target) +.PHONY: help +help: + @printf "%s\n\n" "make: List of possible targets:" + @grep '^### .*:' $(lastword $(MAKEFILE_LIST)) | sed 's/^### \([^:]*\): \(.*\)/\1:\t\2/' | column -ts "$$(printf '\t')" + +### add-index: Add index host. Arguments: url and instance-url (optional) +.PHONY: add-index +add-index: + docker compose -f docker-compose.yaml exec -it peertube-instance-index-filter peertube-instance-index-filter -command index -url $(url) -instance-url $(instance-url) + +### reject: Reject host. Arguments: host and reason (optional) +.PHONY: reject +reject: + docker compose -f docker-compose.yaml exec -it peertube-instance-index-filter peertube-instance-index-filter -command reject -host $(host) -reject-reason $(reason) diff --git a/docker/README b/docker/README new file mode 100644 index 0000000..85dc1db --- /dev/null +++ b/docker/README @@ -0,0 +1,6 @@ +Usualy I seperate git repo from Dockerfile, so I copy these docker files to same directory where repo is cloned. I serve it under traefik, so I added labels to composer. + +`instances.db` should be copied, too. + +`Makefile` is wrapper to add index hosts and reject hosts. Run `make help` for more info. + diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml new file mode 100644 index 0000000..dda9087 --- /dev/null +++ b/docker/docker-compose.yaml @@ -0,0 +1,20 @@ +version: "3.9" + +services: + peertube-instance-index-filter: + build: ./peertube-instance-index-filter + volumes: + - ./instances.db:/usr/src/app/instances.db + expose: + - 8081 + labels: + - traefik.enable=true + - traefik.http.routers.peertube_instance_index.rule=Host(`index.tv.arns.lt`) + - traefik.http.routers.peertube_instance_index.tls.certresolver=le + - traefik.http.routers.peertube_instance_index.entrypoints=websecure + restart: always + +networks: + default: + external: + name: traefik_default