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"]