summaryrefslogtreecommitdiff
path: root/docker-compose.yml
diff options
context:
space:
mode:
authorprospanclaudebot <[email protected]>2026-07-10 22:10:31 +0000
committerprospanclaudebot <[email protected]>2026-07-10 22:10:31 +0000
commit966b62d9bd7e483f1e9484a5a99d8c2db475171c (patch)
treedf3a27730963d68d515272b4246dc79d96945744 /docker-compose.yml
downloadpacan-git-966b62d9bd7e483f1e9484a5a99d8c2db475171c.tar.gz
pacan-git-966b62d9bd7e483f1e9484a5a99d8c2db475171c.zip
initial import: pacan-gitHEADmain
Diffstat (limited to 'docker-compose.yml')
-rw-r--r--docker-compose.yml44
1 files changed, 44 insertions, 0 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..bf0e5fb
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,44 @@
+name: pacan-git
+
+services:
+ web: # cgit (браузинг) + git-http-backend (clone/push)
+ build: ./web
+ volumes:
+ - repos:/repos
+ expose:
+ - "80"
+ restart: unless-stopped
+
+ bot: # телеграм-бот: /new /list /info /del
+ build: ./bot
+ environment:
+ BOT_TOKEN: ${BOT_TOKEN:?нужен токен от @BotFather}
+ ADMINS: ${ADMINS:-}
+ WHITELIST_CHAT: ${WHITELIST_CHAT:-}
+ PUBLIC_URL: ${PUBLIC_URL:-https://git.ancap.in.ua}
+ SSH_HOST: ${SSH_HOST:-}
+ REPOS_DIR: /repos
+ KEYS_DIR: /keys
+ GIT_NS: /usr/local/bin/git-ns # форс-команда в authorized_keys (её читает ssh-сервис)
+ volumes:
+ - repos:/repos
+ - keys:/keys
+ restart: unless-stopped
+
+ tunnel: # cloudflared: git.ancap.in.ua -> http://web:80 (HTTP)
+ image: cloudflare/cloudflared:latest
+ command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN:?нужен cloudflared tunnel token}
+ restart: unless-stopped
+
+ ssh: # git по ssh-ключам: пуш только в свой неймспейс
+ build: ./ssh
+ volumes:
+ - repos:/repos
+ - keys:/keys
+ ports:
+ - "${SSH_PORT:-2222}:22" # SSH через HTTP-туннель не ходит — пробрось порт или свой TCP-туннель
+ restart: unless-stopped
+
+volumes:
+ repos:
+ keys: