diff --git a/frps/Dockerfile b/frps/Dockerfile new file mode 100644 index 0000000..5579b65 --- /dev/null +++ b/frps/Dockerfile @@ -0,0 +1,5 @@ +FROM amd64/alpine +ENV FRP_VERSION 0.48.0 +RUN wget -O - https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz | \ + tar -xzvf - -C /usr/local/bin --strip-components=1 frp_${FRP_VERSION}_linux_amd64/frps +ENTRYPOINT /usr/local/bin/frps -c /etc/frp/frps.ini diff --git a/frps/docker-compose.yml b/frps/docker-compose.yml new file mode 100644 index 0000000..782157e --- /dev/null +++ b/frps/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' + +services: + frps: + container_name: frps + build: . + restart: unless-stopped + volumes: + - ./frps.ini:/etc/frp/frps.ini:ro + ports: + - 7000:7000 + - 80:80 + - 443:443 + - 222:222 + - 2222:2222 + - 1234:1234 diff --git a/frps/frps.ini b/frps/frps.ini new file mode 100644 index 0000000..b6d85f5 --- /dev/null +++ b/frps/frps.ini @@ -0,0 +1,4 @@ +[common] +bind_port = 7000 +authentication_method = token +token = Gehe1mGehe11mGehe111m diff --git a/gotify/Caddyfile b/gotify/Caddyfile new file mode 100644 index 0000000..e3bfada --- /dev/null +++ b/gotify/Caddyfile @@ -0,0 +1,4 @@ +gotify.codehal.de { + reverse_proxy * gotify:80 { + } +} diff --git a/gotify/docker-compose.yml b/gotify/docker-compose.yml new file mode 100644 index 0000000..7a42820 --- /dev/null +++ b/gotify/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3" + +networks: + proxynet: + +services: + gotify: + container_name: gotify + restart: unless-stopped + image: gotify/server + ports: + - 8080:80 + environment: + - GOTIFY_DEFAULTUSER_PASS=custom + - TZ=Europe/Berlin + volumes: + - "./gotify_data:/app/data" + networks: + - proxynet + + caddy: + container_name: caddy + restart: unless-stopped + image: caddy + ports: + - 443:443 + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + networks: + - proxynet diff --git a/soju/Dockerfile b/soju/Dockerfile new file mode 100644 index 0000000..8c78054 --- /dev/null +++ b/soju/Dockerfile @@ -0,0 +1,5 @@ +FROM alpine:edge +RUN apk --update --no-cache add soju +RUN install -o soju -g soju -d /run/soju +USER soju +ENTRYPOINT ["/usr/bin/soju", "-config", "/etc/soju/config"] diff --git a/soju/conf/config b/soju/conf/config new file mode 100644 index 0000000..93403fd --- /dev/null +++ b/soju/conf/config @@ -0,0 +1,5 @@ +hostname irc.codehal.de +db sqlite3 /var/lib/soju/main.db +message-store fs /var/lib/soju/logs/ +listen unix+admin:// +listen irc+insecure:// diff --git a/soju/docker-compose.yml b/soju/docker-compose.yml new file mode 100644 index 0000000..1a07daf --- /dev/null +++ b/soju/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3.5" + +networks: + proxynet: + +volumes: + certstore: + +services: + traefik: + image: traefik + container_name: traefik + restart: unless-stopped + command: + --providers.docker=true + --providers.docker.exposedbydefault=false + --providers.file.filename=/etc/traefik/config.toml + --entryPoints.web.address=:80 + --entryPoints.irc.address=:6697 + --certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web + --certificatesresolvers.myresolver.acme.storage=/etc/letsencrypt/acme.json + volumes: + - ./traefik:/etc/traefik:ro + - certstore:/etc/letsencrypt + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 80:80 + - 6697:6697 + networks: + - proxynet + + soju: + build: . + container_name: soju + restart: unless-stopped + volumes: + - ./conf:/etc/soju:ro + - ./data:/var/lib/soju + networks: + - proxynet + labels: + - traefik.enable=true + # - traefik.docker.network=proxy + - traefik.tcp.routers.soju.rule=HostSNI(`irc.codehal.de`) + - traefik.tcp.routers.soju.entryPoints=irc + - traefik.tcp.routers.soju.tls=true + - traefik.tcp.routers.soju.tls.certresolver=myresolver + - traefik.tcp.routers.soju.tls.options=irc@file + - traefik.tcp.services.soju.loadbalancer.server.port=6667 diff --git a/soju/traefik/config.toml b/soju/traefik/config.toml new file mode 100644 index 0000000..508f5de --- /dev/null +++ b/soju/traefik/config.toml @@ -0,0 +1,3 @@ +[tls.options] + [tls.options.irc] + alpnProtocols = ["irc"]